{"action":"created","comment":{"url":"https://api.github.com/repos/SprintFire/marketplace/pulls/comments/55102616","id":55102616,"diff_hunk":"@@ -0,0 +1,760 @@\n+/*!\n+ * jQuery Raty - A Star Rating Plugin\n+ *\n+ * The MIT License\n+ *\n+ * @author  : Washington Botelho\n+ * @doc     : http://wbotelhos.com/raty\n+ * @version : 2.7.0\n+ *\n+ */\n+\n+;\n+(function($) {\n+  'use strict';\n+\n+  var methods = {\n+    init: function(options) {\n+      return this.each(function() {\n+        this.self = $(this);\n+\n+        methods.destroy.call(this.self);\n+\n+        this.opt = $.extend(true, {}, $.fn.raty.defaults, options);\n+\n+        methods._adjustCallback.call(this);\n+        methods._adjustNumber.call(this);\n+        methods._adjustHints.call(this);\n+\n+        this.opt.score = methods._adjustedScore.call(this, this.opt.score);\n+\n+        if (this.opt.starType !== 'img') {\n+          methods._adjustStarType.call(this);\n+        }\n+\n+        methods._adjustPath.call(this);\n+        methods._createStars.call(this);\n+\n+        if (this.opt.cancel) {\n+          methods._createCancel.call(this);\n+        }\n+\n+        if (this.opt.precision) {\n+          methods._adjustPrecision.call(this);\n+        }\n+\n+        methods._createScore.call(this);\n+        methods._apply.call(this, this.opt.score);\n+        methods._setTitle.call(this, this.opt.score);\n+        methods._target.call(this, this.opt.score);\n+\n+        if (this.opt.readOnly) {\n+          methods._lock.call(this);\n+        } else {\n+          this.style.cursor = 'pointer';\n+\n+          methods._binds.call(this);\n+        }\n+      });\n+    },\n+\n+    _adjustCallback: function() {\n+      var options = ['number', 'readOnly', 'score', 'scoreName', 'target'];\n+\n+      for (var i = 0; i < options.length; i++) {\n+        if (typeof this.opt[options[i]] === 'function') {\n+          this.opt[options[i]] = this.opt[options[i]].call(this);\n+        }\n+      }\n+    },\n+\n+    _adjustedScore: function(score) {\n+      if (!score) {\n+        return score;\n+      }\n+\n+      return methods._between(score, 0, this.opt.number);\n+    },\n+\n+    _adjustHints: function() {\n+      if (!this.opt.hints) {\n+        this.opt.hints = [];\n+      }\n+\n+      if (!this.opt.halfShow && !this.opt.half) {\n+        return;\n+      }\n+\n+      var steps = this.opt.precision ? 10 : 2;\n+\n+      for (var i = 0; i < this.opt.number; i++) {\n+        var group = this.opt.hints[i];\n+\n+        if (Object.prototype.toString.call(group) !== '[object Array]') {\n+          group = [group];\n+        }\n+\n+        this.opt.hints[i] = [];\n+\n+        for (var j = 0; j < steps; j++) {\n+          var\n+            hint = group[j],\n+            last = group[group.length - 1];\n+\n+          if (last === undefined) {\n+            last = null;\n+          }\n+\n+          this.opt.hints[i][j] = hint === undefined ? last : hint;\n+        }\n+      }\n+    },\n+\n+    _adjustNumber: function() {\n+      this.opt.number = methods._between(this.opt.number, 1, this.opt.numberMax);\n+    },\n+\n+    _adjustPath: function() {\n+      this.opt.path = this.opt.path || '';\n+\n+      if (this.opt.path && this.opt.path.charAt(this.opt.path.length - 1) !== '/') {\n+        this.opt.path += '/';\n+      }\n+    },\n+\n+    _adjustPrecision: function() {\n+      this.opt.half = true;\n+    },\n+\n+    _adjustStarType: function() {\n+      var replaces = ['cancelOff', 'cancelOn', 'starHalf', 'starOff', 'starOn'];\n+\n+      this.opt.path = '';\n+\n+      for (var i = 0; i < replaces.length; i++) {\n+        this.opt[replaces[i]] = this.opt[replaces[i]].replace('.', '-');\n+      }\n+    },\n+\n+    _apply: function(score) {\n+      methods._fill.call(this, score);\n+\n+      if (score) {\n+        if (score > 0) {\n+          this.score.val(score);\n+        }\n+\n+        methods._roundStars.call(this, score);\n+      }\n+    },\n+\n+    _between: function(value, min, max) {\n+      return Math.min(Math.max(parseFloat(value), min), max);\n+    },\n+\n+    _binds: function() {\n+      if (this.cancel) {\n+        methods._bindOverCancel.call(this);\n+        methods._bindClickCancel.call(this);\n+        methods._bindOutCancel.call(this);\n+      }\n+\n+      methods._bindOver.call(this);\n+      methods._bindClick.call(this);\n+      methods._bindOut.call(this);\n+    },\n+\n+    _bindClick: function() {\n+      var that = this;\n+\n+      that.stars.on('click.raty', function(evt) {\n+        var\n+          execute = true,\n+          score   = (that.opt.half || that.opt.precision) ? that.self.data('score') : (this.alt || $(this).data('alt'));\n+\n+        if (that.opt.click) {\n+          execute = that.opt.click.call(that, +score, evt);\n+        }\n+\n+        if (execute || execute === undefined) {\n+          if (that.opt.half && !that.opt.precision) {\n+            score = methods._roundHalfScore.call(that, score);\n+          }\n+\n+          methods._apply.call(that, score);\n+        }\n+      });\n+    },\n+\n+    _bindClickCancel: function() {\n+      var that = this;\n+\n+      that.cancel.on('click.raty', function(evt) {\n+        that.score.removeAttr('value');\n+\n+        if (that.opt.click) {\n+          that.opt.click.call(that, null, evt);\n+        }\n+      });\n+    },\n+\n+    _bindOut: function() {\n+      var that = this;\n+\n+      that.self.on('mouseleave.raty', function(evt) {\n+        var score = +that.score.val() || undefined;\n+\n+        methods._apply.call(that, score);\n+        methods._target.call(that, score, evt);\n+        methods._resetTitle.call(that);\n+\n+        if (that.opt.mouseout) {\n+          that.opt.mouseout.call(that, score, evt);\n+        }\n+      });\n+    },\n+\n+    _bindOutCancel: function() {\n+      var that = this;\n+\n+      that.cancel.on('mouseleave.raty', function(evt) {\n+        var icon = that.opt.cancelOff;\n+\n+        if (that.opt.starType !== 'img') {\n+          icon = that.opt.cancelClass + ' ' + icon;\n+        }\n+\n+        methods._setIcon.call(that, this, icon);\n+\n+        if (that.opt.mouseout) {\n+          var score = +that.score.val() || undefined;\n+\n+          that.opt.mouseout.call(that, score, evt);\n+        }\n+      });\n+    },\n+\n+    _bindOver: function() {\n+      var that   = this,\n+          action = that.opt.half ? 'mousemove.raty' : 'mouseover.raty';\n+\n+      that.stars.on(action, function(evt) {\n+        var score = methods._getScoreByPosition.call(that, evt, this);\n+\n+        methods._fill.call(that, score);\n+\n+        if (that.opt.half) {\n+          methods._roundStars.call(that, score, evt);\n+          methods._setTitle.call(that, score, evt);\n+\n+          that.self.data('score', score);\n+        }\n+\n+        methods._target.call(that, score, evt);\n+\n+        if (that.opt.mouseover) {\n+          that.opt.mouseover.call(that, score, evt);\n+        }\n+      });\n+    },\n+\n+    _bindOverCancel: function() {\n+      var that = this;\n+\n+      that.cancel.on('mouseover.raty', function(evt) {\n+        var\n+          starOff = that.opt.path + that.opt.starOff,\n+          icon    = that.opt.cancelOn;\n+\n+        if (that.opt.starType === 'img') {\n+          that.stars.attr('src', starOff);\n+        } else {\n+          icon = that.opt.cancelClass + ' ' + icon;\n+\n+          that.stars.attr('class', starOff);\n+        }\n+\n+        methods._setIcon.call(that, this, icon);\n+        methods._target.call(that, null, evt);\n+\n+        if (that.opt.mouseover) {\n+          that.opt.mouseover.call(that, null);\n+        }\n+      });\n+    },\n+\n+    _buildScoreField: function() {\n+      return $('<input />', { name: this.opt.scoreName, type: 'hidden' }).appendTo(this);\n+    },\n+\n+    _createCancel: function() {\n+      var icon   = this.opt.path + this.opt.cancelOff,\n+          cancel = $('<' + this.opt.starType + ' />', { title: this.opt.cancelHint, 'class': this.opt.cancelClass });\n+\n+      if (this.opt.starType === 'img') {\n+        cancel.attr({ src: icon, alt: 'x' });\n+      } else {\n+        // TODO: use $.data\n+        cancel.attr('data-alt', 'x').addClass(icon);\n+      }\n+\n+      if (this.opt.cancelPlace === 'left') {\n+        this.self.prepend('&#160;').prepend(cancel);\n+      } else {\n+        this.self.append('&#160;').append(cancel);\n+      }\n+\n+      this.cancel = cancel;\n+    },\n+\n+    _createScore: function() {\n+      var score = $(this.opt.targetScore);\n+\n+      this.score = score.length ? score : methods._buildScoreField.call(this);\n+    },\n+\n+    _createStars: function() {\n+      for (var i = 1; i <= this.opt.number; i++) {\n+        var\n+          name  = methods._nameForIndex.call(this, i),\n+          attrs = { alt: i, src: this.opt.path + this.opt[name] };\n+\n+        if (this.opt.starType !== 'img') {\n+          attrs = { 'data-alt': i, 'class': attrs.src }; // TODO: use $.data.\n+        }\n+\n+        attrs.title = methods._getHint.call(this, i);\n+\n+        $('<' + this.opt.starType + ' />', attrs).appendTo(this);\n+\n+        if (this.opt.space) {\n+          this.self.append(i < this.opt.number ? '&#160;' : '');\n+        }\n+      }\n+\n+      this.stars = this.self.children(this.opt.starType);\n+    },\n+\n+    _error: function(message) {\n+      $(this).text(message);\n+\n+      $.error(message);\n+    },\n+\n+    _fill: function(score) {\n+      var hash = 0;\n+\n+      for (var i = 1; i <= this.stars.length; i++) {\n+        var\n+          icon,\n+          star   = this.stars[i - 1],\n+          turnOn = methods._turnOn.call(this, i, score);\n+\n+        if (this.opt.iconRange && this.opt.iconRange.length > hash) {\n+          var irange = this.opt.iconRange[hash];\n+\n+          icon = methods._getRangeIcon.call(this, irange, turnOn);\n+\n+          if (i <= irange.range) {\n+            methods._setIcon.call(this, star, icon);\n+          }\n+\n+          if (i === irange.range) {\n+            hash++;\n+          }\n+        } else {\n+          icon = this.opt[turnOn ? 'starOn' : 'starOff'];\n+\n+          methods._setIcon.call(this, star, icon);\n+        }\n+      }\n+    },\n+\n+    _getFirstDecimal: function(number) {\n+      var\n+        decimal = number.toString().split('.')[1],\n+        result  = 0;\n+\n+      if (decimal) {\n+        result = parseInt(decimal.charAt(0), 10);\n+\n+        if (decimal.slice(1, 5) === '9999') {\n+          result++;\n+        }\n+      }\n+\n+      return result;\n+    },\n+\n+    _getRangeIcon: function(irange, turnOn) {\n+      return turnOn ? irange.on || this.opt.starOn : irange.off || this.opt.starOff;\n+    },\n+\n+    _getScoreByPosition: function(evt, icon) {\n+      var score = parseInt(icon.alt || icon.getAttribute('data-alt'), 10);\n+\n+      if (this.opt.half) {\n+        var\n+          size    = methods._getWidth.call(this),\n+          percent = parseFloat((evt.pageX - $(icon).offset().left) / size);\n+\n+        score = score - 1 + percent;\n+      }\n+\n+      return score;\n+    },\n+\n+    _getHint: function(score, evt) {\n+      if (score !== 0 && !score) {\n+        return this.opt.noRatedMsg;\n+      }\n+\n+      var\n+        decimal = methods._getFirstDecimal.call(this, score),\n+        integer = Math.ceil(score),\n+        group   = this.opt.hints[(integer || 1) - 1],\n+        hint    = group,\n+        set     = !evt || this.move;\n+\n+      if (this.opt.precision) {\n+        if (set) {\n+          decimal = decimal === 0 ? 9 : decimal - 1;\n+        }\n+\n+        hint = group[decimal];\n+      } else if (this.opt.halfShow || this.opt.half) {\n+        decimal = set && decimal === 0 ? 1 : decimal > 5 ? 1 : 0;\n+\n+        hint = group[decimal];\n+      }\n+\n+      return hint === '' ? '' : hint || score;\n+    },\n+\n+    _getWidth: function() {\n+      var width = this.stars[0].width || parseFloat(this.stars.eq(0).css('font-size'));\n+\n+      if (!width) {\n+        methods._error.call(this, 'Could not get the icon width!');\n+      }\n+\n+      return width;\n+    },\n+\n+    _lock: function() {\n+      var hint = methods._getHint.call(this, this.score.val());\n+\n+      this.style.cursor = '';\n+      this.title        = hint;\n+\n+      this.score.prop('readonly', true);\n+      this.stars.prop('title', hint);\n+\n+      if (this.cancel) {\n+        this.cancel.hide();\n+      }\n+\n+      this.self.data('readonly', true);\n+    },\n+\n+    _nameForIndex: function(i) {\n+      return this.opt.score && this.opt.score >= i ? 'starOn' : 'starOff';\n+    },\n+\n+    _resetTitle: function(star) {\n+      for (var i = 0; i < this.opt.number; i++) {\n+        this.stars[i].title = methods._getHint.call(this, i + 1);\n+      }\n+    },\n+\n+     _roundHalfScore: function(score) {\n+      var integer = parseInt(score, 10),\n+          decimal = methods._getFirstDecimal.call(this, score);\n+\n+      if (decimal !== 0) {\n+        decimal = decimal > 5 ? 1 : 0.5;\n+      }\n+\n+      return integer + decimal;\n+    },\n+\n+    _roundStars: function(score, evt) {\n+      var\n+        decimal = (score % 1).toFixed(2),\n+        name    ;\n+\n+      if (evt || this.move) {\n+        name = decimal > 0.5 ? 'starOn' : 'starHalf';\n+      } else if (decimal > this.opt.round.down) {               // Up:   [x.76 .. x.99]\n+        name = 'starOn';\n+\n+        if (this.opt.halfShow && decimal < this.opt.round.up) { // Half: [x.26 .. x.75]\n+          name = 'starHalf';\n+        } else if (decimal < this.opt.round.full) {             // Down: [x.00 .. x.5]\n+          name = 'starOff';\n+        }\n+      }\n+\n+      if (name) {\n+        var\n+          icon = this.opt[name],\n+          star = this.stars[Math.ceil(score) - 1];\n+\n+        methods._setIcon.call(this, star, icon);\n+      }                                                         // Full down: [x.00 .. x.25]\n+    },\n+\n+    _setIcon: function(star, icon) {\n+      star[this.opt.starType === 'img' ? 'src' : 'className'] = this.opt.path + icon;\n+    },\n+\n+    _setTarget: function(target, score) {\n+      if (score) {\n+        score = this.opt.targetFormat.toString().replace('{score}', score);\n+      }\n+\n+      if (target.is(':input')) {\n+        target.val(score);\n+      } else {\n+        target.html(score);\n+      }\n+    },\n+\n+    _setTitle: function(score, evt) {\n+      if (score) {\n+        var\n+          integer = parseInt(Math.ceil(score), 10),\n+          star    = this.stars[integer - 1];\n+\n+        star.title = methods._getHint.call(this, score, evt);\n+      }\n+    },\n+\n+    _target: function(score, evt) {\n+      if (this.opt.target) {\n+        var target = $(this.opt.target);\n+\n+        if (!target.length) {\n+          methods._error.call(this, 'Target selector invalid or missing!');\n+        }\n+\n+        var mouseover = evt && evt.type === 'mouseover';\n+\n+        if (score === undefined) {\n+          score = this.opt.targetText;\n+        } else if (score === null) {\n+          score = mouseover ? this.opt.cancelHint : this.opt.targetText;\n+        } else {\n+          if (this.opt.targetType === 'hint') {\n+            score = methods._getHint.call(this, score, evt);\n+          } else if (this.opt.precision) {\n+            score = parseFloat(score).toFixed(1);\n+          }\n+\n+          var mousemove = evt && evt.type === 'mousemove';\n+\n+          if (!mouseover && !mousemove && !this.opt.targetKeep) {\n+            score = this.opt.targetText;\n+          }\n+        }\n+\n+        methods._setTarget.call(this, target, score);\n+      }\n+    },\n+\n+    _turnOn: function(i, score) {\n+      return this.opt.single ? (i === score) : (i <= score);\n+    },\n+\n+    _unlock: function() {\n+      this.style.cursor = 'pointer';\n+      this.removeAttribute('title');\n+\n+      this.score.removeAttr('readonly');\n+\n+      this.self.data('readonly', false);\n+\n+      for (var i = 0; i < this.opt.number; i++) {\n+        this.stars[i].title = methods._getHint.call(this, i + 1);\n+      }\n+\n+      if (this.cancel) {\n+        this.cancel.css('display', '');\n+      }\n+    },\n+\n+    cancel: function(click) {\n+      return this.each(function() {\n+        var self = $(this);\n+\n+        if (self.data('readonly') !== true) {\n+          methods[click ? 'click' : 'score'].call(self, null);\n+\n+          this.score.removeAttr('value');\n+        }\n+      });\n+    },\n+\n+    click: function(score) {\n+      return this.each(function() {\n+        if ($(this).data('readonly') !== true) {\n+          score = methods._adjustedScore.call(this, score);\n+\n+          methods._apply.call(this, score);\n+\n+          if (this.opt.click) {\n+            this.opt.click.call(this, score, $.Event('click'));\n+          }\n+\n+          methods._target.call(this, score);\n+        }\n+      });\n+    },\n+\n+    destroy: function() {\n+      return this.each(function() {\n+        var self = $(this),\n+            raw  = self.data('raw');\n+\n+        if (raw) {\n+          self.off('.raty').empty().css({ cursor: raw.style.cursor }).removeData('readonly');","path":"app/assets/javascripts/jquery.raty.js","position":620,"original_position":620,"commit_id":"bf844f81464dc57d821e1695c29537a1c228a74f","original_commit_id":"bf844f81464dc57d821e1695c29537a1c228a74f","user":{"login":"houndci-bot","id":6697940,"avatar_url":"https://avatars.githubusercontent.com/u/6697940?v=3","gravatar_id":"","url":"https://api.github.com/users/houndci-bot","html_url":"https://github.com/houndci-bot","followers_url":"https://api.github.com/users/houndci-bot/followers","following_url":"https://api.github.com/users/houndci-bot/following{/other_user}","gists_url":"https://api.github.com/users/houndci-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci-bot/subscriptions","organizations_url":"https://api.github.com/users/houndci-bot/orgs","repos_url":"https://api.github.com/users/houndci-bot/repos","events_url":"https://api.github.com/users/houndci-bot/events{/privacy}","received_events_url":"https://api.github.com/users/houndci-bot/received_events","type":"User","site_admin":false},"body":"Line is too long.","created_at":"2016-03-04T23:05:49Z","updated_at":"2016-03-04T23:05:49Z","html_url":"https://github.com/SprintFire/marketplace/pull/47#discussion_r55102616","pull_request_url":"https://api.github.com/repos/SprintFire/marketplace/pulls/47","_links":{"self":{"href":"https://api.github.com/repos/SprintFire/marketplace/pulls/comments/55102616"},"html":{"href":"https://github.com/SprintFire/marketplace/pull/47#discussion_r55102616"},"pull_request":{"href":"https://api.github.com/repos/SprintFire/marketplace/pulls/47"}}},"pull_request":{"url":"https://api.github.com/repos/SprintFire/marketplace/pulls/47","id":61762386,"html_url":"https://github.com/SprintFire/marketplace/pull/47","diff_url":"https://github.com/SprintFire/marketplace/pull/47.diff","patch_url":"https://github.com/SprintFire/marketplace/pull/47.patch","issue_url":"https://api.github.com/repos/SprintFire/marketplace/issues/47","number":47,"state":"open","locked":false,"title":"Comments","user":{"login":"LevinGeorge","id":9962989,"avatar_url":"https://avatars.githubusercontent.com/u/9962989?v=3","gravatar_id":"","url":"https://api.github.com/users/LevinGeorge","html_url":"https://github.com/LevinGeorge","followers_url":"https://api.github.com/users/LevinGeorge/followers","following_url":"https://api.github.com/users/LevinGeorge/following{/other_user}","gists_url":"https://api.github.com/users/LevinGeorge/gists{/gist_id}","starred_url":"https://api.github.com/users/LevinGeorge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LevinGeorge/subscriptions","organizations_url":"https://api.github.com/users/LevinGeorge/orgs","repos_url":"https://api.github.com/users/LevinGeorge/repos","events_url":"https://api.github.com/users/LevinGeorge/events{/privacy}","received_events_url":"https://api.github.com/users/LevinGeorge/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-03-04T19:54:34Z","updated_at":"2016-03-04T23:05:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"93c46a7c66b26f9a6285dfccf7153d975b0256f5","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/SprintFire/marketplace/pulls/47/commits","review_comments_url":"https://api.github.com/repos/SprintFire/marketplace/pulls/47/comments","review_comment_url":"https://api.github.com/repos/SprintFire/marketplace/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SprintFire/marketplace/issues/47/comments","statuses_url":"https://api.github.com/repos/SprintFire/marketplace/statuses/bf844f81464dc57d821e1695c29537a1c228a74f","head":{"label":"SprintFire:comments","ref":"comments","sha":"bf844f81464dc57d821e1695c29537a1c228a74f","user":{"login":"SprintFire","id":16744926,"avatar_url":"https://avatars.githubusercontent.com/u/16744926?v=3","gravatar_id":"","url":"https://api.github.com/users/SprintFire","html_url":"https://github.com/SprintFire","followers_url":"https://api.github.com/users/SprintFire/followers","following_url":"https://api.github.com/users/SprintFire/following{/other_user}","gists_url":"https://api.github.com/users/SprintFire/gists{/gist_id}","starred_url":"https://api.github.com/users/SprintFire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SprintFire/subscriptions","organizations_url":"https://api.github.com/users/SprintFire/orgs","repos_url":"https://api.github.com/users/SprintFire/repos","events_url":"https://api.github.com/users/SprintFire/events{/privacy}","received_events_url":"https://api.github.com/users/SprintFire/received_events","type":"Organization","site_admin":false},"repo":{"id":51173500,"name":"marketplace","full_name":"SprintFire/marketplace","owner":{"login":"SprintFire","id":16744926,"avatar_url":"https://avatars.githubusercontent.com/u/16744926?v=3","gravatar_id":"","url":"https://api.github.com/users/SprintFire","html_url":"https://github.com/SprintFire","followers_url":"https://api.github.com/users/SprintFire/followers","following_url":"https://api.github.com/users/SprintFire/following{/other_user}","gists_url":"https://api.github.com/users/SprintFire/gists{/gist_id}","starred_url":"https://api.github.com/users/SprintFire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SprintFire/subscriptions","organizations_url":"https://api.github.com/users/SprintFire/orgs","repos_url":"https://api.github.com/users/SprintFire/repos","events_url":"https://api.github.com/users/SprintFire/events{/privacy}","received_events_url":"https://api.github.com/users/SprintFire/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SprintFire/marketplace","description":"","fork":false,"url":"https://api.github.com/repos/SprintFire/marketplace","forks_url":"https://api.github.com/repos/SprintFire/marketplace/forks","keys_url":"https://api.github.com/repos/SprintFire/marketplace/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SprintFire/marketplace/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SprintFire/marketplace/teams","hooks_url":"https://api.github.com/repos/SprintFire/marketplace/hooks","issue_events_url":"https://api.github.com/repos/SprintFire/marketplace/issues/events{/number}","events_url":"https://api.github.com/repos/SprintFire/marketplace/events","assignees_url":"https://api.github.com/repos/SprintFire/marketplace/assignees{/user}","branches_url":"https://api.github.com/repos/SprintFire/marketplace/branches{/branch}","tags_url":"https://api.github.com/repos/SprintFire/marketplace/tags","blobs_url":"https://api.github.com/repos/SprintFire/marketplace/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SprintFire/marketplace/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SprintFire/marketplace/git/refs{/sha}","trees_url":"https://api.github.com/repos/SprintFire/marketplace/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SprintFire/marketplace/statuses/{sha}","languages_url":"https://api.github.com/repos/SprintFire/marketplace/languages","stargazers_url":"https://api.github.com/repos/SprintFire/marketplace/stargazers","contributors_url":"https://api.github.com/repos/SprintFire/marketplace/contributors","subscribers_url":"https://api.github.com/repos/SprintFire/marketplace/subscribers","subscription_url":"https://api.github.com/repos/SprintFire/marketplace/subscription","commits_url":"https://api.github.com/repos/SprintFire/marketplace/commits{/sha}","git_commits_url":"https://api.github.com/repos/SprintFire/marketplace/git/commits{/sha}","comments_url":"https://api.github.com/repos/SprintFire/marketplace/comments{/number}","issue_comment_url":"https://api.github.com/repos/SprintFire/marketplace/issues/comments{/number}","contents_url":"https://api.github.com/repos/SprintFire/marketplace/contents/{+path}","compare_url":"https://api.github.com/repos/SprintFire/marketplace/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SprintFire/marketplace/merges","archive_url":"https://api.github.com/repos/SprintFire/marketplace/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SprintFire/marketplace/downloads","issues_url":"https://api.github.com/repos/SprintFire/marketplace/issues{/number}","pulls_url":"https://api.github.com/repos/SprintFire/marketplace/pulls{/number}","milestones_url":"https://api.github.com/repos/SprintFire/marketplace/milestones{/number}","notifications_url":"https://api.github.com/repos/SprintFire/marketplace/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SprintFire/marketplace/labels{/name}","releases_url":"https://api.github.com/repos/SprintFire/marketplace/releases{/id}","deployments_url":"https://api.github.com/repos/SprintFire/marketplace/deployments","created_at":"2016-02-05T20:56:56Z","updated_at":"2016-03-04T17:19:26Z","pushed_at":"2016-03-04T23:05:36Z","git_url":"git://github.com/SprintFire/marketplace.git","ssh_url":"git@github.com:SprintFire/marketplace.git","clone_url":"https://github.com/SprintFire/marketplace.git","svn_url":"https://github.com/SprintFire/marketplace","homepage":null,"size":614,"stargazers_count":3,"watchers_count":3,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":8,"forks":0,"open_issues":8,"watchers":3,"default_branch":"master"}},"base":{"label":"SprintFire:master","ref":"master","sha":"d8edb510fbb18e642942ab3516b9e774a24df626","user":{"login":"SprintFire","id":16744926,"avatar_url":"https://avatars.githubusercontent.com/u/16744926?v=3","gravatar_id":"","url":"https://api.github.com/users/SprintFire","html_url":"https://github.com/SprintFire","followers_url":"https://api.github.com/users/SprintFire/followers","following_url":"https://api.github.com/users/SprintFire/following{/other_user}","gists_url":"https://api.github.com/users/SprintFire/gists{/gist_id}","starred_url":"https://api.github.com/users/SprintFire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SprintFire/subscriptions","organizations_url":"https://api.github.com/users/SprintFire/orgs","repos_url":"https://api.github.com/users/SprintFire/repos","events_url":"https://api.github.com/users/SprintFire/events{/privacy}","received_events_url":"https://api.github.com/users/SprintFire/received_events","type":"Organization","site_admin":false},"repo":{"id":51173500,"name":"marketplace","full_name":"SprintFire/marketplace","owner":{"login":"SprintFire","id":16744926,"avatar_url":"https://avatars.githubusercontent.com/u/16744926?v=3","gravatar_id":"","url":"https://api.github.com/users/SprintFire","html_url":"https://github.com/SprintFire","followers_url":"https://api.github.com/users/SprintFire/followers","following_url":"https://api.github.com/users/SprintFire/following{/other_user}","gists_url":"https://api.github.com/users/SprintFire/gists{/gist_id}","starred_url":"https://api.github.com/users/SprintFire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SprintFire/subscriptions","organizations_url":"https://api.github.com/users/SprintFire/orgs","repos_url":"https://api.github.com/users/SprintFire/repos","events_url":"https://api.github.com/users/SprintFire/events{/privacy}","received_events_url":"https://api.github.com/users/SprintFire/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SprintFire/marketplace","description":"","fork":false,"url":"https://api.github.com/repos/SprintFire/marketplace","forks_url":"https://api.github.com/repos/SprintFire/marketplace/forks","keys_url":"https://api.github.com/repos/SprintFire/marketplace/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SprintFire/marketplace/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SprintFire/marketplace/teams","hooks_url":"https://api.github.com/repos/SprintFire/marketplace/hooks","issue_events_url":"https://api.github.com/repos/SprintFire/marketplace/issues/events{/number}","events_url":"https://api.github.com/repos/SprintFire/marketplace/events","assignees_url":"https://api.github.com/repos/SprintFire/marketplace/assignees{/user}","branches_url":"https://api.github.com/repos/SprintFire/marketplace/branches{/branch}","tags_url":"https://api.github.com/repos/SprintFire/marketplace/tags","blobs_url":"https://api.github.com/repos/SprintFire/marketplace/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SprintFire/marketplace/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SprintFire/marketplace/git/refs{/sha}","trees_url":"https://api.github.com/repos/SprintFire/marketplace/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SprintFire/marketplace/statuses/{sha}","languages_url":"https://api.github.com/repos/SprintFire/marketplace/languages","stargazers_url":"https://api.github.com/repos/SprintFire/marketplace/stargazers","contributors_url":"https://api.github.com/repos/SprintFire/marketplace/contributors","subscribers_url":"https://api.github.com/repos/SprintFire/marketplace/subscribers","subscription_url":"https://api.github.com/repos/SprintFire/marketplace/subscription","commits_url":"https://api.github.com/repos/SprintFire/marketplace/commits{/sha}","git_commits_url":"https://api.github.com/repos/SprintFire/marketplace/git/commits{/sha}","comments_url":"https://api.github.com/repos/SprintFire/marketplace/comments{/number}","issue_comment_url":"https://api.github.com/repos/SprintFire/marketplace/issues/comments{/number}","contents_url":"https://api.github.com/repos/SprintFire/marketplace/contents/{+path}","compare_url":"https://api.github.com/repos/SprintFire/marketplace/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SprintFire/marketplace/merges","archive_url":"https://api.github.com/repos/SprintFire/marketplace/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SprintFire/marketplace/downloads","issues_url":"https://api.github.com/repos/SprintFire/marketplace/issues{/number}","pulls_url":"https://api.github.com/repos/SprintFire/marketplace/pulls{/number}","milestones_url":"https://api.github.com/repos/SprintFire/marketplace/milestones{/number}","notifications_url":"https://api.github.com/repos/SprintFire/marketplace/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SprintFire/marketplace/labels{/name}","releases_url":"https://api.github.com/repos/SprintFire/marketplace/releases{/id}","deployments_url":"https://api.github.com/repos/SprintFire/marketplace/deployments","created_at":"2016-02-05T20:56:56Z","updated_at":"2016-03-04T17:19:26Z","pushed_at":"2016-03-04T23:05:36Z","git_url":"git://github.com/SprintFire/marketplace.git","ssh_url":"git@github.com:SprintFire/marketplace.git","clone_url":"https://github.com/SprintFire/marketplace.git","svn_url":"https://github.com/SprintFire/marketplace","homepage":null,"size":614,"stargazers_count":3,"watchers_count":3,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":8,"forks":0,"open_issues":8,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SprintFire/marketplace/pulls/47"},"html":{"href":"https://github.com/SprintFire/marketplace/pull/47"},"issue":{"href":"https://api.github.com/repos/SprintFire/marketplace/issues/47"},"comments":{"href":"https://api.github.com/repos/SprintFire/marketplace/issues/47/comments"},"review_comments":{"href":"https://api.github.com/repos/SprintFire/marketplace/pulls/47/comments"},"review_comment":{"href":"https://api.github.com/repos/SprintFire/marketplace/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SprintFire/marketplace/pulls/47/commits"},"statuses":{"href":"https://api.github.com/repos/SprintFire/marketplace/statuses/bf844f81464dc57d821e1695c29537a1c228a74f"}}}}