{"action":"created","comment":{"url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/comments/45897677","id":45897677,"diff_hunk":"@@ -72,6 +72,211 @@ CKEDITOR.define( [ 'document/positioniterator', 'document/position' ], ( Positio\n \t\t}\n \n \t\t/**\n+\t\t * Checks whether this {document.Range range} intersects with the given {document.Range range}.\n+\t\t *\n+\t\t * @param {document.Range} otherRange Range to check.\n+\t\t * @returns {boolean} True if ranges intersect.\n+\t\t */\n+\t\tintersectsWith( otherRange ) {\n+\t\t\tconst isBefore = this.start.compareWith( otherRange.start ) == Position.BEFORE &&\n+\t\t\t\tthis.end.compareWith( otherRange.start ) == Position.BEFORE;\n+\n+\t\t\tconst isAfter = this.start.compareWith( otherRange.end ) == Position.AFTER &&\n+\t\t\t\tthis.end.compareWith( otherRange.end ) == Position.AFTER;\n+\n+\t\t\tconst touches = this.start.isEqual( otherRange.end ) || this.end.isEqual( otherRange.start );\n+\n+\t\t\treturn !isBefore && !isAfter && !touches;\n+\t\t}\n+\n+\t\t/**\n+\t\t * Creates and returns a new instance of {@link document.Range}\n+\t\t * that is equal to this {@link document.Range range}.\n+\t\t *\n+\t\t * @returns {document.Position} Cloned {@link document.Range range}.\n+\t\t */\n+\t\tclone() {\n+\t\t\treturn new Range( this.start.clone(), this.end.clone() );\n+\t\t}\n+\n+\t\t/**\n+\t\t * Checks whether this {document.Range range} contains given (document.Position position}.\n+\t\t *\n+\t\t * @param {document.Position} position Position to check.\n+\t\t * @returns {boolean} True if given {document.Position position} is contained.\n+\t\t */\n+\t\tcontainsPosition( position ) {\n+\t\t\treturn position.compareWith( this.start ) == Position.AFTER && position.compareWith( this.end ) == Position.BEFORE;\n+\t\t}\n+\n+\t\t/**\n+\t\t * Returns an array containing one or two {document.Range ranges} that are results of transforming this\n+\t\t * {document.Range range} by inserting `howMany` nodes at `insertPosition`. Two {document.Range ranges} are\n+\t\t * returned if the insertion was inside this {document.Range range}.\n+\t\t *\n+\t\t * Examples:\n+\t\t * \tlet range = new Range( new Position( [ 2, 7 ], root ), new Position( [ 4, 0, 1 ], root ) );\n+\t\t * \tlet transformed = range.getTransformedByInsertion( new Position( [ 1 ], root ), 2 );\n+\t\t * \t// transformed array has one range from [ 4, 7 ] to [ 6, 0, 1 ]\n+\t\t *\n+\t\t * \ttransformed = range.getTransformedByInsertion( new Position( [ 3, 2 ], root ), 4 );\n+\t\t * \t// transformed array has two ranges: from [ 2, 7 ] to [ 3, 2 ] and from [ 3, 6 ] to [ 4, 0, 1 ]\n+\t\t *\n+\t\t * \ttransformed = range.getTransformedByInsertion( new Position( [ 3, 2 ], root ), 4, true );\n+\t\t * \t// transformed array has one range which is equal to `range`. This is because of spreadOnlyOnSameLevel flag.\n+\t\t *\n+\t\t * @param {document.Position} insertPosition Position where nodes are inserted.\n+\t\t * @param {Number} howMany How many nodes are inserted.\n+\t\t * @param {Boolean} spreadOnlyOnSameLevel Flag indicating whether this {document.Range range} should be spread\n+\t\t * if insertion was inside a node from this {document.Range range} but not in the range itself.\n+\t\t * @returns {Array.<document.Range>} Result of the transformation.\n+\t\t */\n+\t\tgetTransformedByInsertion( insertPosition, howMany, spreadOnlyOnSameLevel ) {\n+\t\t\t// Flag indicating whether this whole range and given insertPosition is on the same tree level.\n+\t\t\tconst areOnSameLevel = utils.compareArrays( this.start.parentPath, this.end.parentPath ) == utils.compareArrays.SAME &&\n+\t\t\t\tutils.compareArrays( this.start.parentPath, insertPosition.parentPath ) == utils.compareArrays.SAME;\n+\n+\t\t\tif ( this.containsPosition( insertPosition ) && ( !spreadOnlyOnSameLevel || areOnSameLevel ) ) {\n+\t\t\t\t// Range has to be spread. The first part is from original start to the spread point.\n+\t\t\t\t// The other part is from spread point to the original end, but transformed by\n+\t\t\t\t// insertion to reflect insertion changes.\n+\n+\t\t\t\treturn [\n+\t\t\t\t\tnew Range(\n+\t\t\t\t\t\tinsertPosition.getTransformedByInsertion( insertPosition, howMany, true ),\n+\t\t\t\t\t\tthis.end.getTransformedByInsertion( insertPosition, howMany, true )\n+\t\t\t\t\t),\n+\t\t\t\t\tnew Range(\n+\t\t\t\t\t\tthis.start.clone(),\n+\t\t\t\t\t\tinsertPosition.clone()\n+\t\t\t\t\t)\n+\t\t\t\t];\n+\t\t\t} else {\n+\t\t\t\t// If insertion is not inside the range, simply transform range boundaries (positions) by the insertion.\n+\t\t\t\t// Both, one or none of them might be affected by the insertion.\n+\n+\t\t\t\tconst range = this.clone();\n+\n+\t\t\t\trange.start = range.start.getTransformedByInsertion( insertPosition, howMany, true );\n+\t\t\t\trange.end = range.end.getTransformedByInsertion( insertPosition, howMany, false );\n+\n+\t\t\t\treturn [ range ];\n+\t\t\t}\n+\t\t}\n+\n+\t\t/**\n+\t\t * Gets a part of this {document.Range range} that is not a part of given {document.Range range}. Returned\n+\t\t * array contains zero, one or two {document.Range ranges}.\n+\t\t *\n+\t\t * Examples:\n+\t\t * \tlet range = new Range( new Position( [ 2, 7 ], root ), new Position( [ 4, 0, 1 ], root ) );\n+\t\t * \tlet otherRange = new Range( new Position( [ 1 ], root ), new Position( [ 5 ], root ) );\n+\t\t * \tlet transformed = range.getDifference( otherRange );\n+\t\t * \t// transformed array has no ranges because `otherRange` contains `range`\n+\t\t *\n+\t\t * \totherRange = new Range( new Position( [ 1 ], root ), new Position( [ 3 ], root ) );\n+\t\t * \ttransformed = range.getDifference( otherRange );\n+\t\t * \t// transformed array has one range: from [ 3 ] to [ 4, 0, 1 ]\n+\t\t *\n+\t\t * \totherRange = new Range( new Position( [ 3 ], root ), new Position( [ 4 ], root ) );\n+\t\t * \ttransformed = range.getDifference( otherRange );\n+\t\t * \t// transformed array has two ranges: from [ 2, 7 ] to [ 3 ] and from [ 4 ] to [ 4, 0, 1 ]\n+\t\t *\n+\t\t * @param {document.Range} otherRange Range to differentiate against.\n+\t\t * @returns {Array.<document.Range>} The difference between ranges.\n+\t\t */\n+\t\tgetDifference( otherRange ) {\n+\t\t\t// If ranges do not intersect, return the original range.\n+\t\t\tif ( !otherRange.intersectsWith( this ) ) {\n+\t\t\t\treturn [\n+\t\t\t\t\tthis.clone()\n+\t\t\t\t];\n+\t\t\t}\n+\n+\t\t\t// At this point we know that ranges intersect but given range does not contain this range.\n+\t\t\tconst ranges = [];\n+\n+\t\t\tif ( this.containsPosition( otherRange.start ) ) {\n+\t\t\t\t// Given range start is inside this range. This means that we have to\n+\t\t\t\t// add shrunken range - from the start to the middle of this range.\n+\t\t\t\tranges.push(\n+\t\t\t\t\tnew Range(\n+\t\t\t\t\t\tthis.start.clone(),\n+\t\t\t\t\t\totherRange.start.clone()\n+\t\t\t\t\t)\n+\t\t\t\t);\n+\t\t\t}\n+\n+\t\t\tif ( this.containsPosition( otherRange.end ) ) {\n+\t\t\t\t// Given range end is inside this range. This means that we have to\n+\t\t\t\t// add shrunken range - from the middle of this range to the end.\n+\t\t\t\tranges.push(\n+\t\t\t\t\tnew Range(\n+\t\t\t\t\t\totherRange.end.clone(),\n+\t\t\t\t\t\tthis.end.clone()\n+\t\t\t\t\t)\n+\t\t\t\t);\n+\t\t\t}\n+\n+\t\t\treturn ranges;\n+\t\t}\n+\n+\t\t/**\n+\t\t * Returns a part of this {document.Range range} that is also a part of given {document.Range range}. If\n+\t\t * ranges has no common part, returns null.\n+\t\t *\n+\t\t * Examples:\n+\t\t * \tlet range = new Range( new Position( [ 2, 7 ], root ), new Position( [ 4, 0, 1 ], root ) );\n+\t\t * \tlet otherRange = new Range( new Position( [ 1 ], root ), new Position( [ 2 ], root ) );\n+\t\t * \tlet transformed = range.getCommon( otherRange ); // null - ranges have no common part\n+\t\t *\n+\t\t * \totherRange = new Range( new Position( [ 3 ], root ), new Position( [ 5 ], root ) );\n+\t\t * \ttransformed = range.getCommon( otherRange ); // range from [ 3 ] to [ 4, 0, 1 ]\n+\t\t *\n+\t\t * @param {document.Range} otherRange Range to compare with.\n+\t\t * @returns {document.Range} Range that is common part of given ranges.\n+\t\t */\n+\t\tgetCommon( otherRange ) {","path":"src/document/range.js","position":177,"original_position":177,"commit_id":"4b940b171a4b1b7029a1d1b50ff733e74dffc5c5","original_commit_id":"4b940b171a4b1b7029a1d1b50ff733e74dffc5c5","user":{"login":"pjasiun","id":1166967,"avatar_url":"https://avatars.githubusercontent.com/u/1166967?v=3","gravatar_id":"","url":"https://api.github.com/users/pjasiun","html_url":"https://github.com/pjasiun","followers_url":"https://api.github.com/users/pjasiun/followers","following_url":"https://api.github.com/users/pjasiun/following{/other_user}","gists_url":"https://api.github.com/users/pjasiun/gists{/gist_id}","starred_url":"https://api.github.com/users/pjasiun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjasiun/subscriptions","organizations_url":"https://api.github.com/users/pjasiun/orgs","repos_url":"https://api.github.com/users/pjasiun/repos","events_url":"https://api.github.com/users/pjasiun/events{/privacy}","received_events_url":"https://api.github.com/users/pjasiun/received_events","type":"User","site_admin":false},"body":"`getCommon` should be renamed to `getIntersection`.","created_at":"2015-11-25T17:48:03Z","updated_at":"2015-11-25T17:48:03Z","html_url":"https://github.com/ckeditor/ckeditor5-core/pull/90#discussion_r45897677","pull_request_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90","_links":{"self":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/comments/45897677"},"html":{"href":"https://github.com/ckeditor/ckeditor5-core/pull/90#discussion_r45897677"},"pull_request":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90"}}},"pull_request":{"url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90","id":51797031,"html_url":"https://github.com/ckeditor/ckeditor5-core/pull/90","diff_url":"https://github.com/ckeditor/ckeditor5-core/pull/90.diff","patch_url":"https://github.com/ckeditor/ckeditor5-core/pull/90.patch","issue_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/90","number":90,"state":"open","locked":false,"title":"T/59: OT for Tree Model","user":{"login":"scofalik","id":1502228,"avatar_url":"https://avatars.githubusercontent.com/u/1502228?v=3","gravatar_id":"","url":"https://api.github.com/users/scofalik","html_url":"https://github.com/scofalik","followers_url":"https://api.github.com/users/scofalik/followers","following_url":"https://api.github.com/users/scofalik/following{/other_user}","gists_url":"https://api.github.com/users/scofalik/gists{/gist_id}","starred_url":"https://api.github.com/users/scofalik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scofalik/subscriptions","organizations_url":"https://api.github.com/users/scofalik/orgs","repos_url":"https://api.github.com/users/scofalik/repos","events_url":"https://api.github.com/users/scofalik/events{/privacy}","received_events_url":"https://api.github.com/users/scofalik/received_events","type":"User","site_admin":false},"body":"Fixex #59.","created_at":"2015-11-25T13:58:30Z","updated_at":"2015-11-25T17:48:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"41b7ce721c47b6563760887f5e1a59c68cda33a0","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90/commits","review_comments_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90/comments","review_comment_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/90/comments","statuses_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/statuses/4b940b171a4b1b7029a1d1b50ff733e74dffc5c5","head":{"label":"ckeditor:t/59-r","ref":"t/59-r","sha":"4b940b171a4b1b7029a1d1b50ff733e74dffc5c5","user":{"login":"ckeditor","id":825710,"avatar_url":"https://avatars.githubusercontent.com/u/825710?v=3","gravatar_id":"","url":"https://api.github.com/users/ckeditor","html_url":"https://github.com/ckeditor","followers_url":"https://api.github.com/users/ckeditor/followers","following_url":"https://api.github.com/users/ckeditor/following{/other_user}","gists_url":"https://api.github.com/users/ckeditor/gists{/gist_id}","starred_url":"https://api.github.com/users/ckeditor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckeditor/subscriptions","organizations_url":"https://api.github.com/users/ckeditor/orgs","repos_url":"https://api.github.com/users/ckeditor/repos","events_url":"https://api.github.com/users/ckeditor/events{/privacy}","received_events_url":"https://api.github.com/users/ckeditor/received_events","type":"Organization","site_admin":false},"repo":{"id":28972890,"name":"ckeditor5-core","full_name":"ckeditor/ckeditor5-core","owner":{"login":"ckeditor","id":825710,"avatar_url":"https://avatars.githubusercontent.com/u/825710?v=3","gravatar_id":"","url":"https://api.github.com/users/ckeditor","html_url":"https://github.com/ckeditor","followers_url":"https://api.github.com/users/ckeditor/followers","following_url":"https://api.github.com/users/ckeditor/following{/other_user}","gists_url":"https://api.github.com/users/ckeditor/gists{/gist_id}","starred_url":"https://api.github.com/users/ckeditor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckeditor/subscriptions","organizations_url":"https://api.github.com/users/ckeditor/orgs","repos_url":"https://api.github.com/users/ckeditor/repos","events_url":"https://api.github.com/users/ckeditor/events{/privacy}","received_events_url":"https://api.github.com/users/ckeditor/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ckeditor/ckeditor5-core","description":"CKEditor 5 Core Framework.","fork":false,"url":"https://api.github.com/repos/ckeditor/ckeditor5-core","forks_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/forks","keys_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/teams","hooks_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/hooks","issue_events_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/events{/number}","events_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/events","assignees_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/assignees{/user}","branches_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/branches{/branch}","tags_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/tags","blobs_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/statuses/{sha}","languages_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/languages","stargazers_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/stargazers","contributors_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/contributors","subscribers_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/subscribers","subscription_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/subscription","commits_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/contents/{+path}","compare_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/merges","archive_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/downloads","issues_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues{/number}","pulls_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls{/number}","milestones_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/milestones{/number}","notifications_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/labels{/name}","releases_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/releases{/id}","created_at":"2015-01-08T15:47:45Z","updated_at":"2015-11-13T07:04:45Z","pushed_at":"2015-11-25T16:03:52Z","git_url":"git://github.com/ckeditor/ckeditor5-core.git","ssh_url":"git@github.com:ckeditor/ckeditor5-core.git","clone_url":"https://github.com/ckeditor/ckeditor5-core.git","svn_url":"https://github.com/ckeditor/ckeditor5-core","homepage":null,"size":628,"stargazers_count":14,"watchers_count":14,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":31,"forks":13,"open_issues":31,"watchers":14,"default_branch":"master"}},"base":{"label":"ckeditor:master","ref":"master","sha":"4a65843f5d145bd344edb00f4b73ea02850c7344","user":{"login":"ckeditor","id":825710,"avatar_url":"https://avatars.githubusercontent.com/u/825710?v=3","gravatar_id":"","url":"https://api.github.com/users/ckeditor","html_url":"https://github.com/ckeditor","followers_url":"https://api.github.com/users/ckeditor/followers","following_url":"https://api.github.com/users/ckeditor/following{/other_user}","gists_url":"https://api.github.com/users/ckeditor/gists{/gist_id}","starred_url":"https://api.github.com/users/ckeditor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckeditor/subscriptions","organizations_url":"https://api.github.com/users/ckeditor/orgs","repos_url":"https://api.github.com/users/ckeditor/repos","events_url":"https://api.github.com/users/ckeditor/events{/privacy}","received_events_url":"https://api.github.com/users/ckeditor/received_events","type":"Organization","site_admin":false},"repo":{"id":28972890,"name":"ckeditor5-core","full_name":"ckeditor/ckeditor5-core","owner":{"login":"ckeditor","id":825710,"avatar_url":"https://avatars.githubusercontent.com/u/825710?v=3","gravatar_id":"","url":"https://api.github.com/users/ckeditor","html_url":"https://github.com/ckeditor","followers_url":"https://api.github.com/users/ckeditor/followers","following_url":"https://api.github.com/users/ckeditor/following{/other_user}","gists_url":"https://api.github.com/users/ckeditor/gists{/gist_id}","starred_url":"https://api.github.com/users/ckeditor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckeditor/subscriptions","organizations_url":"https://api.github.com/users/ckeditor/orgs","repos_url":"https://api.github.com/users/ckeditor/repos","events_url":"https://api.github.com/users/ckeditor/events{/privacy}","received_events_url":"https://api.github.com/users/ckeditor/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ckeditor/ckeditor5-core","description":"CKEditor 5 Core Framework.","fork":false,"url":"https://api.github.com/repos/ckeditor/ckeditor5-core","forks_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/forks","keys_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/teams","hooks_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/hooks","issue_events_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/events{/number}","events_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/events","assignees_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/assignees{/user}","branches_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/branches{/branch}","tags_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/tags","blobs_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/statuses/{sha}","languages_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/languages","stargazers_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/stargazers","contributors_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/contributors","subscribers_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/subscribers","subscription_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/subscription","commits_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/contents/{+path}","compare_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/merges","archive_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/downloads","issues_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues{/number}","pulls_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls{/number}","milestones_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/milestones{/number}","notifications_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/labels{/name}","releases_url":"https://api.github.com/repos/ckeditor/ckeditor5-core/releases{/id}","created_at":"2015-01-08T15:47:45Z","updated_at":"2015-11-13T07:04:45Z","pushed_at":"2015-11-25T16:03:52Z","git_url":"git://github.com/ckeditor/ckeditor5-core.git","ssh_url":"git@github.com:ckeditor/ckeditor5-core.git","clone_url":"https://github.com/ckeditor/ckeditor5-core.git","svn_url":"https://github.com/ckeditor/ckeditor5-core","homepage":null,"size":628,"stargazers_count":14,"watchers_count":14,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":31,"forks":13,"open_issues":31,"watchers":14,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90"},"html":{"href":"https://github.com/ckeditor/ckeditor5-core/pull/90"},"issue":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/90"},"comments":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/issues/90/comments"},"review_comments":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90/comments"},"review_comment":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/pulls/90/commits"},"statuses":{"href":"https://api.github.com/repos/ckeditor/ckeditor5-core/statuses/4b940b171a4b1b7029a1d1b50ff733e74dffc5c5"}}}}