{"action":"created","comment":{"url":"https://api.github.com/repos/prebid/Prebid.js/pulls/comments/95031062","pull_request_review_id":15345297,"id":95031062,"diff_hunk":"@@ -1,130 +1,228 @@\n-// jshint ignore:start\n-var bidfactory = require('../bidfactory.js');\n-var bidmanager = require('../bidmanager.js');\n-var adloader = require('../adloader');\n-\n-/**\n- * Adapter for requesting bids from OpenX.\n- *\n- * @param {Object} options - Configuration options for OpenX\n- * @param {string} options.pageURL - Current page URL to send with bid request\n- * @param {string} options.refererURL - Referer URL to send with bid request\n- *\n- * @returns {{callBids: _callBids}}\n- * @constructor\n- */\n-var OpenxAdapter = function OpenxAdapter(options) {\n-\n-  var opts = options || {};\n-  var scriptUrl;\n-  var bids;\n-\n-  function _callBids(params) {\n-    bids = params.bids || [];\n-    for (var i = 0; i < bids.length; i++) {\n-      var bid = bids[i];\n-\n-      //load page options from bid request\n-      if (bid.params.pageURL) {\n-        opts.pageURL = bid.params.pageURL;\n-      }\n+const bidfactory = require('../bidfactory.js');\n+const bidmanager = require('../bidmanager.js');\n+const adloader = require('../adloader');\n+const CONSTANTS = require('../constants.json');\n+const utils = require('../utils.js');\n+\n+const OpenxAdapter = function OpenxAdapter() {\n+  const BIDDER_CODE = 'openx';\n+  const BIDDER_CONFIG = 'hb_pb';\n+  let startTime;\n+\n+  let pdNode = null;\n+\n+  $$PREBID_GLOBAL$$.oxARJResponse = function (oxResponseObj) {\n+    let adUnits = oxResponseObj.ads.ad;\n+    if (oxResponseObj.ads && oxResponseObj.ads.pixels) {\n+      makePDCall(oxResponseObj.ads.pixels);\n+    }\n \n-      if (bid.params.refererURL) {\n-        opts.refererURL = bid.params.refererURL;\n-      }\n+    if (!adUnits) {\n+      adUnits = [];\n+    }\n \n-      if (bid.params.jstag_url) {\n-        scriptUrl = bid.params.jstag_url;\n+    var bids = $$PREBID_GLOBAL$$._bidsRequested.find(bidSet => bidSet.bidderCode === 'openx').bids;\n+    for (let i = 0; i < bids.length; i++) {\n+      let bid = bids[i];\n+      let auid = null;\n+      let adUnit = null;\n+      // find the adunit in the response\n+      for (let j = 0; j < adUnits.length; j++) {\n+        adUnit = adUnits[j];\n+        if (String(bid.params.unit) === String(adUnit.adunitid) && adUnitHasValidSizeFromBid(adUnit,bid) && !adUnit.used) {\n+          auid = adUnit.adunitid;\n+          break;\n+        }\n       }\n \n-      if (bid.params.pgid) {\n-        opts.pgid = bid.params.pgid;\n+      let beaconParams = {\n+        bd: +(new Date()) - startTime,\n+        br: '0', // maybe 0, t, or p\n+        bt: $$PREBID_GLOBAL$$.cbTimeout || $$PREBID_GLOBAL$$.bidderTimeout , // For the timeout per bid request\n+        bs: window.location.hostname\n+      };\n+\n+      // no fill :(\n+      if (!auid) {\n+        addBidResponse(null, bid);\n+        continue;\n       }\n+      adUnit.used = true;\n+\n+      if (adUnit.pub_rev) {\n+        beaconParams.br = beaconParams.bt < beaconParams.bd ? 't' : 'p';\n+        beaconParams.bp = adUnit.pub_rev;\n+        beaconParams.ts = adUnit.ts;\n+        addBidResponse(adUnit, bid);\n+      } \n+      buildBoPixel(adUnit.creative[0], beaconParams);\n+    }\n+  };\n+\n+  function getViewportDimensions(isIfr) {\n+    var width,\n+      height,\n+      tWin = window,\n+      tDoc = document,\n+      docEl = tDoc.documentElement,\n+      body;\n+\n+    if (isIfr) {\n+      tWin = window.top;\n+      tDoc = window.top.document;\n+      docEl = tDoc.documentElement;\n+      body = tDoc.body;\n+\n+      width = tWin.innerWidth || docEl.clientWidth || body.clientWidth;\n+      height = tWin.innerHeight || docEl.clientHeight || body.clientHeight;\n+    } else {\n+      docEl = tDoc.documentElement;\n+      width = tWin.innerWidth || docEl.clientWidth;\n+      height = tWin.innerHeight || docEl.clientHeight;\n     }\n \n-    _requestBids();\n+    return `${width}x${height}`;\n   }\n \n-  function _requestBids() {\n+  function makePDCall(pixelsUrl) {\n+    let pdFrame = utils.createInvisibleIframe();\n+    let name = 'openx-pd';\n+    pdFrame.setAttribute(\"id\", name);\n+    pdFrame.setAttribute(\"name\", name);\n+    let rootNode = document.body;\n \n-    if (scriptUrl) {\n-      adloader.loadScript(scriptUrl, function () {\n-        var i;\n-        var POX = OX();\n+    if (!rootNode) {\n+      return;\n+    }\n \n-        if (opts.pageURL) {\n-          POX.setPageURL(opts.pageURL);\n-        }\n+    pdFrame.src = pixelsUrl;\n \n-        if (opts.refererURL) {\n-          POX.setRefererURL(opts.refererURL);\n+    if (pdNode) {\n+      pdNode.parentNode.replaceChild(pdFrame, pdNode);\n+      pdNode = pdFrame;\n+    } else {\n+      pdNode = rootNode.appendChild(pdFrame);\n+    }\n+  }\n+\n+  function addBidResponse(adUnit, bid) {\n+    var bidResponse = bidfactory.createBid(adUnit ? CONSTANTS.STATUS.GOOD : CONSTANTS.STATUS.NO_BID);\n+    bidResponse.bidderCode = BIDDER_CODE;\n+\n+    if (adUnit) {\n+      let creative = adUnit.creative[0];\n+      bidResponse.ad = adUnit.html;\n+      bidResponse.cpm = Number(adUnit.pub_rev) / 1000;\n+      bidResponse.ad_id = adUnit.adid;\n+      if (adUnit.deal_id) {\n+        bidResponse.dealId = adUnit.deal_id;\n+      }\n+      if (creative) {\n+        bidResponse.width = creative.width;\n+        bidResponse.height = creative.height;\n+      }\n+    }\n+    bidmanager.addBidResponse(bid.placementCode, bidResponse);\n+  }\n+\n+  function buildQueryStringFromParams(params) {\n+    for (var key in params) {\n+      if (params.hasOwnProperty(key)) {\n+        if (!params[key]) {\n+          delete params[key];\n         }\n+      }\n+    }\n+    return utils._map(Object.keys(params), key => `${key}=${params[key]}`)\n+      .join('&');\n+  }\n+\n+  function buildBoPixel(creative, params) {\n+    let img = new Image();\n+    let recordPixel = creative.tracking.impression;\n+    let boBase = recordPixel.match(/([^?]+\\/)ri\\?/);\n \n-        if (opts.pgid) {\n-          POX.addPage(opts.pgid);\n+    if (boBase) {\n+      img.src = `${boBase[1]}bo?${buildQueryStringFromParams(params)}`;\n+      return img;\n+    }\n+  }\n+\n+  function adUnitHasValidSizeFromBid(adUnit, bid) {\n+    let sizes = utils.parseSizesInput(bid.sizes);\n+    let sizeLength = sizes && sizes.length || 0;\n+    let found = false;\n+    let creative = adUnit.creative && adUnit.creative[0];\n+    let creative_size = String(creative.width) + 'x' + String(creative.height);\n+\n+    if (utils.isArray(sizes)) {\n+      for (let i = 0; i < sizeLength; i++) {\n+        let size = sizes[i];\n+        if (String(size) === String(creative_size)) {\n+          found = true;\n+          break;\n         }\n+      }\n+    }\n+    return found;\n+  }\n \n-        // Add each ad unit ID\n-        for (i = 0; i < bids.length; i++) {\n-          POX.addAdUnit(bids[i].params.unit);\n+  function buildRequest(bids, params, delDomain) {\n+    if (!utils.isArray(bids)) {\n+      return;\n+    }\n+\n+    params.auid = utils._map(bids, bid => bid.params.unit).join('%2C');\n+    params.aus = utils._map(bids, bid => {\n+      return utils.parseSizesInput(bid.sizes).join(',');\n+    }).join('|');\n+\n+    bids.forEach(function (bid) {\n+      for (let customParam in bid.params.customParams) {\n+        if (bid.params.customParams.hasOwnProperty(customParam)) {\n+          params[\"c.\" + customParam] = bid.params.customParams[customParam];\n         }\n+      }\n+    });\n+\n+    params.callback = 'window.$$PREBID_GLOBAL$$.oxARJResponse';\n+    let queryString = buildQueryStringFromParams(params);\n \n-        POX.addHook(function (response) {\n-          var i;\n-          var bid;\n-          var adUnit;\n-          var adResponse;\n-\n-          // Map each bid to its response\n-          for (i = 0; i < bids.length; i++) {\n-            bid = bids[i];\n-\n-            // Get ad response\n-            adUnit = response.getOrCreateAdUnit(bid.params.unit);\n-            // If 'pub_rev' (CPM) isn't returned we got an empty response\n-            if (adUnit.get('pub_rev')) {\n-              adResponse = adResponse = bidfactory.createBid(1);\n-\n-              adResponse.bidderCode = 'openx';\n-              adResponse.ad_id = adUnit.get('ad_id');\n-              adResponse.cpm = Number(adUnit.get('pub_rev')) / 1000;\n-\n-              adResponse.ad = adUnit.get('html');\n-              if(adUnit.get('deal_id') !== undefined) {\n-                adResponse.dealId = adUnit.get('deal_id');\n-              }\n-\n-              // Add record/impression pixel to the creative HTML\n-              var recordPixel = OX.utils.template(response.getRecordTemplate(), {\n-                medium: OX.utils.getMedium(),\n-                rtype: OX.Resources.RI,\n-                txn_state: adUnit.get('ts')\n-              });\n-              adResponse.ad += '<div style=\"position:absolute;left:0px;top:0px;visibility:hidden;\"><img src=\"' + recordPixel + '\"></div>';\n-\n-              adResponse.adUrl = adUnit.get('ad_url');\n-              adResponse.width = adUnit.get('width');\n-              adResponse.height = adUnit.get('height');\n-\n-              bidmanager.addBidResponse(bid.placementCode, adResponse);\n-            } else {\n-              // Indicate an ad was not returned\n-              adResponse = bidfactory.createBid(2);\n-              adResponse.bidderCode = 'openx';\n-              bidmanager.addBidResponse(bid.placementCode, adResponse);\n-            }\n-          }\n-        }, OX.Hooks.ON_AD_RESPONSE);\n-\n-        // Make request\n-        POX.load();\n-      }, true);\n+    adloader.loadScript(`//${delDomain}/w/1.0/arj?${queryString}`);\n+  }\n+\n+  function callBids(params) {\n+    let isIfr = window.self !== window.top,","path":"src/adapters/openx.js","position":298,"original_position":298,"commit_id":"ccb7ef4df2d0cb8e57d8f312de90b44ef126c68d","original_commit_id":"ccb7ef4df2d0cb8e57d8f312de90b44ef126c68d","user":{"login":"mkendall07","id":1870166,"avatar_url":"https://avatars.githubusercontent.com/u/1870166?v=3","gravatar_id":"","url":"https://api.github.com/users/mkendall07","html_url":"https://github.com/mkendall07","followers_url":"https://api.github.com/users/mkendall07/followers","following_url":"https://api.github.com/users/mkendall07/following{/other_user}","gists_url":"https://api.github.com/users/mkendall07/gists{/gist_id}","starred_url":"https://api.github.com/users/mkendall07/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkendall07/subscriptions","organizations_url":"https://api.github.com/users/mkendall07/orgs","repos_url":"https://api.github.com/users/mkendall07/repos","events_url":"https://api.github.com/users/mkendall07/events{/privacy}","received_events_url":"https://api.github.com/users/mkendall07/received_events","type":"User","site_admin":false},"body":"try/catch","created_at":"2017-01-06T22:19:29Z","updated_at":"2017-01-06T22:28:10Z","html_url":"https://github.com/prebid/Prebid.js/pull/896#discussion_r95031062","pull_request_url":"https://api.github.com/repos/prebid/Prebid.js/pulls/896","_links":{"self":{"href":"https://api.github.com/repos/prebid/Prebid.js/pulls/comments/95031062"},"html":{"href":"https://github.com/prebid/Prebid.js/pull/896#discussion_r95031062"},"pull_request":{"href":"https://api.github.com/repos/prebid/Prebid.js/pulls/896"}}},"pull_request":{"url":"https://api.github.com/repos/prebid/Prebid.js/pulls/896","id":99480817,"html_url":"https://github.com/prebid/Prebid.js/pull/896","diff_url":"https://github.com/prebid/Prebid.js/pull/896.diff","patch_url":"https://github.com/prebid/Prebid.js/pull/896.patch","issue_url":"https://api.github.com/repos/prebid/Prebid.js/issues/896","number":896,"state":"open","locked":false,"title":"OpenX official adapter release: Fixing the existing openx adapter and…","user":{"login":"lntho","id":22649074,"avatar_url":"https://avatars.githubusercontent.com/u/22649074?v=3","gravatar_id":"","url":"https://api.github.com/users/lntho","html_url":"https://github.com/lntho","followers_url":"https://api.github.com/users/lntho/followers","following_url":"https://api.github.com/users/lntho/following{/other_user}","gists_url":"https://api.github.com/users/lntho/gists{/gist_id}","starred_url":"https://api.github.com/users/lntho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lntho/subscriptions","organizations_url":"https://api.github.com/users/lntho/orgs","repos_url":"https://api.github.com/users/lntho/repos","events_url":"https://api.github.com/users/lntho/events{/privacy}","received_events_url":"https://api.github.com/users/lntho/received_events","type":"User","site_admin":false},"body":"… adding test coverage on it\r\n\r\n<!--\r\nThank you for your pull request. Please make sure this PR is scoped to one change, and that any added or changed code includes tests with greater than 80% code coverage. See http://prebid.org/dev-docs/testing-prebid.html for documentation on testing Prebid.js.\r\n-->\r\n\r\n## Type of change\r\n- [ x ] official adapter submission\r\n\r\n<!-- For new bidder adapters, please provide the following -->\r\n- test parameters for validating bids\r\n```\r\n{\r\n  bidder: 'openx’,\r\n  params: {\r\n    // …\r\n    params: {\r\n              unit: ‘538562284’, // OpenX ad unit ID\r\n              delDomain: 'clientname-d.openx.net',  // OpenX delivery domain\r\n              customParams: {\"gender\": \"female\"}   // Publisher specified custom parameters, optional\r\n            }\r\n  }\r\n}\r\n```\r\nbidder code: openx\r\nSend All Bids Ad Server Keys: hb_pb_openx, hb_adid_openx, hb_size_openx\r\nDefault Deal ID Ad Server Key: hb_deal_openx\r\n\r\n- contact email of the adapter’s maintainer: team-openx@openx.com\r\n\r\n\r\n\r\n## Other information\r\nNote:\r\nThe OpenX adapter requires setup and approval from your OpenX team. Please reach out to your OpenX representative or Support@openx.com for more information and to enable using this adapter.\r\n\r\n<!-- References to related PR or issue #s, @mentions of the person or team responsible for reviewing changes, etc. -->","created_at":"2016-12-27T20:31:56Z","updated_at":"2017-01-06T22:28:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"96d2a798116cd1ded7ea7de4eb9826c0595d177b","assignee":{"login":"mkendall07","id":1870166,"avatar_url":"https://avatars.githubusercontent.com/u/1870166?v=3","gravatar_id":"","url":"https://api.github.com/users/mkendall07","html_url":"https://github.com/mkendall07","followers_url":"https://api.github.com/users/mkendall07/followers","following_url":"https://api.github.com/users/mkendall07/following{/other_user}","gists_url":"https://api.github.com/users/mkendall07/gists{/gist_id}","starred_url":"https://api.github.com/users/mkendall07/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkendall07/subscriptions","organizations_url":"https://api.github.com/users/mkendall07/orgs","repos_url":"https://api.github.com/users/mkendall07/repos","events_url":"https://api.github.com/users/mkendall07/events{/privacy}","received_events_url":"https://api.github.com/users/mkendall07/received_events","type":"User","site_admin":false},"assignees":[{"login":"mkendall07","id":1870166,"avatar_url":"https://avatars.githubusercontent.com/u/1870166?v=3","gravatar_id":"","url":"https://api.github.com/users/mkendall07","html_url":"https://github.com/mkendall07","followers_url":"https://api.github.com/users/mkendall07/followers","following_url":"https://api.github.com/users/mkendall07/following{/other_user}","gists_url":"https://api.github.com/users/mkendall07/gists{/gist_id}","starred_url":"https://api.github.com/users/mkendall07/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkendall07/subscriptions","organizations_url":"https://api.github.com/users/mkendall07/orgs","repos_url":"https://api.github.com/users/mkendall07/repos","events_url":"https://api.github.com/users/mkendall07/events{/privacy}","received_events_url":"https://api.github.com/users/mkendall07/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/prebid/Prebid.js/milestones/7","html_url":"https://github.com/prebid/Prebid.js/milestone/7","labels_url":"https://api.github.com/repos/prebid/Prebid.js/milestones/7/labels","id":2231258,"number":7,"title":"Prebid 0.18.0","description":"","creator":{"login":"mkendall07","id":1870166,"avatar_url":"https://avatars.githubusercontent.com/u/1870166?v=3","gravatar_id":"","url":"https://api.github.com/users/mkendall07","html_url":"https://github.com/mkendall07","followers_url":"https://api.github.com/users/mkendall07/followers","following_url":"https://api.github.com/users/mkendall07/following{/other_user}","gists_url":"https://api.github.com/users/mkendall07/gists{/gist_id}","starred_url":"https://api.github.com/users/mkendall07/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkendall07/subscriptions","organizations_url":"https://api.github.com/users/mkendall07/orgs","repos_url":"https://api.github.com/users/mkendall07/repos","events_url":"https://api.github.com/users/mkendall07/events{/privacy}","received_events_url":"https://api.github.com/users/mkendall07/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":0,"state":"open","created_at":"2017-01-05T17:13:48Z","updated_at":"2017-01-06T17:55:15Z","due_on":"2017-01-26T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/prebid/Prebid.js/pulls/896/commits","review_comments_url":"https://api.github.com/repos/prebid/Prebid.js/pulls/896/comments","review_comment_url":"https://api.github.com/repos/prebid/Prebid.js/pulls/comments{/number}","comments_url":"https://api.github.com/repos/prebid/Prebid.js/issues/896/comments","statuses_url":"https://api.github.com/repos/prebid/Prebid.js/statuses/ccb7ef4df2d0cb8e57d8f312de90b44ef126c68d","head":{"label":"openx:openx-release","ref":"openx-release","sha":"ccb7ef4df2d0cb8e57d8f312de90b44ef126c68d","user":{"login":"openx","id":161648,"avatar_url":"https://avatars.githubusercontent.com/u/161648?v=3","gravatar_id":"","url":"https://api.github.com/users/openx","html_url":"https://github.com/openx","followers_url":"https://api.github.com/users/openx/followers","following_url":"https://api.github.com/users/openx/following{/other_user}","gists_url":"https://api.github.com/users/openx/gists{/gist_id}","starred_url":"https://api.github.com/users/openx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openx/subscriptions","organizations_url":"https://api.github.com/users/openx/orgs","repos_url":"https://api.github.com/users/openx/repos","events_url":"https://api.github.com/users/openx/events{/privacy}","received_events_url":"https://api.github.com/users/openx/received_events","type":"Organization","site_admin":false},"repo":{"id":70182407,"name":"Prebid.js","full_name":"openx/Prebid.js","owner":{"login":"openx","id":161648,"avatar_url":"https://avatars.githubusercontent.com/u/161648?v=3","gravatar_id":"","url":"https://api.github.com/users/openx","html_url":"https://github.com/openx","followers_url":"https://api.github.com/users/openx/followers","following_url":"https://api.github.com/users/openx/following{/other_user}","gists_url":"https://api.github.com/users/openx/gists{/gist_id}","starred_url":"https://api.github.com/users/openx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openx/subscriptions","organizations_url":"https://api.github.com/users/openx/orgs","repos_url":"https://api.github.com/users/openx/repos","events_url":"https://api.github.com/users/openx/events{/privacy}","received_events_url":"https://api.github.com/users/openx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/openx/Prebid.js","description":"Setup and manage header bidding advertising partners without writing code or confusing line items. Prebid.js is open source and free.","fork":true,"url":"https://api.github.com/repos/openx/Prebid.js","forks_url":"https://api.github.com/repos/openx/Prebid.js/forks","keys_url":"https://api.github.com/repos/openx/Prebid.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openx/Prebid.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openx/Prebid.js/teams","hooks_url":"https://api.github.com/repos/openx/Prebid.js/hooks","issue_events_url":"https://api.github.com/repos/openx/Prebid.js/issues/events{/number}","events_url":"https://api.github.com/repos/openx/Prebid.js/events","assignees_url":"https://api.github.com/repos/openx/Prebid.js/assignees{/user}","branches_url":"https://api.github.com/repos/openx/Prebid.js/branches{/branch}","tags_url":"https://api.github.com/repos/openx/Prebid.js/tags","blobs_url":"https://api.github.com/repos/openx/Prebid.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openx/Prebid.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openx/Prebid.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/openx/Prebid.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openx/Prebid.js/statuses/{sha}","languages_url":"https://api.github.com/repos/openx/Prebid.js/languages","stargazers_url":"https://api.github.com/repos/openx/Prebid.js/stargazers","contributors_url":"https://api.github.com/repos/openx/Prebid.js/contributors","subscribers_url":"https://api.github.com/repos/openx/Prebid.js/subscribers","subscription_url":"https://api.github.com/repos/openx/Prebid.js/subscription","commits_url":"https://api.github.com/repos/openx/Prebid.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/openx/Prebid.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/openx/Prebid.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/openx/Prebid.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/openx/Prebid.js/contents/{+path}","compare_url":"https://api.github.com/repos/openx/Prebid.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openx/Prebid.js/merges","archive_url":"https://api.github.com/repos/openx/Prebid.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openx/Prebid.js/downloads","issues_url":"https://api.github.com/repos/openx/Prebid.js/issues{/number}","pulls_url":"https://api.github.com/repos/openx/Prebid.js/pulls{/number}","milestones_url":"https://api.github.com/repos/openx/Prebid.js/milestones{/number}","notifications_url":"https://api.github.com/repos/openx/Prebid.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openx/Prebid.js/labels{/name}","releases_url":"https://api.github.com/repos/openx/Prebid.js/releases{/id}","deployments_url":"https://api.github.com/repos/openx/Prebid.js/deployments","created_at":"2016-10-06T18:40:54Z","updated_at":"2016-11-03T16:48:24Z","pushed_at":"2017-01-06T19:44:58Z","git_url":"git://github.com/openx/Prebid.js.git","ssh_url":"git@github.com:openx/Prebid.js.git","clone_url":"https://github.com/openx/Prebid.js.git","svn_url":"https://github.com/openx/Prebid.js","homepage":"http://prebid.org","size":20694,"stargazers_count":1,"watchers_count":1,"language":"JavaScript","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":1,"default_branch":"master"}},"base":{"label":"prebid:master","ref":"master","sha":"4621b515cf155900abb76f468f23f3a8f8c4a668","user":{"login":"prebid","id":13242760,"avatar_url":"https://avatars.githubusercontent.com/u/13242760?v=3","gravatar_id":"","url":"https://api.github.com/users/prebid","html_url":"https://github.com/prebid","followers_url":"https://api.github.com/users/prebid/followers","following_url":"https://api.github.com/users/prebid/following{/other_user}","gists_url":"https://api.github.com/users/prebid/gists{/gist_id}","starred_url":"https://api.github.com/users/prebid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prebid/subscriptions","organizations_url":"https://api.github.com/users/prebid/orgs","repos_url":"https://api.github.com/users/prebid/repos","events_url":"https://api.github.com/users/prebid/events{/privacy}","received_events_url":"https://api.github.com/users/prebid/received_events","type":"Organization","site_admin":false},"repo":{"id":39321023,"name":"Prebid.js","full_name":"prebid/Prebid.js","owner":{"login":"prebid","id":13242760,"avatar_url":"https://avatars.githubusercontent.com/u/13242760?v=3","gravatar_id":"","url":"https://api.github.com/users/prebid","html_url":"https://github.com/prebid","followers_url":"https://api.github.com/users/prebid/followers","following_url":"https://api.github.com/users/prebid/following{/other_user}","gists_url":"https://api.github.com/users/prebid/gists{/gist_id}","starred_url":"https://api.github.com/users/prebid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prebid/subscriptions","organizations_url":"https://api.github.com/users/prebid/orgs","repos_url":"https://api.github.com/users/prebid/repos","events_url":"https://api.github.com/users/prebid/events{/privacy}","received_events_url":"https://api.github.com/users/prebid/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/prebid/Prebid.js","description":"Setup and manage header bidding advertising partners without writing code or confusing line items. Prebid.js is open source and free.","fork":false,"url":"https://api.github.com/repos/prebid/Prebid.js","forks_url":"https://api.github.com/repos/prebid/Prebid.js/forks","keys_url":"https://api.github.com/repos/prebid/Prebid.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/prebid/Prebid.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/prebid/Prebid.js/teams","hooks_url":"https://api.github.com/repos/prebid/Prebid.js/hooks","issue_events_url":"https://api.github.com/repos/prebid/Prebid.js/issues/events{/number}","events_url":"https://api.github.com/repos/prebid/Prebid.js/events","assignees_url":"https://api.github.com/repos/prebid/Prebid.js/assignees{/user}","branches_url":"https://api.github.com/repos/prebid/Prebid.js/branches{/branch}","tags_url":"https://api.github.com/repos/prebid/Prebid.js/tags","blobs_url":"https://api.github.com/repos/prebid/Prebid.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/prebid/Prebid.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/prebid/Prebid.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/prebid/Prebid.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/prebid/Prebid.js/statuses/{sha}","languages_url":"https://api.github.com/repos/prebid/Prebid.js/languages","stargazers_url":"https://api.github.com/repos/prebid/Prebid.js/stargazers","contributors_url":"https://api.github.com/repos/prebid/Prebid.js/contributors","subscribers_url":"https://api.github.com/repos/prebid/Prebid.js/subscribers","subscription_url":"https://api.github.com/repos/prebid/Prebid.js/subscription","commits_url":"https://api.github.com/repos/prebid/Prebid.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/prebid/Prebid.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/prebid/Prebid.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/prebid/Prebid.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/prebid/Prebid.js/contents/{+path}","compare_url":"https://api.github.com/repos/prebid/Prebid.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/prebid/Prebid.js/merges","archive_url":"https://api.github.com/repos/prebid/Prebid.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/prebid/Prebid.js/downloads","issues_url":"https://api.github.com/repos/prebid/Prebid.js/issues{/number}","pulls_url":"https://api.github.com/repos/prebid/Prebid.js/pulls{/number}","milestones_url":"https://api.github.com/repos/prebid/Prebid.js/milestones{/number}","notifications_url":"https://api.github.com/repos/prebid/Prebid.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/prebid/Prebid.js/labels{/name}","releases_url":"https://api.github.com/repos/prebid/Prebid.js/releases{/id}","deployments_url":"https://api.github.com/repos/prebid/Prebid.js/deployments","created_at":"2015-07-19T03:26:23Z","updated_at":"2017-01-04T09:58:33Z","pushed_at":"2017-01-06T19:45:00Z","git_url":"git://github.com/prebid/Prebid.js.git","ssh_url":"git@github.com:prebid/Prebid.js.git","clone_url":"https://github.com/prebid/Prebid.js.git","svn_url":"https://github.com/prebid/Prebid.js","homepage":"http://prebid.org","size":1799,"stargazers_count":347,"watchers_count":347,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":281,"mirror_url":null,"open_issues_count":57,"forks":281,"open_issues":57,"watchers":347,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/prebid/Prebid.js/pulls/896"},"html":{"href":"https://github.com/prebid/Prebid.js/pull/896"},"issue":{"href":"https://api.github.com/repos/prebid/Prebid.js/issues/896"},"comments":{"href":"https://api.github.com/repos/prebid/Prebid.js/issues/896/comments"},"review_comments":{"href":"https://api.github.com/repos/prebid/Prebid.js/pulls/896/comments"},"review_comment":{"href":"https://api.github.com/repos/prebid/Prebid.js/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/prebid/Prebid.js/pulls/896/commits"},"statuses":{"href":"https://api.github.com/repos/prebid/Prebid.js/statuses/ccb7ef4df2d0cb8e57d8f312de90b44ef126c68d"}}}}
{"actor":{"display_login":"mkendall07"}}