{"action":"created","comment":{"url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/comments/87747307","pull_request_review_id":8346277,"id":87747307,"diff_hunk":"@@ -0,0 +1,405 @@\n+'use strict';\n+\n+/**\n+ * @author Copyright RIKSOF (Private) Limited 2016.\n+ *\n+ * @file Test user management.\n+ */\n+var assert = require('assert');\n+var Mongo = require('../../lib/db/MongoDb.js');\n+var Sync = require('../../lib/services/Sync.js');\n+var Client = require('../../lib/services/Client.js');\n+var SocketClient = require( '../../lib/services/SocketClient.js' );\n+var UserManagement = require('../../lib/services/UserManagement.js');\n+var Repository = require('../../lib/vc/Repository.js');\n+var Document = require('../../lib/vc/Document.js');\n+var Commits = require('../../lib/vc/Commits.js');\n+var Pulls = require('../../lib/vc/Pulls.js');\n+var Promise = require('bluebird');\n+\n+var clientId = '11-1-1-111';\n+var clientSecret = '23322a5373b4eb4c578bb4cb0323ef76afc39d1168a6d4a865b199ec2a2684a3';\n+var username = 'test3@domain.com';\n+var password = 'test';\n+var url = 'http://localhost:3000';\n+var remoteBranch = 'MyBranch';\n+var db;\n+\n+describe( 'Sync MongoDb', function() {\n+\n+  before( function (done) {\n+\n+    db = new Mongo ( 'mongodb://localhost:27017/versioncontrol' );\n+    db.connect().then( function( connection ) { \n+      done();\n+    });\n+  });\n+\n+  describe( '#Run', function() {\n+    it( 'Should return true promise if there is nothing to sync', function() {\n+\n+      var c = new Client( url, clientId, clientSecret );\n+      var sc = null;\n+      var syn = null;\n+\n+      var repo = new Repository( clientId, db );\n+\n+      return c.connect().then( function( ) {\n+        sc = new SocketClient( url, c.connection.accessToken, clientId );\n+        return sc.connect();\n+      }).then( function( result ) {\n+        assert.notEqual( null, result );\n+\n+        return repo.setup();\n+      }).then( function( ) {\n+        return repo.branches.add( 'Tasks' );\n+      }).then( function ( br ) {\n+        syn = new Sync( sc, repo, br, 'Tasks', function( ex, d, e ) {} );\n+        return syn.run( [], [] );\n+      }).then( function( result ) {\n+        assert( true, result );\n+      });\n+    });\n+  });\n+\n+  describe( '#User Management', function() {\n+    it( 'Should allow to connect with and add a new user', function() {\n+      var c = new Client( url, clientId, clientSecret );\n+      var sc = null;\n+      var syn = null;\n+\n+      var repo = new Repository( clientId, db );\n+      var um = null;\n+\n+      return c.connect( ).then( function( result ) {\n+        assert.equal( true, result );\n+\n+        sc = new SocketClient( url, c.connection.accessToken, clientId );\n+        return sc.connect();\n+      }).then( function ( result ) {\n+        return repo.setup();\n+      }).then( function( ) {\n+        return repo.branches.add( 'Tasks' );\n+      }).then( function (br ) {\n+        syn = new Sync( sc, repo, br, 'Tasks', function( ex, d, e ) {\n+          return true;\n+        });\n+        return repo.branches.add( 'users' );\n+      }).then( function ( b ) {\n+        // Initialize um.\n+        um = new UserManagement( repo, b );\n+\n+        // Add the user.\n+        return um.addUser( 'Test', username, password, UserManagement.User.GRANT_PASSWORD, 'Added new user for testing by System user.' );\n+      }).then( function ( user ) {\n+        // Activate user.\n+        return um.changeUserStatus(\n+          username, UserManagement.User.STATUS_ACTIVE,\n+          'Admin user made active on setup from command line.'\n+        );\n+      }).then( function ( user ) {\n+        syn.push(\n+          'users',\n+          clientId,\n+          'Users',\n+          username,\n+          Document.getCommits( user )\n+        );\n+\n+        return syn.syncPromise;\n+      }).then( function( result ) {\n+        assert.equal( true, result );\n+      });\n+    });\n+  });\n+\n+  describe( '#Branching', function() {\n+    it( 'Should be able to use the sync service to create remote branches', function() {\n+\n+      var c = new Client( url, clientId, clientSecret );\n+      var sc = null;\n+      var syn = null;\n+\n+      var repo = new Repository( username, db );\n+\n+      return c.connect( username, password ).then( function( ) {\n+        sc = new SocketClient( url, c.connection.accessToken, username );\n+        return sc.connect();\n+      }).then( function( result ) {\n+        assert.notEqual( null, result );\n+\n+        return repo.setup();\n+      }).then( function( ) {\n+        return repo.branches.add( 'Tasks' );\n+      }).then( function ( br ) {\n+        var test = 0;\n+        syn = new Sync( sc, repo, br, 'Tasks', function( ex, d, e ) {\n+          if ( test === 0 ) {\n+            assert.equal( null, ex );\n+          } else {\n+            assert.equal( 'Branch with name ' + remoteBranch +  ' already exists', ex.message );\n+          }\n+          test++;\n+\n+          return true;\n+        });\n+        syn.createBranch( remoteBranch );\n+        syn.createBranch( remoteBranch );\n+\n+        return syn.syncPromise;\n+      }).then( function( result ) {\n+        assert.equal( true, result );\n+      });\n+    });\n+  });\n+\n+  describe( '#Push & Pull', function() {\n+    var objId = null;\n+    var name = 'John Doe';\n+    var age = 10;\n+\n+    it( 'Should allow to push new objects to remote branch', function() {\n+\n+      // Setup local repository and branch.\n+      var localBranch = 'local/MyBranch';\n+      var repo = new Repository( username, db );\n+      var branch = null;\n+      var c = null;\n+      var sc = null;\n+      var syn = null;\n+      var commits = null;\n+\n+      return repo.setup().then( function( ) {\n+        return repo.branches.add( localBranch );\n+      }).then( function ( br ) {\n+        branch = br;\n+        return repo.commit( branch, { name: name }, 'Adding new entry' );\n+      }).then( function ( obj ) {\n+        obj.age = age;\n+        return repo.commit( branch, obj, 'Adding age' );\n+      }).then( function ( obj ) {\n+        // Remember object ID for remaining tests.\n+        objId = Document.getId( obj );\n+        commits = Document.getCommits( obj );\n+\n+        // Now connect to remote repository\n+        c = new Client( url, clientId, clientSecret );\n+        return c.connect( username, password )\n+      }).then( function( result ) {\n+        assert.equal( true, result );\n+\n+        sc = new SocketClient( url, c.connection.accessToken, username );\n+        return sc.connect();\n+      }).then( function (result ) {\n+        assert.notEqual( null, result );\n+\n+        return repo.branches.add( 'Tasks' );\n+      }).then( function ( br ) {\n+        syn = new Sync( sc, repo, br, 'Tasks', function( ex, d, e ) {\n+          return true;\n+        });\n+\n+        // Push this object to remote branch.\n+        syn.push( localBranch, username, remoteBranch, objId, commits );\n+        return syn.syncPromise;\n+      }).then( function( result ) {\n+        assert.equal( true, result );\n+      });\n+    });\n+\n+    it( 'Should allow to pull objects from remote branch', function() {\n+\n+      // Setup local repository and branch.\n+      var localBranch = 'local/MyBranch';\n+      var repo = new Repository( username, db );\n+      var branch = null;\n+      var c = null;\n+      var sc = null;\n+      var syn = null;\n+      var commits = null;\n+\n+      return repo.setup().then( function( ) {\n+        return repo.branches.add( localBranch );\n+      }).then( function ( br ) {\n+        branch = br;\n+        // Now connect to remote repository\n+        c = new Client( url, clientId, clientSecret );\n+\n+        return c.connect( username, password );\n+      }).then( function( result ) {\n+        assert.equal( true, result );\n+\n+        sc = new SocketClient( url, c.connection.accessToken, username );\n+        return sc.connect();\n+      }).then( function( result ) {\n+        assert.notEqual( null, result );\n+\n+        return repo.branches.add( 'Tasks' );\n+      }).then( function (br ) {\n+        var freq = 0;\n+        syn = new Sync( sc, repo, br, 'Tasks', function( ex, d, e ) {\n+          if ( freq === 0 ) {\n+            commits = d;\n+          }\n+\n+          freq++;\n+          return true;\n+        });\n+\n+        // Push this object to remote branch.\n+        syn.pull( username, remoteBranch, objId );\n+        return syn.syncPromise;\n+      }).then( function( result ) {\n+        assert.equal( true, result );\n+\n+        return repo.mergeToBranch( branch, objId, commits, '' );\n+      }).then( function( obj ) {\n+        assert.equal( name, obj.name );\n+        assert.equal( age, obj.age );\n+      });\n+    });\n+\n+    it( 'Should allow to pull objects update and then push and pull from remote branch', function() {\n+\n+      // Setup local repository and branch.\n+      var localBranch = 'local/MyBranch';\n+      var repo = new Repository( username, db );\n+      var branch = null;\n+      var c = null;\n+      var sc = null;\n+      var syn = null;\n+      var commitsPull = null;\n+      var commitsPull2 = null;\n+      var commitsPush = null;\n+\n+      return repo.setup().then( function( ) {\n+        return repo.branches.add( localBranch );\n+      }).then( function ( br ) {\n+        branch = br;\n+\n+        // Now connect to remote repository\n+        c = new Client( url, clientId, clientSecret );\n+        return c.connect( username, password );\n+      }).then( function( result ) {\n+        assert.equal( true, result );\n+\n+        sc = new SocketClient( url, c.connection.accessToken, username );\n+        return sc.connect();\n+      }).then( function( result ) {\n+        assert.notEqual( null, result );\n+\n+        return repo.branches.add( 'Tasks' );\n+      }).then( function (br ) {\n+        var freq = 0;\n+        syn = new Sync( sc, repo, br, 'Tasks', function( ex, d, e ) {\n+          if ( freq === 0 ) {\n+            commitsPull = d;\n+          } else if ( freq === 1 ) {\n+            commitsPush = d;\n+          } else {\n+            commitsPull2 = d;\n+          }\n+\n+          freq++;\n+          return true;\n+        });\n+\n+        // Pull this object from remote branch.\n+        syn.pull( username, remoteBranch, objId );\n+        return syn.syncPromise;\n+      }).then( function( commits ) {\n+        // Merge these commits to the repo.\n+        return repo.mergeToBranch( branch, objId, commitsPull, '', null, remoteBranch );\n+      }).then( function ( obj ) {\n+        assert.equal( name, obj.name );\n+        assert.equal( age, obj.age );\n+\n+        // Now make changes to the object.\n+        obj.city = 'London';\n+        obj.country = 'United Kingdom';\n+\n+        return repo.commit( branch, obj, 'Added location' );\n+      }).then( function ( obj ) {\n+\n+        // Get the head for remote branch.\n+        var p = new Pulls( Document.getPulls( obj ) );\n+        var remoteHead = p.getPullInformation( remoteBranch ).head;\n+\n+        // Filter latest commits to push after the head.\n+        var cs = new Commits( Document.getCommits( obj ) );\n+        var filtered = cs.getFilteredCommits( remoteHead );\n+\n+        // Push this object to remote branch.\n+        syn.push( localBranch, username, remoteBranch, objId, filtered, remoteHead );\n+        return syn.syncPromise;\n+      }).then( function( result ) {\n+\n+        // Get the object from repository and make a pull request.\n+        return repo.confirmMergeToBranch( branch, objId, commitsPush, remoteBranch );\n+      }).then( function ( obj ) {\n+\n+        // Get the head for remote branch.\n+        var p = new Pulls( Document.getPulls( obj ) );\n+        var head = p.getPullInformation( remoteBranch ).head;\n+\n+        // Pull this object from remote branch.\n+        sc.pull( username, remoteBranch, objId, 'unused reference', head );\n+        return syn.syncPromise;\n+      }).then( function( commits ) {\n+        assert.ok( true );\n+      });\n+    });\n+  });\n+\n+  describe( '#Search', function() {\n+    var name = 'John Doe';\n+    var age = 10;\n+\n+    it( 'Should allow to pull search results from remote branch', function() {\n+\n+      // Setup local repository and branch.\n+      var localBranch = 'local/History';\n+      var repo = new Repository( username, db );\n+      var branch = null;\n+      var c = null;\n+      var sc = null;\n+      var syn = null;\n+      var commits = null;\n+\n+      return repo.setup().then( function( ) {\n+        return repo.branches.add( localBranch );\n+      }).then( function ( br ) {\n+        branch = br;\n+\n+        // Now connect to remote repository\n+        c = new Client( url, clientId, clientSecret );\n+        return c.connect( username, password );\n+      }).then( function( result ) {","path":"test/services/Sync.mongodb.js","position":283,"original_position":377,"commit_id":"d4fe91c60a25a419495489ec547fd6c72e27c16b","original_commit_id":"d4fe91c60a25a419495489ec547fd6c72e27c16b","user":{"login":"mkhurramali","id":1565155,"avatar_url":"https://avatars.githubusercontent.com/u/1565155?v=3","gravatar_id":"","url":"https://api.github.com/users/mkhurramali","html_url":"https://github.com/mkhurramali","followers_url":"https://api.github.com/users/mkhurramali/followers","following_url":"https://api.github.com/users/mkhurramali/following{/other_user}","gists_url":"https://api.github.com/users/mkhurramali/gists{/gist_id}","starred_url":"https://api.github.com/users/mkhurramali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkhurramali/subscriptions","organizations_url":"https://api.github.com/users/mkhurramali/orgs","repos_url":"https://api.github.com/users/mkhurramali/repos","events_url":"https://api.github.com/users/mkhurramali/events{/privacy}","received_events_url":"https://api.github.com/users/mkhurramali/received_events","type":"User","site_admin":false},"body":"Missing function expression name.\n```javascript\n      }).then( function( result ) {\n```","created_at":"2016-11-14T07:06:54Z","updated_at":"2016-11-14T07:06:54Z","html_url":"https://github.com/RIKSOF/json-api-vc/pull/2#discussion_r87747307","pull_request_url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2","_links":{"self":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/comments/87747307"},"html":{"href":"https://github.com/RIKSOF/json-api-vc/pull/2#discussion_r87747307"},"pull_request":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2","id":90525461,"html_url":"https://github.com/RIKSOF/json-api-vc/pull/2","diff_url":"https://github.com/RIKSOF/json-api-vc/pull/2.diff","patch_url":"https://github.com/RIKSOF/json-api-vc/pull/2.patch","issue_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/2","number":2,"state":"open","locked":false,"title":"Integrate mongodb","user":{"login":"riksof-abdulbari","id":16382695,"avatar_url":"https://avatars.githubusercontent.com/u/16382695?v=3","gravatar_id":"","url":"https://api.github.com/users/riksof-abdulbari","html_url":"https://github.com/riksof-abdulbari","followers_url":"https://api.github.com/users/riksof-abdulbari/followers","following_url":"https://api.github.com/users/riksof-abdulbari/following{/other_user}","gists_url":"https://api.github.com/users/riksof-abdulbari/gists{/gist_id}","starred_url":"https://api.github.com/users/riksof-abdulbari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/riksof-abdulbari/subscriptions","organizations_url":"https://api.github.com/users/riksof-abdulbari/orgs","repos_url":"https://api.github.com/users/riksof-abdulbari/repos","events_url":"https://api.github.com/users/riksof-abdulbari/events{/privacy}","received_events_url":"https://api.github.com/users/riksof-abdulbari/received_events","type":"User","site_admin":false},"body":"https://trello.com/c/P2NmZVJJ/2-integrate-with-mongodb\n","created_at":"2016-10-23T18:57:00Z","updated_at":"2016-11-14T07:06:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"208fa057c5e7215dd27a535c0e30acb241179f6a","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2/commits","review_comments_url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2/comments","review_comment_url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/2/comments","statuses_url":"https://api.github.com/repos/RIKSOF/json-api-vc/statuses/d4fe91c60a25a419495489ec547fd6c72e27c16b","head":{"label":"RIKSOF:integrate-mongodb","ref":"integrate-mongodb","sha":"d4fe91c60a25a419495489ec547fd6c72e27c16b","user":{"login":"RIKSOF","id":1582310,"avatar_url":"https://avatars.githubusercontent.com/u/1582310?v=3","gravatar_id":"","url":"https://api.github.com/users/RIKSOF","html_url":"https://github.com/RIKSOF","followers_url":"https://api.github.com/users/RIKSOF/followers","following_url":"https://api.github.com/users/RIKSOF/following{/other_user}","gists_url":"https://api.github.com/users/RIKSOF/gists{/gist_id}","starred_url":"https://api.github.com/users/RIKSOF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIKSOF/subscriptions","organizations_url":"https://api.github.com/users/RIKSOF/orgs","repos_url":"https://api.github.com/users/RIKSOF/repos","events_url":"https://api.github.com/users/RIKSOF/events{/privacy}","received_events_url":"https://api.github.com/users/RIKSOF/received_events","type":"Organization","site_admin":false},"repo":{"id":66145247,"name":"json-api-vc","full_name":"RIKSOF/json-api-vc","owner":{"login":"RIKSOF","id":1582310,"avatar_url":"https://avatars.githubusercontent.com/u/1582310?v=3","gravatar_id":"","url":"https://api.github.com/users/RIKSOF","html_url":"https://github.com/RIKSOF","followers_url":"https://api.github.com/users/RIKSOF/followers","following_url":"https://api.github.com/users/RIKSOF/following{/other_user}","gists_url":"https://api.github.com/users/RIKSOF/gists{/gist_id}","starred_url":"https://api.github.com/users/RIKSOF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIKSOF/subscriptions","organizations_url":"https://api.github.com/users/RIKSOF/orgs","repos_url":"https://api.github.com/users/RIKSOF/repos","events_url":"https://api.github.com/users/RIKSOF/events{/privacy}","received_events_url":"https://api.github.com/users/RIKSOF/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/RIKSOF/json-api-vc","description":"A module for quickly building json api with git like version control.","fork":false,"url":"https://api.github.com/repos/RIKSOF/json-api-vc","forks_url":"https://api.github.com/repos/RIKSOF/json-api-vc/forks","keys_url":"https://api.github.com/repos/RIKSOF/json-api-vc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RIKSOF/json-api-vc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RIKSOF/json-api-vc/teams","hooks_url":"https://api.github.com/repos/RIKSOF/json-api-vc/hooks","issue_events_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/events{/number}","events_url":"https://api.github.com/repos/RIKSOF/json-api-vc/events","assignees_url":"https://api.github.com/repos/RIKSOF/json-api-vc/assignees{/user}","branches_url":"https://api.github.com/repos/RIKSOF/json-api-vc/branches{/branch}","tags_url":"https://api.github.com/repos/RIKSOF/json-api-vc/tags","blobs_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/refs{/sha}","trees_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RIKSOF/json-api-vc/statuses/{sha}","languages_url":"https://api.github.com/repos/RIKSOF/json-api-vc/languages","stargazers_url":"https://api.github.com/repos/RIKSOF/json-api-vc/stargazers","contributors_url":"https://api.github.com/repos/RIKSOF/json-api-vc/contributors","subscribers_url":"https://api.github.com/repos/RIKSOF/json-api-vc/subscribers","subscription_url":"https://api.github.com/repos/RIKSOF/json-api-vc/subscription","commits_url":"https://api.github.com/repos/RIKSOF/json-api-vc/commits{/sha}","git_commits_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/commits{/sha}","comments_url":"https://api.github.com/repos/RIKSOF/json-api-vc/comments{/number}","issue_comment_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/comments{/number}","contents_url":"https://api.github.com/repos/RIKSOF/json-api-vc/contents/{+path}","compare_url":"https://api.github.com/repos/RIKSOF/json-api-vc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RIKSOF/json-api-vc/merges","archive_url":"https://api.github.com/repos/RIKSOF/json-api-vc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RIKSOF/json-api-vc/downloads","issues_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues{/number}","pulls_url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls{/number}","milestones_url":"https://api.github.com/repos/RIKSOF/json-api-vc/milestones{/number}","notifications_url":"https://api.github.com/repos/RIKSOF/json-api-vc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RIKSOF/json-api-vc/labels{/name}","releases_url":"https://api.github.com/repos/RIKSOF/json-api-vc/releases{/id}","deployments_url":"https://api.github.com/repos/RIKSOF/json-api-vc/deployments","created_at":"2016-08-20T12:20:09Z","updated_at":"2016-08-21T15:00:30Z","pushed_at":"2016-11-07T11:11:34Z","git_url":"git://github.com/RIKSOF/json-api-vc.git","ssh_url":"git@github.com:RIKSOF/json-api-vc.git","clone_url":"https://github.com/RIKSOF/json-api-vc.git","svn_url":"https://github.com/RIKSOF/json-api-vc","homepage":null,"size":683,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"RIKSOF:master","ref":"master","sha":"fe141a33d9fbca743f75531fae99941430840bdf","user":{"login":"RIKSOF","id":1582310,"avatar_url":"https://avatars.githubusercontent.com/u/1582310?v=3","gravatar_id":"","url":"https://api.github.com/users/RIKSOF","html_url":"https://github.com/RIKSOF","followers_url":"https://api.github.com/users/RIKSOF/followers","following_url":"https://api.github.com/users/RIKSOF/following{/other_user}","gists_url":"https://api.github.com/users/RIKSOF/gists{/gist_id}","starred_url":"https://api.github.com/users/RIKSOF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIKSOF/subscriptions","organizations_url":"https://api.github.com/users/RIKSOF/orgs","repos_url":"https://api.github.com/users/RIKSOF/repos","events_url":"https://api.github.com/users/RIKSOF/events{/privacy}","received_events_url":"https://api.github.com/users/RIKSOF/received_events","type":"Organization","site_admin":false},"repo":{"id":66145247,"name":"json-api-vc","full_name":"RIKSOF/json-api-vc","owner":{"login":"RIKSOF","id":1582310,"avatar_url":"https://avatars.githubusercontent.com/u/1582310?v=3","gravatar_id":"","url":"https://api.github.com/users/RIKSOF","html_url":"https://github.com/RIKSOF","followers_url":"https://api.github.com/users/RIKSOF/followers","following_url":"https://api.github.com/users/RIKSOF/following{/other_user}","gists_url":"https://api.github.com/users/RIKSOF/gists{/gist_id}","starred_url":"https://api.github.com/users/RIKSOF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIKSOF/subscriptions","organizations_url":"https://api.github.com/users/RIKSOF/orgs","repos_url":"https://api.github.com/users/RIKSOF/repos","events_url":"https://api.github.com/users/RIKSOF/events{/privacy}","received_events_url":"https://api.github.com/users/RIKSOF/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/RIKSOF/json-api-vc","description":"A module for quickly building json api with git like version control.","fork":false,"url":"https://api.github.com/repos/RIKSOF/json-api-vc","forks_url":"https://api.github.com/repos/RIKSOF/json-api-vc/forks","keys_url":"https://api.github.com/repos/RIKSOF/json-api-vc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RIKSOF/json-api-vc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RIKSOF/json-api-vc/teams","hooks_url":"https://api.github.com/repos/RIKSOF/json-api-vc/hooks","issue_events_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/events{/number}","events_url":"https://api.github.com/repos/RIKSOF/json-api-vc/events","assignees_url":"https://api.github.com/repos/RIKSOF/json-api-vc/assignees{/user}","branches_url":"https://api.github.com/repos/RIKSOF/json-api-vc/branches{/branch}","tags_url":"https://api.github.com/repos/RIKSOF/json-api-vc/tags","blobs_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/refs{/sha}","trees_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RIKSOF/json-api-vc/statuses/{sha}","languages_url":"https://api.github.com/repos/RIKSOF/json-api-vc/languages","stargazers_url":"https://api.github.com/repos/RIKSOF/json-api-vc/stargazers","contributors_url":"https://api.github.com/repos/RIKSOF/json-api-vc/contributors","subscribers_url":"https://api.github.com/repos/RIKSOF/json-api-vc/subscribers","subscription_url":"https://api.github.com/repos/RIKSOF/json-api-vc/subscription","commits_url":"https://api.github.com/repos/RIKSOF/json-api-vc/commits{/sha}","git_commits_url":"https://api.github.com/repos/RIKSOF/json-api-vc/git/commits{/sha}","comments_url":"https://api.github.com/repos/RIKSOF/json-api-vc/comments{/number}","issue_comment_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/comments{/number}","contents_url":"https://api.github.com/repos/RIKSOF/json-api-vc/contents/{+path}","compare_url":"https://api.github.com/repos/RIKSOF/json-api-vc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RIKSOF/json-api-vc/merges","archive_url":"https://api.github.com/repos/RIKSOF/json-api-vc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RIKSOF/json-api-vc/downloads","issues_url":"https://api.github.com/repos/RIKSOF/json-api-vc/issues{/number}","pulls_url":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls{/number}","milestones_url":"https://api.github.com/repos/RIKSOF/json-api-vc/milestones{/number}","notifications_url":"https://api.github.com/repos/RIKSOF/json-api-vc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RIKSOF/json-api-vc/labels{/name}","releases_url":"https://api.github.com/repos/RIKSOF/json-api-vc/releases{/id}","deployments_url":"https://api.github.com/repos/RIKSOF/json-api-vc/deployments","created_at":"2016-08-20T12:20:09Z","updated_at":"2016-08-21T15:00:30Z","pushed_at":"2016-11-07T11:11:34Z","git_url":"git://github.com/RIKSOF/json-api-vc.git","ssh_url":"git@github.com:RIKSOF/json-api-vc.git","clone_url":"https://github.com/RIKSOF/json-api-vc.git","svn_url":"https://github.com/RIKSOF/json-api-vc","homepage":null,"size":683,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2"},"html":{"href":"https://github.com/RIKSOF/json-api-vc/pull/2"},"issue":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/2"},"comments":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/RIKSOF/json-api-vc/statuses/d4fe91c60a25a419495489ec547fd6c72e27c16b"}}}}
{"actor":{"display_login":"mkhurramali"}}