{"action":"created","comment":{"url":"https://api.github.com/repos/kabisa/theguild.nl/pulls/comments/54060628","id":54060628,"diff_hunk":"@@ -0,0 +1,199 @@\n+# Deploy a Spring Boot app on your own server in less than 15 minutes\n+\n+PaaS offerings like [Heroku](https://heroku.com) are great but not always suitable or even possible. If you need or want full control over your data and servers, or you just want to host your latest side project but don’t want [Heroku dyno sleeping](https://devcenter.heroku.com/articles/dyno-sleeping) you might just want to self host.\n+\n+Traditionally self-hosting was painful and cumbersome but today there are plenty options to self-host your apps that are nearly as painless as a PaaS solution. In this tutorial I will show you how to deploy an app on [Dokku](https://github.com/dokku/dokku):\n+\n+> Dokku is an extensible, open source Platform as a Service that runs on a single server of your choice.\n+\n+Dokku provides an environment very similar to Heroku technically, allowing Dokku to take advantage of [Heroku buildpacks](https://devcenter.heroku.com/articles/buildpacks) to deploy your apps. Dokku uses these buildpacks to automatically build [Docker](https://www.docker.com/) containers that can run your apps and services. Refer to the [Dokku documentation](http://dokku.viewdocs.io/dokku/installation/) for more information on Dokku.\n+\n+For this tutorial we’ll be using [this](https://github.com/kabisa/dokku-boot-demo) Spring Boot example app I’ve set up. It's a very basic app with a single HTTP endpoint that serves up a semi-random quote retrieved from a Postgres database. It’s a completely vanilla Spring Boot app, except for a single file to instruct Dokku how to start the app but more on that later. Let’s get started!\n+\n+## 1. Get a (virtual) server\n+\n+Get a server with root access. Dokku requires at least 1GB of RAM and officially only supports Ubuntu 14.04 x64.\n+\n+For convenience you'll want to assign a DNS hostname (`dokku.example.org`) to your servers IP and preferably even assign a wildcard record so you can deploy apps on `<app name>.dokku.example.org`.\n+\n+## 2. Install Dokku\n+\n+SSH into your server and execute the following command to kick off the Dokku installation. Run this either as root or make sure your user account has sudo permissions.\n+\n+```\n+wget -qO- https://raw.githubusercontent.com/dokku/dokku/v0.4.14/bootstrap.sh | bash\n+```\n+\n+Sit back, get some coffee, this will take a couple of minutes. When the command completes open your browser and navigate to the ip address or hostname assigned to your server to complete the Dokku setup.\n+\n+![Dokku setup](./dokku-setup.png)\n+\n+Provide your SSH public key here so you’ll be able to push your app to Dokku later via Git.\n+Enable `use virtualhost naming for apps` and enter the hostname you assigned to your server in step 1.\n+\n+That's it, you now have a fully functional Dokku instance up and running! Let’s see what it takes to actually deploy an app.\n+\n+## 3. Prepare your app for deployment on Dokku\n+\n+We're about ready to deploy our first app. In general if you want to deploy an app on Dokku you don't need to make a lot of modifications to your app. Especially if your app adheres to the [Twelve Factor](http://12factor.net/) guidelines you should be fine. Most importantly your app should allow configuration via environment variables or command line parameters.\n+\n+Fortunately Spring Boot embraces the Twelve Factor guidelines. Spring Boot supports configuration via environment variables out of the box and it's trivial to implement your own.\n+\n+Looking at the [example app](https://github.com/kabisa/dokku-boot-demo) I prepared there are two important things to notice:\n+\n+&nbsp;1. I've created two property aliases to allow configuration via `$PORT` and `$DATABASE_URL`. This is not strictly necessary but I prefer the more generic environment variables over the Spring specific ones.\n+\n+```java\n+// application.properties\n+spring.datasource.url=${database.url:jdbc:postgresql://localhost:5432/dokku-demo}\n+server.port=${port:8080}\n+```\n+\n+&nbsp;2. I've added a Procfile to instruct Dokku how to start our app. Just like Heroku, you need to instruct Dokku how to start your application using a Procfile.\n+\n+```sh\n+# Procfile\n+web: env DATABASE_URL=$JDBC_DATABASE_URL target/dokku-boot-demo-0.0.1-SNAPSHOT.jar\n+```\n+\n+During deployment Dokku invokes `mvn install` on our app so it will build a jar. Here we instruct Dokku that to launch our app it needs to execute the jar. We set the `$DATABASE_URL` to `$JDBC_DATABASE_URL` which is an environment variable provided by the Java buildpack that formats the database connection string for JDBC compatibility.\n+\n+## 4. Deploy your app\n+\n+Alright so now our app is Dokku compatible. Before we can push our app to Dokku we need to configure our application in Dokku. For simplicity enter the following `dokku` commands in an SSH session on your server. Later you can setup the [Dokku CLI client](http://dokku.viewdocs.io/dokku/community/clients/) to run these commands directly from your local machine.\n+\n+First we'll create our app in Dokku:\n+\n+```sh\n+$ dokku apps:create my-app\n+```\n+\n+Next we'll install the Dokku Postgres plugin:\n+\n+```sh\n+$ dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres\n+```\n+\n+This will pull in a Postgres Docker image so give it some time to complete.\n+\n+Next create a Postgres instance for our app:\n+\n+```sh\n+$ dokku postgres:create my-app-postgres\n+```\n+\n+Link it to our app:\n+\n+```sh\n+$ dokku postgres:link my-app-postgres my-app\n+```\n+\n+That's all the configuration we need, let's actually deploy our app now!\n+\n+First clone the example app to your local machine:\n+\n+```sh\n+$ git clone https://github.com/kabisa/dokku-boot-demo.git\n+$ cd dokku-boot-demo\n+```\n+\n+Dokku uses a Heroku-style `git push to deploy` model, so we'll need to add a Git remote to our repo to point to Dokku's Git repo. Replace `dokku.example.org` with your actual Dokku hostname.\n+\n+```sh\n+$ git remote add dokku dokku@dokku.example.org:my-app\n+```\n+\n+And finally push our app to Dokku:\n+\n+```sh\n+$ git push dokku\n+```\n+\n+Dokku will now detect our app is a Java app, download the Heroku Java buildpack, compile the app and run it.\n+\n+You should see similar output as below (truncated for brevity):\n+\n+```\n+Counting objects: 20, done.\n+Delta compression using up to 8 threads.\n+Compressing objects: 100% (15/15), done.\n+Writing objects: 100% (20/20), 3.05 KiB | 0 bytes/s, done.\n+Total 20 (delta 1), reused 0 (delta 0)\n+-----> Cleaning up...\n+-----> Building my-app from herokuish...\n+-----> Adding BUILD_ENV to build environment...\n+-----> Java app detected\n+-----> Installing OpenJDK 1.8... done\n+-----> Installing Maven 3.3.9... done\n+-----> Executing: mvn -B -DskipTests clean dependency:list install\n+\n+..... mvn install output truncated for brevity .....\n+\n+       [INFO] Installing /tmp/build/target/dokku-boot-demo-0.0.1-SNAPSHOT.jar to /cache/.m2/repository/nl/kabisa/dokku-boot-demo/0.0.1-SNAPSHOT/dokku-boot-demo-0.0.1-SNAPSHOT.jar\n+       [INFO] Installing /tmp/build/pom.xml to /cache/.m2/repository/nl/kabisa/dokku-boot-demo/0.0.1-SNAPSHOT/dokku-boot-demo-0.0.1-SNAPSHOT.pom\n+       [INFO] ------------------------------------------------------------------------\n+       [INFO] BUILD SUCCESS\n+       [INFO] ------------------------------------------------------------------------\n+       [INFO] Total time: 25.310 s\n+       [INFO] Finished at: 2016-02-24T19:27:02+00:00\n+       [INFO] Final Memory: 30M/72M\n+       [INFO] ------------------------------------------------------------------------\n+-----> Discovering process types\n+       Procfile declares types -> web\n+-----> Releasing my-app (dokku/my-app:latest)...\n+-----> Deploying my-app (dokku/my-app:latest)...\n+-----> DOKKU_SCALE file not found in app image. Generating one based on Procfile...\n+-----> New DOKKU_SCALE file generated\n+=====> web=1\n+-----> Running pre-flight checks\n+       For more efficient zero downtime deployments, create a file CHECKS.\n+       See http://dokku.viewdocs.io/dokku/checks-examples.md for examples\n+       CHECKS file not found in container: Running simple container check...\n+-----> Waiting for 10 seconds ...\n+-----> Default container check successful!\n+=====> my-app container output:\n+       Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.\n+       Picked up JAVA_TOOL_OPTIONS: -Xmx350m -Xss512k -Dfile.encoding=UTF-8\n+         .   ____          _            __ _ _\n+        /\\\\ / ___'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\\n+       ( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\\n+        \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )\n+         '  |____| .__|_| |_|_| |_\\__, | / / / /\n+        =========|_|==============|___/=/_/_/_/\n+        :: Spring Boot ::        (v1.3.2.RELEASE)\n+       2016-02-24 19:27:38.191  INFO 8 --- [           main] nl.kabisa.Application                    : Starting Application v0.0.1-SNAPSHOT on c0a2fbad83c7 with PID 8 (/app/target/dokku-boot-demo-0.0.1-S\n+NAPSHOT.jar started by u9623 in /app)\n+\n+..... Spring Boot truncated for brevity .....\n+\n+=====> end my-app container output\n+-----> Running post-deploy\n+=====> renaming container (c0a2fbad83c7) romantic_khorana to my-app.web.1\n+-----> Creating new /home/dokku/my-app/VHOST...\n+-----> Setting config vars\n+       DOKKU_NGINX_PORT: 80\n+-----> Configuring my-app.example.org...(using /var/lib/dokku/plugins/available/nginx-vhosts/templates/nginx.conf.template)\n+-----> Creating http nginx.conf\n+-----> Running nginx-pre-reload\n+       Reloading nginx\n+-----> Setting config vars\n+       DOKKU_APP_RESTORE: 1\n+=====> Application deployed:\n+       http://my-app.example.org\n+```\n+\n+Open your browser at `http://my-app.dokku.example.org/` and see a nice random quote!\n+\n+## Closing thoughts\n+\n+Dokku takes a bit of one time setup but once you have your Dokku instance ready deploying new applications will be a breeze. Do note that Dokku was designed for simple single server setups. If you need fancy stuff like clustering, access control etc you might want to look at one of the more comprehensive projects in this space like [Flynn](https://flynn.io) or [Deis](http://deis.io).\n+\n+Even though Dokku is quite simple we've only scratched the surface of what Dokku can do. Now you have a fully functional Dokku instance go ahead and explore the [Dokku docs](http://dokku.viewdocs.io/dokku/installation/) to see what more is possible.","path":"drafts/deploy-spring-boot-app-in-15-minutes/deploy-spring-boot-app-in-15-minutes.md","position":191,"original_position":191,"commit_id":"2290cc5500a5fd03cd25ed7a0919728ad1d81e98","original_commit_id":"2290cc5500a5fd03cd25ed7a0919728ad1d81e98","user":{"login":"matthijsgroen","id":23627,"avatar_url":"https://avatars.githubusercontent.com/u/23627?v=3","gravatar_id":"","url":"https://api.github.com/users/matthijsgroen","html_url":"https://github.com/matthijsgroen","followers_url":"https://api.github.com/users/matthijsgroen/followers","following_url":"https://api.github.com/users/matthijsgroen/following{/other_user}","gists_url":"https://api.github.com/users/matthijsgroen/gists{/gist_id}","starred_url":"https://api.github.com/users/matthijsgroen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthijsgroen/subscriptions","organizations_url":"https://api.github.com/users/matthijsgroen/orgs","repos_url":"https://api.github.com/users/matthijsgroen/repos","events_url":"https://api.github.com/users/matthijsgroen/events{/privacy}","received_events_url":"https://api.github.com/users/matthijsgroen/received_events","type":"User","site_admin":false},"body":"simple, we've","created_at":"2016-02-25T08:12:50Z","updated_at":"2016-02-25T08:12:50Z","html_url":"https://github.com/kabisa/theguild.nl/pull/72#discussion_r54060628","pull_request_url":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72","_links":{"self":{"href":"https://api.github.com/repos/kabisa/theguild.nl/pulls/comments/54060628"},"html":{"href":"https://github.com/kabisa/theguild.nl/pull/72#discussion_r54060628"},"pull_request":{"href":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72"}}},"pull_request":{"url":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72","id":60634478,"html_url":"https://github.com/kabisa/theguild.nl/pull/72","diff_url":"https://github.com/kabisa/theguild.nl/pull/72.diff","patch_url":"https://github.com/kabisa/theguild.nl/pull/72.patch","issue_url":"https://api.github.com/repos/kabisa/theguild.nl/issues/72","number":72,"state":"open","locked":false,"title":"Draft: Deploy a Spring Boot app on your own server in less than 15 minutes","user":{"login":"pascalw","id":304603,"avatar_url":"https://avatars.githubusercontent.com/u/304603?v=3","gravatar_id":"","url":"https://api.github.com/users/pascalw","html_url":"https://github.com/pascalw","followers_url":"https://api.github.com/users/pascalw/followers","following_url":"https://api.github.com/users/pascalw/following{/other_user}","gists_url":"https://api.github.com/users/pascalw/gists{/gist_id}","starred_url":"https://api.github.com/users/pascalw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascalw/subscriptions","organizations_url":"https://api.github.com/users/pascalw/orgs","repos_url":"https://api.github.com/users/pascalw/repos","events_url":"https://api.github.com/users/pascalw/events{/privacy}","received_events_url":"https://api.github.com/users/pascalw/received_events","type":"User","site_admin":false},"body":"This is an experiment to find a nice workflow for collaborative Markdown editing. Using Google Drive to get feedback on writing is nice, but Google Drive sucks at Markdown. This specific post has quite a bit of Markdown formatting making it very hard to read in Drive.\r\n\r\nAdvantages of using Github for draft reviews are:\r\n\r\n* You can conveniently have Github interpret the Markdown, effectively providing you with a real view of how the post will look on the website\r\n* Even the diff view is much more readable in Github because provide some Markdown syntax highlighting\r\n* We can store drafts in the repo, which might be a good idea in general\r\n* Can use embedded images in draft\r\n\r\nPlease use the regular Pull Request comments workflow to provide feedback on the post and also let me know what you think about using Github for draft reviews.","created_at":"2016-02-25T07:02:29Z","updated_at":"2016-02-25T08:12:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"102fcd8fa28a28d362d5e276ca1abbd7d6a65ecf","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72/commits","review_comments_url":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72/comments","review_comment_url":"https://api.github.com/repos/kabisa/theguild.nl/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kabisa/theguild.nl/issues/72/comments","statuses_url":"https://api.github.com/repos/kabisa/theguild.nl/statuses/2290cc5500a5fd03cd25ed7a0919728ad1d81e98","head":{"label":"kabisa:post/deploy-spring-boot-app-in-15-minutes","ref":"post/deploy-spring-boot-app-in-15-minutes","sha":"2290cc5500a5fd03cd25ed7a0919728ad1d81e98","user":{"login":"kabisa","id":1531725,"avatar_url":"https://avatars.githubusercontent.com/u/1531725?v=3","gravatar_id":"","url":"https://api.github.com/users/kabisa","html_url":"https://github.com/kabisa","followers_url":"https://api.github.com/users/kabisa/followers","following_url":"https://api.github.com/users/kabisa/following{/other_user}","gists_url":"https://api.github.com/users/kabisa/gists{/gist_id}","starred_url":"https://api.github.com/users/kabisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kabisa/subscriptions","organizations_url":"https://api.github.com/users/kabisa/orgs","repos_url":"https://api.github.com/users/kabisa/repos","events_url":"https://api.github.com/users/kabisa/events{/privacy}","received_events_url":"https://api.github.com/users/kabisa/received_events","type":"Organization","site_admin":false},"repo":{"id":41295016,"name":"theguild.nl","full_name":"kabisa/theguild.nl","owner":{"login":"kabisa","id":1531725,"avatar_url":"https://avatars.githubusercontent.com/u/1531725?v=3","gravatar_id":"","url":"https://api.github.com/users/kabisa","html_url":"https://github.com/kabisa","followers_url":"https://api.github.com/users/kabisa/followers","following_url":"https://api.github.com/users/kabisa/following{/other_user}","gists_url":"https://api.github.com/users/kabisa/gists{/gist_id}","starred_url":"https://api.github.com/users/kabisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kabisa/subscriptions","organizations_url":"https://api.github.com/users/kabisa/orgs","repos_url":"https://api.github.com/users/kabisa/repos","events_url":"https://api.github.com/users/kabisa/events{/privacy}","received_events_url":"https://api.github.com/users/kabisa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kabisa/theguild.nl","description":"","fork":false,"url":"https://api.github.com/repos/kabisa/theguild.nl","forks_url":"https://api.github.com/repos/kabisa/theguild.nl/forks","keys_url":"https://api.github.com/repos/kabisa/theguild.nl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kabisa/theguild.nl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kabisa/theguild.nl/teams","hooks_url":"https://api.github.com/repos/kabisa/theguild.nl/hooks","issue_events_url":"https://api.github.com/repos/kabisa/theguild.nl/issues/events{/number}","events_url":"https://api.github.com/repos/kabisa/theguild.nl/events","assignees_url":"https://api.github.com/repos/kabisa/theguild.nl/assignees{/user}","branches_url":"https://api.github.com/repos/kabisa/theguild.nl/branches{/branch}","tags_url":"https://api.github.com/repos/kabisa/theguild.nl/tags","blobs_url":"https://api.github.com/repos/kabisa/theguild.nl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kabisa/theguild.nl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kabisa/theguild.nl/git/refs{/sha}","trees_url":"https://api.github.com/repos/kabisa/theguild.nl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kabisa/theguild.nl/statuses/{sha}","languages_url":"https://api.github.com/repos/kabisa/theguild.nl/languages","stargazers_url":"https://api.github.com/repos/kabisa/theguild.nl/stargazers","contributors_url":"https://api.github.com/repos/kabisa/theguild.nl/contributors","subscribers_url":"https://api.github.com/repos/kabisa/theguild.nl/subscribers","subscription_url":"https://api.github.com/repos/kabisa/theguild.nl/subscription","commits_url":"https://api.github.com/repos/kabisa/theguild.nl/commits{/sha}","git_commits_url":"https://api.github.com/repos/kabisa/theguild.nl/git/commits{/sha}","comments_url":"https://api.github.com/repos/kabisa/theguild.nl/comments{/number}","issue_comment_url":"https://api.github.com/repos/kabisa/theguild.nl/issues/comments{/number}","contents_url":"https://api.github.com/repos/kabisa/theguild.nl/contents/{+path}","compare_url":"https://api.github.com/repos/kabisa/theguild.nl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kabisa/theguild.nl/merges","archive_url":"https://api.github.com/repos/kabisa/theguild.nl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kabisa/theguild.nl/downloads","issues_url":"https://api.github.com/repos/kabisa/theguild.nl/issues{/number}","pulls_url":"https://api.github.com/repos/kabisa/theguild.nl/pulls{/number}","milestones_url":"https://api.github.com/repos/kabisa/theguild.nl/milestones{/number}","notifications_url":"https://api.github.com/repos/kabisa/theguild.nl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kabisa/theguild.nl/labels{/name}","releases_url":"https://api.github.com/repos/kabisa/theguild.nl/releases{/id}","deployments_url":"https://api.github.com/repos/kabisa/theguild.nl/deployments","created_at":"2015-08-24T09:40:05Z","updated_at":"2016-01-18T13:09:12Z","pushed_at":"2016-02-25T07:19:21Z","git_url":"git://github.com/kabisa/theguild.nl.git","ssh_url":"git@github.com:kabisa/theguild.nl.git","clone_url":"https://github.com/kabisa/theguild.nl.git","svn_url":"https://github.com/kabisa/theguild.nl","homepage":"http://theguild.nl","size":1837,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":21,"forks":0,"open_issues":21,"watchers":0,"default_branch":"master"}},"base":{"label":"kabisa:master","ref":"master","sha":"5872637a54014006f148fc0123873ca2623d216e","user":{"login":"kabisa","id":1531725,"avatar_url":"https://avatars.githubusercontent.com/u/1531725?v=3","gravatar_id":"","url":"https://api.github.com/users/kabisa","html_url":"https://github.com/kabisa","followers_url":"https://api.github.com/users/kabisa/followers","following_url":"https://api.github.com/users/kabisa/following{/other_user}","gists_url":"https://api.github.com/users/kabisa/gists{/gist_id}","starred_url":"https://api.github.com/users/kabisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kabisa/subscriptions","organizations_url":"https://api.github.com/users/kabisa/orgs","repos_url":"https://api.github.com/users/kabisa/repos","events_url":"https://api.github.com/users/kabisa/events{/privacy}","received_events_url":"https://api.github.com/users/kabisa/received_events","type":"Organization","site_admin":false},"repo":{"id":41295016,"name":"theguild.nl","full_name":"kabisa/theguild.nl","owner":{"login":"kabisa","id":1531725,"avatar_url":"https://avatars.githubusercontent.com/u/1531725?v=3","gravatar_id":"","url":"https://api.github.com/users/kabisa","html_url":"https://github.com/kabisa","followers_url":"https://api.github.com/users/kabisa/followers","following_url":"https://api.github.com/users/kabisa/following{/other_user}","gists_url":"https://api.github.com/users/kabisa/gists{/gist_id}","starred_url":"https://api.github.com/users/kabisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kabisa/subscriptions","organizations_url":"https://api.github.com/users/kabisa/orgs","repos_url":"https://api.github.com/users/kabisa/repos","events_url":"https://api.github.com/users/kabisa/events{/privacy}","received_events_url":"https://api.github.com/users/kabisa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kabisa/theguild.nl","description":"","fork":false,"url":"https://api.github.com/repos/kabisa/theguild.nl","forks_url":"https://api.github.com/repos/kabisa/theguild.nl/forks","keys_url":"https://api.github.com/repos/kabisa/theguild.nl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kabisa/theguild.nl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kabisa/theguild.nl/teams","hooks_url":"https://api.github.com/repos/kabisa/theguild.nl/hooks","issue_events_url":"https://api.github.com/repos/kabisa/theguild.nl/issues/events{/number}","events_url":"https://api.github.com/repos/kabisa/theguild.nl/events","assignees_url":"https://api.github.com/repos/kabisa/theguild.nl/assignees{/user}","branches_url":"https://api.github.com/repos/kabisa/theguild.nl/branches{/branch}","tags_url":"https://api.github.com/repos/kabisa/theguild.nl/tags","blobs_url":"https://api.github.com/repos/kabisa/theguild.nl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kabisa/theguild.nl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kabisa/theguild.nl/git/refs{/sha}","trees_url":"https://api.github.com/repos/kabisa/theguild.nl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kabisa/theguild.nl/statuses/{sha}","languages_url":"https://api.github.com/repos/kabisa/theguild.nl/languages","stargazers_url":"https://api.github.com/repos/kabisa/theguild.nl/stargazers","contributors_url":"https://api.github.com/repos/kabisa/theguild.nl/contributors","subscribers_url":"https://api.github.com/repos/kabisa/theguild.nl/subscribers","subscription_url":"https://api.github.com/repos/kabisa/theguild.nl/subscription","commits_url":"https://api.github.com/repos/kabisa/theguild.nl/commits{/sha}","git_commits_url":"https://api.github.com/repos/kabisa/theguild.nl/git/commits{/sha}","comments_url":"https://api.github.com/repos/kabisa/theguild.nl/comments{/number}","issue_comment_url":"https://api.github.com/repos/kabisa/theguild.nl/issues/comments{/number}","contents_url":"https://api.github.com/repos/kabisa/theguild.nl/contents/{+path}","compare_url":"https://api.github.com/repos/kabisa/theguild.nl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kabisa/theguild.nl/merges","archive_url":"https://api.github.com/repos/kabisa/theguild.nl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kabisa/theguild.nl/downloads","issues_url":"https://api.github.com/repos/kabisa/theguild.nl/issues{/number}","pulls_url":"https://api.github.com/repos/kabisa/theguild.nl/pulls{/number}","milestones_url":"https://api.github.com/repos/kabisa/theguild.nl/milestones{/number}","notifications_url":"https://api.github.com/repos/kabisa/theguild.nl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kabisa/theguild.nl/labels{/name}","releases_url":"https://api.github.com/repos/kabisa/theguild.nl/releases{/id}","deployments_url":"https://api.github.com/repos/kabisa/theguild.nl/deployments","created_at":"2015-08-24T09:40:05Z","updated_at":"2016-01-18T13:09:12Z","pushed_at":"2016-02-25T07:19:21Z","git_url":"git://github.com/kabisa/theguild.nl.git","ssh_url":"git@github.com:kabisa/theguild.nl.git","clone_url":"https://github.com/kabisa/theguild.nl.git","svn_url":"https://github.com/kabisa/theguild.nl","homepage":"http://theguild.nl","size":1837,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":21,"forks":0,"open_issues":21,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72"},"html":{"href":"https://github.com/kabisa/theguild.nl/pull/72"},"issue":{"href":"https://api.github.com/repos/kabisa/theguild.nl/issues/72"},"comments":{"href":"https://api.github.com/repos/kabisa/theguild.nl/issues/72/comments"},"review_comments":{"href":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72/comments"},"review_comment":{"href":"https://api.github.com/repos/kabisa/theguild.nl/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kabisa/theguild.nl/pulls/72/commits"},"statuses":{"href":"https://api.github.com/repos/kabisa/theguild.nl/statuses/2290cc5500a5fd03cd25ed7a0919728ad1d81e98"}}}}