{"action":"created","comment":{"url":"https://api.github.com/repos/testmycode/tmc-server/pulls/comments/24463023","id":24463023,"diff_hunk":"@@ -0,0 +1,267 @@\n+## Setup ##\n+\n+### Notices before installation ###\n+\n+We assume you use [RVM](https://rvm.io/). If you don't, then replace `rvmsudo` with `sudo` during the installation process.\n+\n+:exclamation: RVM 1.17.x may have some [problems with rvmsudo](http://stackoverflow.com/questions/13765520/rvmsudo-command-not-working-properly).\n+\n+An X server is currently needed for browser tests to pass when using Selenium. `Xvfb` will do, but remember to set your `DISPLAY`.\n+\n+:exclamation: For testing environment PhantomJS (at least version 1.8.1) is required by Poltergeist gem to run headless browser tests. See [poltergeist](https://github.com/teampoltergeist/poltergeist) for documentation.\n+\n+Below is rough setup instructions, if you're running Ubuntu you can follow the [Ubuntu specific installation guide](#installation).\n+\n+### System Dependencies ###\n+\n+The following programs should be installed first: `ruby` (and `bundler` gem), `PostgreSQL 9.2+`, `git`, `zip`, `unzip`, `convert` (from ImageMagick), `javac`, `java`, `ant`, `mvn`, `gcc`, `make` and `bc`. As well as tmc-sandbox dependencies: `squashfs-tools`, `multistrap` `e2fsprogs`, `e2tools` and `build-essential`.\n+\n+1. Download submodules with `git submodule update --init --recursive`\n+2. Install dependencies with `bundle install`\n+3. Edit `config/site.yml`, based on `config/site.defaults.yml`.\n+4. Setup PostgreSQL based on `config/database.yml` or configure the file according to your current postgres settings.\n+5. Initialize rails database and precompile assets with `env RAILS_ENV=production rake db:reset` and `env RAILS_ENV=production rake assets:precompile`\n+6. Go to `ext/tmc-sandbox` and compile with `sudo make`. More information from [tmc-sandbox page](https://github.com/testmycode/tmc-sandbox).\n+7. Go to `ext/tmc-sandbox/web` and install dependencies with `bundle install`. Compile extensions with `rake ext` and run tests with `rvmsudo rake test`.\n+8. Compile the other stuff in `ext` by doing `rake compile`\n+9. Install [tmc-check](https://github.com/testmycode/tmc-check) by running `rvmsudo make rubygems install clean` in `ext/tmc-sandbox/uml/output/tmc-check`.\n+10. Run the test suite with `rvmsudo rake spec`.\n+11. Get pghero stats enabled, add to postgresql.conf following lines `shared_preload_libraries = 'pg_stat_statements'` and `pg_stat_statements.track = all`\n+\n+After you get the test suite to pas you can set up [background services](#background-services) and [startup](#startup) the server.\n+\n+#### Installation ####\n+##### Set Java, Ruby and PhantomJS versions to be installed #####\n+\n+```\n+$ JAVA_VERSION=7\n+$ RUBY_VERSION=2.2.0\n+$ PHANTOM_JS=\"phantomjs-1.9.8-linux-x86_64\"\n+```\n+\n+##### Install dependencies #####\n+\n+Update your package list with\n+```\n+$ sudo apt-get update\n+```\n+\n+##### Java installation #####\n+\n+To install OpenJDK 7 run\n+```\n+$ sudo apt-get install openjdk-7-jdk\n+```\n+If you want to install the official Oracle JDK, you need to add an ppa repository. You can install Oracle JDK with the following commands\n+```\n+$ sudo add-apt-repository ppa:webupd8team/java\n+$ sudo apt-get update\n+$ sudo apt-get install oracle-java$JAVA_VERSION-installer\n+```\n+\n+##### Install dependencies #####\n+\n+TMC-server dependencies\n+```\n+$ sudo apt-get install git build-essential zip unzip imagemagick maven make bc xvfb postgresql postgresql-contrib\n+$ sudo apt-get install chrpath libssl-dev libxft-dev \\\n+  libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev\n+```\n+Ruby dependencies\n+```\n+$ sudo apt-get install git-core curl zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties\n+```\n+RVM dependencies\n+```\n+$ sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev\n+```\n+TMC-sandbox dependencies\n+```\n+$ sudo apt-get install squashfs-tools multistrap e2fsprogs e2tools\n+```\n+\n+##### Installing PhantomJS #####\n+\n+Download PhantomJS from their [website](http://phantomjs.org/)\n+```\n+$ wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2\n+```\n+After download finishes extract the files and create symlinks\n+```\n+$ tar -xvjf $PHANTOM_JS.tar.bz2\n+$ sudo mv $PHANTOM_JS /usr/local/share\n+$ sudo ln -s /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin\n+$ rm $PHANTOM_JS.tar.bz2\n+```\n+Check that PhantomJS is installed correctly\n+```\n+$ phantomjs --version\n+```\n+\n+### Install ruby via RVM ###\n+#### Install RVM as multi-user install ####\n+\n+```\n+$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3\n+$ \\curl -L https://get.rvm.io | sudo bash -s stable\n+```\n+\n+After installation finishes add new user and setup groups\n+\n+```\n+$ sudo adduser tmc\n+$ sudo addgroup rvm\n+$ sudo usermod -a -G rvm tmc\n+$ sudo /usr/local/rvm/bin/rvm install $RUBY_VERSION\n+$ sudo /usr/local/rvm/bin/rvm use $RUBY_VERSION --default\n+```\n+\n+Setup ruby path\n+\n+```\n+$ echo 'export PATH=$PATH:/usr/local/rvm/rubies/ruby-$RUBY_VERSION/bin' | sudo tee -a etc/profile.d/ruby.sh\n+```\n+\n+#### Switch to tmc user and login their shell ####\n+\n+```\n+$ sudo su tmc\n+$ bash -l\n+$ cd\n+```\n+\n+#### Import public key for rvm installation ####\n+\n+```\n+$ command curl -sSL https://rvm.io/mpapis.asc | gpg --import -\n+$ rvm get stable\n+```\n+\n+#### Setup user environment variables ####\n+\n+```\n+$ echo \"export GEM_HOME=$(ruby -e 'print Gem.user_dir')\" >> ~/.bashrc\n+$ echo \"export PATH=$(echo $PATH):$GEM_HOME/bin\" >> ~/.bashrc\n+$ export GEM_HOME=$(ruby -e 'print Gem.user_dir')\n+$ export PATH=$PATH:$GEM_HOME/bin\n+```\n+\n+### PostgreSQL ###\n+#### Create postgres user ####\n+\n+Run following command and when prompted give **tmc** as a password, if you want to use another username or stronger password change them into **config/database.yml**.\n+\n+```\n+$ createuser tmc -s -P\n+```\n+\n+If you cannot run above command, you can also create the user manually\n+\n+```\n+$ sudo -s\n+$ su - postgres\n+$ psql\n+    CREATE USER tmc WITH SUPERUSER PASSWORD 'tmc';\n+```\n+\n+#### Set PostgreSQL to authenticate with md5 instead of local ####\n+\n+Locate the **pg_hba.conf** file with `locate pg_hba.conf`, the file should be located */etc/postgresql/<version number>/main/pg_hba.conf*. Open the file with your preferred text-editor, you need root privileges to edit the file. Around line 90 change\n+```\n+# \"local\" is for Unix domain socket connections only\n+local   all             all                                     peer\n+```\n+to\n+```\n+# \"local\" is for Unix domain socket connections only\n+local   all             all                                     md5\n+```\n+\n+### TMC-server installation ###\n+#### Clone the TMC repository ####\n+\n+```\n+$ cd tmc-server\n+$ git clone https://github.com/testmycode/tmc-server.git\n+```\n+:exclamation: If you are not using a github account, replace the repository submodule URLs with a HTTPS URL in .git/config eg. https://github.com/testmycode/tmc-checkstyle-runner.git\n+```\n+$ git submodule update --init --recursive\n+$ gem install bundler && bundle install\n+$ cp config/site.defaults.yml confg/site.yml\n+$ env RAILS_ENV=production rake db:reset\n+$ env RAILS_ENV=production rake assets:precompile\n+```\n+\n+#### Build sandbox ####\n+\n+```\n+$ cd ext/tmc-sandbox\n+$ sudo make\n+```\n+\n+#### Install tmc-sandbox web dependencies ####\n+\n+```\n+$ cd web\n+$ bundle install\n+$ rake ext\n+$ rvmsudo rake test\n+```\n+\n+#### Compile rest of the externals ####\n+\n+```\n+$ cd ../..\n+$ rake compile\n+```\n+\n+#### Install tmc-check ####\n+\n+```\n+$ sudo apt-get install check\n+$ cd tmc-sandbox/uml/output/tmc-check\n+$ rvmsudo make rubygems install clean\n+```\n+\n+#### Run the test suite ####\n+In the tmc-server root directory run\n+```\n+$ rvmsudo rake spec\n+```\n+If you are using Java 8 one of the tests will fail.\n+\n+#### Enable pghero stats ####\n+Add to postgresql.conf following lines\n+```\n+shared_preload_libraries = 'pg_stat_statements'\n+pg_stat_statements.track = all\n+```\n+\n+### Background services ###\n+\n+After you get the test suite to pass, you can set up background services.\n+\n+1. Recheck your comet server config in `site.yml` and then do `rvmsudo rake comet:config:update`.\n+2. Install init scripts: `rvmsudo rake comet:init:install`, `rvmsudo rake background_daemon:init:install`.\n+3. Start the services: `sudo /etc/init.d/tmc-comet start`, `sudo /etc/init.d/tmc-background-daemon start`.\n+4. If you use Apache, then make sure `public/` and `tmp/` are readable and install [mod_xsendfile](https://tn123.org/mod_xsendfile/). Configure XSendFilePath to the `tmp/cache` directory of the application.\n+\n+The application should not be deployed into a multithreaded server! It often changes the current working directory, which is a process-specific attribute. Each request should have its process all to itself. If you use Apache with, say, Passenger, then use the prefork MPM.\n+\n+### Startup ###\n+\n+1. `rails server` or some other RoR setup.\n+2. Go to `ext/tmc-sandbox/web` and do `rackup --port 3001` or some other Rack setup.\n+3. `rake dev:comet:run`\n+4. `script/background_daemon start`\n+\n+Alternatively use `script/dev_env` to do all of the above in\n+[screen](http://www.gnu.org/software/screen/).\n+\n+The default user account is `admin`/`admin`.\n+\n+### Production setup ###","path":"Installation.md","position":264,"original_position":264,"commit_id":"ce3f2fcf39298d797022fae136530625f0acbd74","original_commit_id":"ce3f2fcf39298d797022fae136530625f0acbd74","user":{"login":"mpartel","id":328952,"avatar_url":"https://avatars.githubusercontent.com/u/328952?v=3","gravatar_id":"","url":"https://api.github.com/users/mpartel","html_url":"https://github.com/mpartel","followers_url":"https://api.github.com/users/mpartel/followers","following_url":"https://api.github.com/users/mpartel/following{/other_user}","gists_url":"https://api.github.com/users/mpartel/gists{/gist_id}","starred_url":"https://api.github.com/users/mpartel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpartel/subscriptions","organizations_url":"https://api.github.com/users/mpartel/orgs","repos_url":"https://api.github.com/users/mpartel/repos","events_url":"https://api.github.com/users/mpartel/events{/privacy}","received_events_url":"https://api.github.com/users/mpartel/received_events","type":"User","site_admin":false},"body":"See above comments about production vs dev instructions.","created_at":"2015-02-10T23:48:55Z","updated_at":"2015-02-10T23:48:55Z","html_url":"https://github.com/testmycode/tmc-server/pull/230#discussion_r24463023","pull_request_url":"https://api.github.com/repos/testmycode/tmc-server/pulls/230","_links":{"self":{"href":"https://api.github.com/repos/testmycode/tmc-server/pulls/comments/24463023"},"html":{"href":"https://github.com/testmycode/tmc-server/pull/230#discussion_r24463023"},"pull_request":{"href":"https://api.github.com/repos/testmycode/tmc-server/pulls/230"}}},"pull_request":{"url":"https://api.github.com/repos/testmycode/tmc-server/pulls/230","id":29043431,"html_url":"https://github.com/testmycode/tmc-server/pull/230","diff_url":"https://github.com/testmycode/tmc-server/pull/230.diff","patch_url":"https://github.com/testmycode/tmc-server/pull/230.patch","issue_url":"https://api.github.com/repos/testmycode/tmc-server/issues/230","number":230,"state":"open","locked":false,"title":"Refined installation instructions","user":{"login":"PunyW","id":4546681,"avatar_url":"https://avatars.githubusercontent.com/u/4546681?v=3","gravatar_id":"","url":"https://api.github.com/users/PunyW","html_url":"https://github.com/PunyW","followers_url":"https://api.github.com/users/PunyW/followers","following_url":"https://api.github.com/users/PunyW/following{/other_user}","gists_url":"https://api.github.com/users/PunyW/gists{/gist_id}","starred_url":"https://api.github.com/users/PunyW/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PunyW/subscriptions","organizations_url":"https://api.github.com/users/PunyW/orgs","repos_url":"https://api.github.com/users/PunyW/repos","events_url":"https://api.github.com/users/PunyW/events{/privacy}","received_events_url":"https://api.github.com/users/PunyW/received_events","type":"User","site_admin":false},"body":"Added installation instructions into their own file and added link to README","created_at":"2015-02-10T20:51:28Z","updated_at":"2015-02-10T23:48:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3938da905ddf2403fc69d339870bf5f0096c4c56","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/testmycode/tmc-server/pulls/230/commits","review_comments_url":"https://api.github.com/repos/testmycode/tmc-server/pulls/230/comments","review_comment_url":"https://api.github.com/repos/testmycode/tmc-server/pulls/comments/{number}","comments_url":"https://api.github.com/repos/testmycode/tmc-server/issues/230/comments","statuses_url":"https://api.github.com/repos/testmycode/tmc-server/statuses/ce3f2fcf39298d797022fae136530625f0acbd74","head":{"label":"tmc-langs:installation","ref":"installation","sha":"ce3f2fcf39298d797022fae136530625f0acbd74","user":{"login":"tmc-langs","id":10543868,"avatar_url":"https://avatars.githubusercontent.com/u/10543868?v=3","gravatar_id":"","url":"https://api.github.com/users/tmc-langs","html_url":"https://github.com/tmc-langs","followers_url":"https://api.github.com/users/tmc-langs/followers","following_url":"https://api.github.com/users/tmc-langs/following{/other_user}","gists_url":"https://api.github.com/users/tmc-langs/gists{/gist_id}","starred_url":"https://api.github.com/users/tmc-langs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmc-langs/subscriptions","organizations_url":"https://api.github.com/users/tmc-langs/orgs","repos_url":"https://api.github.com/users/tmc-langs/repos","events_url":"https://api.github.com/users/tmc-langs/events{/privacy}","received_events_url":"https://api.github.com/users/tmc-langs/received_events","type":"Organization","site_admin":false},"repo":{"id":29287068,"name":"tmc-server","full_name":"tmc-langs/tmc-server","owner":{"login":"tmc-langs","id":10543868,"avatar_url":"https://avatars.githubusercontent.com/u/10543868?v=3","gravatar_id":"","url":"https://api.github.com/users/tmc-langs","html_url":"https://github.com/tmc-langs","followers_url":"https://api.github.com/users/tmc-langs/followers","following_url":"https://api.github.com/users/tmc-langs/following{/other_user}","gists_url":"https://api.github.com/users/tmc-langs/gists{/gist_id}","starred_url":"https://api.github.com/users/tmc-langs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmc-langs/subscriptions","organizations_url":"https://api.github.com/users/tmc-langs/orgs","repos_url":"https://api.github.com/users/tmc-langs/repos","events_url":"https://api.github.com/users/tmc-langs/events{/privacy}","received_events_url":"https://api.github.com/users/tmc-langs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/tmc-langs/tmc-server","description":"Test My Code server","fork":true,"url":"https://api.github.com/repos/tmc-langs/tmc-server","forks_url":"https://api.github.com/repos/tmc-langs/tmc-server/forks","keys_url":"https://api.github.com/repos/tmc-langs/tmc-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tmc-langs/tmc-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tmc-langs/tmc-server/teams","hooks_url":"https://api.github.com/repos/tmc-langs/tmc-server/hooks","issue_events_url":"https://api.github.com/repos/tmc-langs/tmc-server/issues/events{/number}","events_url":"https://api.github.com/repos/tmc-langs/tmc-server/events","assignees_url":"https://api.github.com/repos/tmc-langs/tmc-server/assignees{/user}","branches_url":"https://api.github.com/repos/tmc-langs/tmc-server/branches{/branch}","tags_url":"https://api.github.com/repos/tmc-langs/tmc-server/tags","blobs_url":"https://api.github.com/repos/tmc-langs/tmc-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tmc-langs/tmc-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tmc-langs/tmc-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/tmc-langs/tmc-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tmc-langs/tmc-server/statuses/{sha}","languages_url":"https://api.github.com/repos/tmc-langs/tmc-server/languages","stargazers_url":"https://api.github.com/repos/tmc-langs/tmc-server/stargazers","contributors_url":"https://api.github.com/repos/tmc-langs/tmc-server/contributors","subscribers_url":"https://api.github.com/repos/tmc-langs/tmc-server/subscribers","subscription_url":"https://api.github.com/repos/tmc-langs/tmc-server/subscription","commits_url":"https://api.github.com/repos/tmc-langs/tmc-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/tmc-langs/tmc-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/tmc-langs/tmc-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/tmc-langs/tmc-server/issues/comments/{number}","contents_url":"https://api.github.com/repos/tmc-langs/tmc-server/contents/{+path}","compare_url":"https://api.github.com/repos/tmc-langs/tmc-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tmc-langs/tmc-server/merges","archive_url":"https://api.github.com/repos/tmc-langs/tmc-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tmc-langs/tmc-server/downloads","issues_url":"https://api.github.com/repos/tmc-langs/tmc-server/issues{/number}","pulls_url":"https://api.github.com/repos/tmc-langs/tmc-server/pulls{/number}","milestones_url":"https://api.github.com/repos/tmc-langs/tmc-server/milestones{/number}","notifications_url":"https://api.github.com/repos/tmc-langs/tmc-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tmc-langs/tmc-server/labels{/name}","releases_url":"https://api.github.com/repos/tmc-langs/tmc-server/releases{/id}","created_at":"2015-01-15T08:04:51Z","updated_at":"2015-02-10T20:56:12Z","pushed_at":"2015-02-10T20:56:12Z","git_url":"git://github.com/tmc-langs/tmc-server.git","ssh_url":"git@github.com:tmc-langs/tmc-server.git","clone_url":"https://github.com/tmc-langs/tmc-server.git","svn_url":"https://github.com/tmc-langs/tmc-server","homepage":"","size":6894,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"testmycode:master","ref":"master","sha":"e2ed7b5d73162583dc5e2d63d803caf2c9b6a3aa","user":{"login":"testmycode","id":893468,"avatar_url":"https://avatars.githubusercontent.com/u/893468?v=3","gravatar_id":"","url":"https://api.github.com/users/testmycode","html_url":"https://github.com/testmycode","followers_url":"https://api.github.com/users/testmycode/followers","following_url":"https://api.github.com/users/testmycode/following{/other_user}","gists_url":"https://api.github.com/users/testmycode/gists{/gist_id}","starred_url":"https://api.github.com/users/testmycode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/testmycode/subscriptions","organizations_url":"https://api.github.com/users/testmycode/orgs","repos_url":"https://api.github.com/users/testmycode/repos","events_url":"https://api.github.com/users/testmycode/events{/privacy}","received_events_url":"https://api.github.com/users/testmycode/received_events","type":"Organization","site_admin":false},"repo":{"id":1995270,"name":"tmc-server","full_name":"testmycode/tmc-server","owner":{"login":"testmycode","id":893468,"avatar_url":"https://avatars.githubusercontent.com/u/893468?v=3","gravatar_id":"","url":"https://api.github.com/users/testmycode","html_url":"https://github.com/testmycode","followers_url":"https://api.github.com/users/testmycode/followers","following_url":"https://api.github.com/users/testmycode/following{/other_user}","gists_url":"https://api.github.com/users/testmycode/gists{/gist_id}","starred_url":"https://api.github.com/users/testmycode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/testmycode/subscriptions","organizations_url":"https://api.github.com/users/testmycode/orgs","repos_url":"https://api.github.com/users/testmycode/repos","events_url":"https://api.github.com/users/testmycode/events{/privacy}","received_events_url":"https://api.github.com/users/testmycode/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/testmycode/tmc-server","description":"Test My Code server","fork":false,"url":"https://api.github.com/repos/testmycode/tmc-server","forks_url":"https://api.github.com/repos/testmycode/tmc-server/forks","keys_url":"https://api.github.com/repos/testmycode/tmc-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/testmycode/tmc-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/testmycode/tmc-server/teams","hooks_url":"https://api.github.com/repos/testmycode/tmc-server/hooks","issue_events_url":"https://api.github.com/repos/testmycode/tmc-server/issues/events{/number}","events_url":"https://api.github.com/repos/testmycode/tmc-server/events","assignees_url":"https://api.github.com/repos/testmycode/tmc-server/assignees{/user}","branches_url":"https://api.github.com/repos/testmycode/tmc-server/branches{/branch}","tags_url":"https://api.github.com/repos/testmycode/tmc-server/tags","blobs_url":"https://api.github.com/repos/testmycode/tmc-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/testmycode/tmc-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/testmycode/tmc-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/testmycode/tmc-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/testmycode/tmc-server/statuses/{sha}","languages_url":"https://api.github.com/repos/testmycode/tmc-server/languages","stargazers_url":"https://api.github.com/repos/testmycode/tmc-server/stargazers","contributors_url":"https://api.github.com/repos/testmycode/tmc-server/contributors","subscribers_url":"https://api.github.com/repos/testmycode/tmc-server/subscribers","subscription_url":"https://api.github.com/repos/testmycode/tmc-server/subscription","commits_url":"https://api.github.com/repos/testmycode/tmc-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/testmycode/tmc-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/testmycode/tmc-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/testmycode/tmc-server/issues/comments/{number}","contents_url":"https://api.github.com/repos/testmycode/tmc-server/contents/{+path}","compare_url":"https://api.github.com/repos/testmycode/tmc-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/testmycode/tmc-server/merges","archive_url":"https://api.github.com/repos/testmycode/tmc-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/testmycode/tmc-server/downloads","issues_url":"https://api.github.com/repos/testmycode/tmc-server/issues{/number}","pulls_url":"https://api.github.com/repos/testmycode/tmc-server/pulls{/number}","milestones_url":"https://api.github.com/repos/testmycode/tmc-server/milestones{/number}","notifications_url":"https://api.github.com/repos/testmycode/tmc-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/testmycode/tmc-server/labels{/name}","releases_url":"https://api.github.com/repos/testmycode/tmc-server/releases{/id}","created_at":"2011-07-04T12:29:36Z","updated_at":"2015-02-08T22:15:35Z","pushed_at":"2015-02-08T22:15:36Z","git_url":"git://github.com/testmycode/tmc-server.git","ssh_url":"git@github.com:testmycode/tmc-server.git","clone_url":"https://github.com/testmycode/tmc-server.git","svn_url":"https://github.com/testmycode/tmc-server","homepage":"","size":8169,"stargazers_count":10,"watchers_count":10,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"open_issues_count":80,"forks":11,"open_issues":80,"watchers":10,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/testmycode/tmc-server/pulls/230"},"html":{"href":"https://github.com/testmycode/tmc-server/pull/230"},"issue":{"href":"https://api.github.com/repos/testmycode/tmc-server/issues/230"},"comments":{"href":"https://api.github.com/repos/testmycode/tmc-server/issues/230/comments"},"review_comments":{"href":"https://api.github.com/repos/testmycode/tmc-server/pulls/230/comments"},"review_comment":{"href":"https://api.github.com/repos/testmycode/tmc-server/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/testmycode/tmc-server/pulls/230/commits"},"statuses":{"href":"https://api.github.com/repos/testmycode/tmc-server/statuses/ce3f2fcf39298d797022fae136530625f0acbd74"}}}}