{"action":"created","comment":{"url":"https://api.github.com/repos/auth0/blog/pulls/comments/65968219","id":65968219,"diff_hunk":"@@ -0,0 +1,437 @@\n+---\n+layout: post\n+title: \"Firebase 3.0 SDK with Auth0 Integration\"\n+description: \"Build a serverless Firebase app using the new Firebase 3.0 SDK. Extend the app by letting Auth0 handle user authentication.\"\n+date: 2016-06-06 08:30\n+author: \n+  name: \"Ado Kukic\"\n+  url: \"https://twitter.com/kukicadnan\"\n+  mail: \"ado@auth0.com\"\n+  avatar: \"https://s.gravatar.com/avatar/99c4080f412ccf46b9b564db7f482907?s=200\"\n+design: \n+  bg_color: \"#003C6A\"\n+  image: \"https://cdn.auth0.com/blog/new-firebase/firebase_logo.png\"\n+tags: \n+- Firebase\n+- Firebase 3.0 SDK\n+- Firebase Custom Authentication\n+- Auth0 Delegation\n+related:\n+- 2016-05-14-how-passwordless-sms-authentication-can-improve-your-app\n+- 2016-04-20-everything-you-wanted-to-know-about-oauth-2-but-were-too-afraid-to-ask\n+- 2016-04-07-integrate-auth0-into-your-existing-saas-tools\n+---\n+\n+---\n+\n+**TL;DR** Firebase is a real-time platform that allows developers to build serverless web and mobile apps. Release of the Firebase 3.0 SDK brings a refined API and additional features to the platform. We'll build an app with the new SDK and show how you can integrate Auth0 to handle user authentication.\n+\n+As the new SDK has not propogated to the official Firebase helper libraries, our app will be written in plain ol' JavaScript. Grab the [Github repo](https://github.com/auth0-blog/fireteller) if you would like to follow along.\n+\n+---\n+\n+At this years Google I/O conference, [Firebase](https://firebase.google.com) took the spotlight and ran with it. A major update pushes Firebase closer to becoming *the* platform for building real-time web and mobile apps. Firebase can now become a one-stop shop for your entire application, from inception to post-deployment.\n+\n+Firebase is a real-time database-as-a-service platform that allows developers to build apps that propagate updates in real-time. Through the Firebase SDK, apps can talk directly to the database without the need for a backend - but is not limited to this paradigm. The new Firebase offers much more and we'll look at what's new next.\n+\n+{% include tweet_quote.html quote_text=\"Firebase can be a one-stop shop for your entire app, from inception to post-deployment.\" %}\n+\n+## The New Firebase\n+\n+![The New Firebase](https://cdn.auth0.com/blog/new-firebase/firebase-home.png)\n+\n+The new updates to the platform have been categorized into three sections: **Develop**, **Grow**, and **Earn**. A new SDK, versioned 3.0, accompanies the new Firebase. The new SDK has many breaking changes and is incompatible with earlier versions. While there are many changes, the functionality remains familiar.\n+\n+For example, with Firebase SDK 2.x, if you wanted to retrieve a list of records from an endpoint you would do so like this:\n+\n+```\n+// Get a database reference to our posts\n+var ref = new Firebase(\"https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts\");\n+// Attach an asynchronous callback to read the data at our posts reference\n+ref.on(\"value\", function(snapshot) {\n+  console.log(snapshot.val());\n+}, function (errorObject) {\n+  console.log(\"The read failed: \" + errorObject.code);\n+});\n+```\n+\n+With the new Firebase SDK 3.0, to retrieve a list of records you would do:\n+\n+```\n+firebase.database().ref('posts').on('value', function(snapshot) {\n+  console.log(snapshot.val());\n+});\n+```\n+\n+Check out the [migration guide](https://firebase.google.com/support/guides/firebase-web) to learn about all the changes if you are migrating an existing Firebase app to the new SDK. Let's examine how the new Firebase makes the developing apps awesome. \n+\n+### Develop\n+\n+When we talk about Firebase, we generally are talking about the real-time database feature of the platform, but there is much more to it than that. Website **hosting** as well as **file storage** allow you to get your app up and running without thinking about servers and infrastructure. Additionally, utilities for testing, analytics, and crash reporting are included. Finally, the [Firebase CLI](https://firebase.google.com/docs/cli/) allows you to easily create and deploy your app with just a few simple commands.\n+\n+### Grow\n+\n+Once your app is built, Firebase offers a suite of tools to help you grow your audience. **Notifications** allow you to engage users and **Dynamic Links** allow you to set the context for the user, while **App Indexing** allows your app to be discovered. **Invites** and **AdWords** allow you to spread the word to a wider audience. The features in this section primarily target mobile applications.\n+\n+### Earn\n+\n+Monetizing your app can be done via **AdMob**. The integration can simply be turned on from your Firebase console once you have an active AdMob account.\n+\n+{% include tweet_quote.html quote_text=\"The new Firebase allows you to Develop, Grow, and Earn. Make it even better with Auth0!\" %}\n+\n+## FireTeller - Our Firebase 3.0 App\n+\n+The app we'll be building is called FireTeller. It is a collaborative storytelling app with a twist - anyone can contribute a piece to the story and the stories are told through *emojis*. To see the app in action, [click here](https://project-8302152786657556368.firebaseapp.com/), if you would like to get the completed code and follow along, check out the [GitHub repo](https://github.com/auth0-blog/fireteller). [Sign up](https://firebase.google.com) for a free Firebase account before continuing.\n+\n+### From Humble Beginnings\n+\n+To get started, we'll install the Firebase CLI. You'll need [NodeJS](https://nodejs.org) and [npm](https://npmjs.com), so once you have those installed, in a terminal window enter the following command: `npm install -g firebase-tools`. Once the install is complete, type `firebase login` and you will be prompted to login to your Firebase account and grant permissions so the CLI can do its thing. Finally, navigate to a directory where you want your app to live and type `firebase init` to create a new application. You will go through a number of steps to setup the initial app, selecting the default for each should work just fine.\n+\n+![Creating a new Firebase application](https://cdn.auth0.com/blog/new-firebase/firebase-init.png)\n+\n+Once the setup is complete, run the `firebase serve` command and your application will launch at `localhost:5000`. Navigate to `localhost:5000` now to make sure everything is running smoothly. If it is, you'll see a splash screen telling you that you are ready to go.\n+\n+![Firebase Splash Screen](https://cdn.auth0.com/blog/new-firebase/firebase-splash.png)\n+\n+### Building the UI\n+\n+We will build our entire UI in the `index.html` file located in the `public` directory that the CLI has already created for us. Open the file and strip out the existing code. Here is what our app is going to look like:\n+\n+![Fireteller App](https://cdn.auth0.com/blog/new-firebase/fireteller-app.png)\n+\n+Let's build that UI.\n+\n+```html\n+<!DOCTYPE html>\n+<html>\n+  <head>\n+    <meta charset=\"utf-8\">\n+    <title>FireTeller</title>\n+    <link href=\"https://afeld.github.io/emoji-css/emoji.css\" rel=\"stylesheet\">\n+    <link href=\"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css\" rel=\"stylesheet\">\n+    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js\"></script>\n+    <script src=\"https://www.gstatic.com/firebasejs/live/3.0/firebase.js\"></script>\n+  </head>\n+  <body>\n+    <div class=\"container\">\n+      <div class=\"col-sm-8 col-sm-offset-2\">\n+        <div class=\"clearfix top-bar\">\n+          <div id=\"email\" class=\"pull-left\"></div>\n+          <div class=\"pull-right\">\n+            <a onclick=\"logout()\" class=\"btn btn-danger\" id=\"logout-btn\">Logout</a>\n+          </div>\n+        </div>\n+      </div>\n+\n+      <div class=\"col-sm-10 col-sm-offset-1\">\n+        <h2 class=\"text-center\">Once Upon a Time...</h2>\n+\n+        <div class=\"jumbotron\">\n+          <div id=\"story\"></div>\n+        </div>\n+      </div>\n+\n+      <div class=\"col-sm-8 col-sm-offset-2\">\n+        <div id=\"signin-btn\" class=\"btn btn-success btn-block\" onclick=\"login()\">Sign Up To Contribute</div>\n+        <div id=\"contrinbute\">\n+          <p><strong>Contribute <small>(Select an emoji to add it to the story)</small> <span class=\"pull-right\" onclick=\"getRandomEmoji()\">Refresh</span></strong></p>\n+          <div id=\"options\"></div>\n+        </div>\n+      </div>\n+\n+      <div class=\"col-sm-8 col-sm-offset-2\">\n+        <h2 class=\"text-center\">Stories</h2>\n+        <div id=\"stories\"></div>\n+      </div>\n+    </div>\n+  </body>\n+</html>\n+```\n+\n+Next, create an `app.js` file that will handle our app logic. For now, we'll just initialize our Firebase app. The values for the config can be found in your [Firebase console on](https://console.firebase.google.com) the homepage of your app.\n+\n+```js\n+var config = {\n+  apiKey: \"YOUR-API-KEY\",\n+  authDomain: \"YOUR-AUTH-DOMAIN.firebaseapp.com\",\n+  databaseURL: \"https://YOUR-AUTH-DOMAIN.firebaseio.com\",\n+};\n+firebase.initializeApp(config);\n+```\n+\n+Finally, we'll create an `emoji.js` file that will contain an array of all the possible emojis. We'll also add a variable that will give us the total count of emojis which we'll use later in the app. *Note: As this is a demo app, we are declaring some global variables, this should be avoided in real applications.*\n+\n+This file will look like:\n+\n+```\n+var emoji = [...]; // Array of all possible emojis\n+var emoji_count = emoji.length;\n+```\n+\n+Be sure to include both the `app.js` and the `emoji.js` files in your `index.html` page.\n+\n+### Setting Up Our Data Model\n+\n+Our data model will consist of the current story being written and an array of all existing stories. Let's update our `app.js` file to retrieve our current story and existing stories.\n+\n+```js\n+// Anytime the stories endpoint changes data, we'll call this function\n+// which empties the current list of stories and generates a new list\n+// The generateStory(story) function is described below\n+firebase.database().ref('stories').on('value', function(data){","path":"_posts/2016-06-06-firebase-3.0-with-auth0-integration.markdown","position":181,"original_position":181,"commit_id":"47f960fec7c80de365a72f138ab31f7c1279bee3","original_commit_id":"47f960fec7c80de365a72f138ab31f7c1279bee3","user":{"login":"chenkie","id":1847678,"avatar_url":"https://avatars.githubusercontent.com/u/1847678?v=3","gravatar_id":"","url":"https://api.github.com/users/chenkie","html_url":"https://github.com/chenkie","followers_url":"https://api.github.com/users/chenkie/followers","following_url":"https://api.github.com/users/chenkie/following{/other_user}","gists_url":"https://api.github.com/users/chenkie/gists{/gist_id}","starred_url":"https://api.github.com/users/chenkie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chenkie/subscriptions","organizations_url":"https://api.github.com/users/chenkie/orgs","repos_url":"https://api.github.com/users/chenkie/repos","events_url":"https://api.github.com/users/chenkie/events{/privacy}","received_events_url":"https://api.github.com/users/chenkie/received_events","type":"User","site_admin":false},"body":"Can we put spaces between parens and open brackets? there are a few semicolons missing :)","created_at":"2016-06-06T21:01:25Z","updated_at":"2016-06-06T21:01:25Z","html_url":"https://github.com/auth0/blog/pull/319#discussion_r65968219","pull_request_url":"https://api.github.com/repos/auth0/blog/pulls/319","_links":{"self":{"href":"https://api.github.com/repos/auth0/blog/pulls/comments/65968219"},"html":{"href":"https://github.com/auth0/blog/pull/319#discussion_r65968219"},"pull_request":{"href":"https://api.github.com/repos/auth0/blog/pulls/319"}}},"pull_request":{"url":"https://api.github.com/repos/auth0/blog/pulls/319","id":72582377,"html_url":"https://github.com/auth0/blog/pull/319","diff_url":"https://github.com/auth0/blog/pull/319.diff","patch_url":"https://github.com/auth0/blog/pull/319.patch","issue_url":"https://api.github.com/repos/auth0/blog/issues/319","number":319,"state":"open","locked":false,"title":"Firebase and Auth0 Blog Post","user":{"login":"kukicadnan","id":1770570,"avatar_url":"https://avatars.githubusercontent.com/u/1770570?v=3","gravatar_id":"","url":"https://api.github.com/users/kukicadnan","html_url":"https://github.com/kukicadnan","followers_url":"https://api.github.com/users/kukicadnan/followers","following_url":"https://api.github.com/users/kukicadnan/following{/other_user}","gists_url":"https://api.github.com/users/kukicadnan/gists{/gist_id}","starred_url":"https://api.github.com/users/kukicadnan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kukicadnan/subscriptions","organizations_url":"https://api.github.com/users/kukicadnan/orgs","repos_url":"https://api.github.com/users/kukicadnan/repos","events_url":"https://api.github.com/users/kukicadnan/events{/privacy}","received_events_url":"https://api.github.com/users/kukicadnan/received_events","type":"User","site_admin":false},"body":"Ready for review.","created_at":"2016-06-03T23:14:40Z","updated_at":"2016-06-06T21:01:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a90e52544d47234a3c5e5dfb4447d0e07b1dc7cd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/auth0/blog/pulls/319/commits","review_comments_url":"https://api.github.com/repos/auth0/blog/pulls/319/comments","review_comment_url":"https://api.github.com/repos/auth0/blog/pulls/comments{/number}","comments_url":"https://api.github.com/repos/auth0/blog/issues/319/comments","statuses_url":"https://api.github.com/repos/auth0/blog/statuses/47f960fec7c80de365a72f138ab31f7c1279bee3","head":{"label":"auth0:firebase-3.0-blog-post","ref":"firebase-3.0-blog-post","sha":"47f960fec7c80de365a72f138ab31f7c1279bee3","user":{"login":"auth0","id":2824157,"avatar_url":"https://avatars.githubusercontent.com/u/2824157?v=3","gravatar_id":"","url":"https://api.github.com/users/auth0","html_url":"https://github.com/auth0","followers_url":"https://api.github.com/users/auth0/followers","following_url":"https://api.github.com/users/auth0/following{/other_user}","gists_url":"https://api.github.com/users/auth0/gists{/gist_id}","starred_url":"https://api.github.com/users/auth0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/auth0/subscriptions","organizations_url":"https://api.github.com/users/auth0/orgs","repos_url":"https://api.github.com/users/auth0/repos","events_url":"https://api.github.com/users/auth0/events{/privacy}","received_events_url":"https://api.github.com/users/auth0/received_events","type":"Organization","site_admin":false},"repo":{"id":7830124,"name":"blog","full_name":"auth0/blog","owner":{"login":"auth0","id":2824157,"avatar_url":"https://avatars.githubusercontent.com/u/2824157?v=3","gravatar_id":"","url":"https://api.github.com/users/auth0","html_url":"https://github.com/auth0","followers_url":"https://api.github.com/users/auth0/followers","following_url":"https://api.github.com/users/auth0/following{/other_user}","gists_url":"https://api.github.com/users/auth0/gists{/gist_id}","starred_url":"https://api.github.com/users/auth0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/auth0/subscriptions","organizations_url":"https://api.github.com/users/auth0/orgs","repos_url":"https://api.github.com/users/auth0/repos","events_url":"https://api.github.com/users/auth0/events{/privacy}","received_events_url":"https://api.github.com/users/auth0/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/auth0/blog","description":"auth0 blog","fork":false,"url":"https://api.github.com/repos/auth0/blog","forks_url":"https://api.github.com/repos/auth0/blog/forks","keys_url":"https://api.github.com/repos/auth0/blog/keys{/key_id}","collaborators_url":"https://api.github.com/repos/auth0/blog/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/auth0/blog/teams","hooks_url":"https://api.github.com/repos/auth0/blog/hooks","issue_events_url":"https://api.github.com/repos/auth0/blog/issues/events{/number}","events_url":"https://api.github.com/repos/auth0/blog/events","assignees_url":"https://api.github.com/repos/auth0/blog/assignees{/user}","branches_url":"https://api.github.com/repos/auth0/blog/branches{/branch}","tags_url":"https://api.github.com/repos/auth0/blog/tags","blobs_url":"https://api.github.com/repos/auth0/blog/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/auth0/blog/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/auth0/blog/git/refs{/sha}","trees_url":"https://api.github.com/repos/auth0/blog/git/trees{/sha}","statuses_url":"https://api.github.com/repos/auth0/blog/statuses/{sha}","languages_url":"https://api.github.com/repos/auth0/blog/languages","stargazers_url":"https://api.github.com/repos/auth0/blog/stargazers","contributors_url":"https://api.github.com/repos/auth0/blog/contributors","subscribers_url":"https://api.github.com/repos/auth0/blog/subscribers","subscription_url":"https://api.github.com/repos/auth0/blog/subscription","commits_url":"https://api.github.com/repos/auth0/blog/commits{/sha}","git_commits_url":"https://api.github.com/repos/auth0/blog/git/commits{/sha}","comments_url":"https://api.github.com/repos/auth0/blog/comments{/number}","issue_comment_url":"https://api.github.com/repos/auth0/blog/issues/comments{/number}","contents_url":"https://api.github.com/repos/auth0/blog/contents/{+path}","compare_url":"https://api.github.com/repos/auth0/blog/compare/{base}...{head}","merges_url":"https://api.github.com/repos/auth0/blog/merges","archive_url":"https://api.github.com/repos/auth0/blog/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/auth0/blog/downloads","issues_url":"https://api.github.com/repos/auth0/blog/issues{/number}","pulls_url":"https://api.github.com/repos/auth0/blog/pulls{/number}","milestones_url":"https://api.github.com/repos/auth0/blog/milestones{/number}","notifications_url":"https://api.github.com/repos/auth0/blog/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/auth0/blog/labels{/name}","releases_url":"https://api.github.com/repos/auth0/blog/releases{/id}","deployments_url":"https://api.github.com/repos/auth0/blog/deployments","created_at":"2013-01-25T22:57:37Z","updated_at":"2016-06-01T23:29:23Z","pushed_at":"2016-06-06T19:36:13Z","git_url":"git://github.com/auth0/blog.git","ssh_url":"git@github.com:auth0/blog.git","clone_url":"https://github.com/auth0/blog.git","svn_url":"https://github.com/auth0/blog","homepage":"https://auth0.com/blog","size":17184,"stargazers_count":17,"watchers_count":17,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":9,"forks":32,"open_issues":9,"watchers":17,"default_branch":"master"}},"base":{"label":"auth0:master","ref":"master","sha":"7be9529abd6bb9352dc0229ba3644bc89ec6975b","user":{"login":"auth0","id":2824157,"avatar_url":"https://avatars.githubusercontent.com/u/2824157?v=3","gravatar_id":"","url":"https://api.github.com/users/auth0","html_url":"https://github.com/auth0","followers_url":"https://api.github.com/users/auth0/followers","following_url":"https://api.github.com/users/auth0/following{/other_user}","gists_url":"https://api.github.com/users/auth0/gists{/gist_id}","starred_url":"https://api.github.com/users/auth0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/auth0/subscriptions","organizations_url":"https://api.github.com/users/auth0/orgs","repos_url":"https://api.github.com/users/auth0/repos","events_url":"https://api.github.com/users/auth0/events{/privacy}","received_events_url":"https://api.github.com/users/auth0/received_events","type":"Organization","site_admin":false},"repo":{"id":7830124,"name":"blog","full_name":"auth0/blog","owner":{"login":"auth0","id":2824157,"avatar_url":"https://avatars.githubusercontent.com/u/2824157?v=3","gravatar_id":"","url":"https://api.github.com/users/auth0","html_url":"https://github.com/auth0","followers_url":"https://api.github.com/users/auth0/followers","following_url":"https://api.github.com/users/auth0/following{/other_user}","gists_url":"https://api.github.com/users/auth0/gists{/gist_id}","starred_url":"https://api.github.com/users/auth0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/auth0/subscriptions","organizations_url":"https://api.github.com/users/auth0/orgs","repos_url":"https://api.github.com/users/auth0/repos","events_url":"https://api.github.com/users/auth0/events{/privacy}","received_events_url":"https://api.github.com/users/auth0/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/auth0/blog","description":"auth0 blog","fork":false,"url":"https://api.github.com/repos/auth0/blog","forks_url":"https://api.github.com/repos/auth0/blog/forks","keys_url":"https://api.github.com/repos/auth0/blog/keys{/key_id}","collaborators_url":"https://api.github.com/repos/auth0/blog/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/auth0/blog/teams","hooks_url":"https://api.github.com/repos/auth0/blog/hooks","issue_events_url":"https://api.github.com/repos/auth0/blog/issues/events{/number}","events_url":"https://api.github.com/repos/auth0/blog/events","assignees_url":"https://api.github.com/repos/auth0/blog/assignees{/user}","branches_url":"https://api.github.com/repos/auth0/blog/branches{/branch}","tags_url":"https://api.github.com/repos/auth0/blog/tags","blobs_url":"https://api.github.com/repos/auth0/blog/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/auth0/blog/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/auth0/blog/git/refs{/sha}","trees_url":"https://api.github.com/repos/auth0/blog/git/trees{/sha}","statuses_url":"https://api.github.com/repos/auth0/blog/statuses/{sha}","languages_url":"https://api.github.com/repos/auth0/blog/languages","stargazers_url":"https://api.github.com/repos/auth0/blog/stargazers","contributors_url":"https://api.github.com/repos/auth0/blog/contributors","subscribers_url":"https://api.github.com/repos/auth0/blog/subscribers","subscription_url":"https://api.github.com/repos/auth0/blog/subscription","commits_url":"https://api.github.com/repos/auth0/blog/commits{/sha}","git_commits_url":"https://api.github.com/repos/auth0/blog/git/commits{/sha}","comments_url":"https://api.github.com/repos/auth0/blog/comments{/number}","issue_comment_url":"https://api.github.com/repos/auth0/blog/issues/comments{/number}","contents_url":"https://api.github.com/repos/auth0/blog/contents/{+path}","compare_url":"https://api.github.com/repos/auth0/blog/compare/{base}...{head}","merges_url":"https://api.github.com/repos/auth0/blog/merges","archive_url":"https://api.github.com/repos/auth0/blog/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/auth0/blog/downloads","issues_url":"https://api.github.com/repos/auth0/blog/issues{/number}","pulls_url":"https://api.github.com/repos/auth0/blog/pulls{/number}","milestones_url":"https://api.github.com/repos/auth0/blog/milestones{/number}","notifications_url":"https://api.github.com/repos/auth0/blog/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/auth0/blog/labels{/name}","releases_url":"https://api.github.com/repos/auth0/blog/releases{/id}","deployments_url":"https://api.github.com/repos/auth0/blog/deployments","created_at":"2013-01-25T22:57:37Z","updated_at":"2016-06-01T23:29:23Z","pushed_at":"2016-06-06T19:36:13Z","git_url":"git://github.com/auth0/blog.git","ssh_url":"git@github.com:auth0/blog.git","clone_url":"https://github.com/auth0/blog.git","svn_url":"https://github.com/auth0/blog","homepage":"https://auth0.com/blog","size":17184,"stargazers_count":17,"watchers_count":17,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":9,"forks":32,"open_issues":9,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/auth0/blog/pulls/319"},"html":{"href":"https://github.com/auth0/blog/pull/319"},"issue":{"href":"https://api.github.com/repos/auth0/blog/issues/319"},"comments":{"href":"https://api.github.com/repos/auth0/blog/issues/319/comments"},"review_comments":{"href":"https://api.github.com/repos/auth0/blog/pulls/319/comments"},"review_comment":{"href":"https://api.github.com/repos/auth0/blog/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/auth0/blog/pulls/319/commits"},"statuses":{"href":"https://api.github.com/repos/auth0/blog/statuses/47f960fec7c80de365a72f138ab31f7c1279bee3"}}}}
{"actor":{"display_login":"chenkie"}}