{"action":"created","comment":{"url":"https://api.github.com/repos/eclipse/che/pulls/comments/60362831","id":60362831,"diff_hunk":"@@ -0,0 +1,307 @@\n+/*******************************************************************************\n+ * Copyright (c) 2012-2016 Codenvy, S.A.\n+ * All rights reserved. This program and the accompanying materials\n+ * are made available under the terms of the Eclipse Public License v1.0\n+ * which accompanies this distribution, and is available at\n+ * http://www.eclipse.org/legal/epl-v10.html\n+ *\n+ * Contributors:\n+ *   Codenvy, S.A. - initial API and implementation\n+ *******************************************************************************/\n+package org.eclipse.che.api.core;\n+\n+import java.util.ArrayList;\n+import java.util.Collection;\n+import java.util.List;\n+import java.util.Optional;\n+import java.util.function.Function;\n+\n+import static com.google.common.base.Preconditions.checkArgument;\n+import static java.util.Objects.requireNonNull;\n+import static java.util.stream.Collectors.toList;\n+\n+/**\n+ * Defines paged result of data selection, it is rather dynamic data window than\n+ * regular page, as it refers to the specified selection region based on the items before\n+ * and the page size, but not on the page number and page size.\n+ *\n+ * <p>Examples:\n+ *\n+ * <p>Regular page.<br>\n+ * For page input arguments {@code skipItems = 3}, {@code pageSize = 3} and {@code totalCount = 10}\n+ * the page is normalized and will refer to the second page which is(item4, item5, item6):\n+ * <pre>\n+ *     item1.                      <- previous page start      <- first page start\n+ *     item2.\n+ *     item3.                      <- previous page end        <- first page end\n+ *     item4. <- page start\n+ *     item5.\n+ *     item6. <- page end\n+ *     item7.                      <- next page start\n+ *     item8.\n+ *     item9.                      <- next page end\n+ *     item.10                                                  <- last page start/end\n+ * </pre>\n+ *\n+ * <ul>Result page:\n+ * <li>Non-empty</li>\n+ * <li>Contains 3 items(item4, item5, item6)</li>\n+ * <li>Has the previous page(item1, item2, item3)\n+ * <li>Has the next page(item7, item8, item9)</li>\n+ * </ul>\n+ *\n+ *\n+ * <p>Data window.<br>\n+ * For page input arguments {@code skipItems = 2}, {@code pageSize = 3} and {@code totalCount = 7}\n+ * the page will refer to the following data window:\n+ * <pre>\n+ *     item1.                   <- first page start\n+ *     item2.\n+ *     item3. <- page start     <- first page end\n+ *     item4.\n+ *     item5. <- page end\n+ *     item6.\n+ *     item7.                    <- last page start/end\n+ * </pre>\n+ *\n+ * <ul>Result page:\n+ * <li>Non-empty</li>\n+ * <li>Contains 3 items(item3, item4, item5)</li>\n+ * <li>Doesn't have the previous page(because page refers to the elements which\n+ * are partially present in the first page(item3) and the second page(item4, item5)</li>\n+ * <li>Doesn't have the next page(the reason is the same to previous statement)</li>\n+ * </ul>\n+ *\n+ * <p>Note that all {@code Page} instances perform reference\n+ * calculations based on the given {@code itemsBefore} and {@code pageSize}\n+ * values which means that implementor is responsible for providing correct bounds\n+ * and data management.\n+ *\n+ * <p>The instances of this class are <b>NOT thread safe</b>.\n+ *\n+ * @param <ITEM_T>\n+ *         the type of the page items\n+ * @author Yevhenii Voevodin\n+ */\n+public class Page<ITEM_T> {\n+\n+    private final int          pageSize;\n+    private final long         itemsBefore;\n+    private final long         totalCount;\n+    private final List<ITEM_T> items;\n+\n+    /**\n+     * Creates a new page.\n+     *\n+     * @param items\n+     *         page items\n+     * @param itemsBefore\n+     *         items count before this page\n+     * @param pageSize\n+     *         page size\n+     * @param totalCount\n+     *         count of all the items\n+     * @throws NullPointerException\n+     *         when {@code items} collection is null\n+     * @throws IllegalArgumentException\n+     *         when {@code itemsBefore} is negative\n+     * @throws IllegalArgumentException\n+     *         when {@code pageSize} is non-positive\n+     * @throws IllegalArgumentException\n+     *         when {@code totalCount} is negative\n+     */\n+    public Page(Collection<? extends ITEM_T> items, long itemsBefore, int pageSize, long totalCount) {\n+        this.items = new ArrayList<>(requireNonNull(items, \"Required non-null items\"));\n+        checkArgument(itemsBefore >= 0, \"Required non-negative value of items before\");\n+        this.itemsBefore = itemsBefore;\n+        checkArgument(pageSize > 0, \"Required positive value of page size\");\n+        this.pageSize = pageSize;\n+        checkArgument(totalCount >= 0, \"Required non-negative value of total items\");\n+        this.totalCount = totalCount;\n+    }\n+\n+    /** Returns true whether this page doesn't contain items, returns false if it does. */\n+    public boolean isEmpty() {\n+        return items.isEmpty();\n+    }\n+\n+    /**\n+     * Returns true when the current page has the next page,\n+     * otherwise when the page is the last page false will be returned.\n+     */\n+    public boolean hasNextPage() {\n+        return getNumber() != -1 && itemsBefore + pageSize < totalCount;\n+    }\n+\n+    /**\n+     * Returns true when this page has the previous page,\n+     * otherwise when the page is the first page false will be returned.\n+     */\n+    public boolean hasPreviousPage() {\n+        return getNumber() != -1 && itemsBefore != 0;\n+    }\n+\n+    /**\n+     * Returns an {@link Optional} describing reference to the next page,\n+     * or the empty {@code Optional} when this page is the first one.\n+     */\n+    public Optional<PageRef> getNextPageRef() {\n+        if (!hasNextPage()) {\n+            return Optional.empty();\n+        }\n+        return Optional.of(new PageRef(itemsBefore + pageSize, pageSize));\n+    }\n+\n+    /**\n+     * Returns an {@link Optional} describing reference to the previous page,\n+     * or the empty {@code Optional} when this page is the last one.\n+     */\n+    public Optional<PageRef> getPreviousPageRef() {\n+        if (!hasPreviousPage()) {\n+            return Optional.empty();\n+        }\n+        final long skipItems = itemsBefore <= pageSize ? 0 : itemsBefore - pageSize;\n+        return Optional.of(new PageRef(skipItems, pageSize));\n+    }\n+\n+    /** Returns the reference to the last page. */\n+    public PageRef getLastPageRef() {\n+        final long lastPageItems = totalCount % pageSize;\n+        if (lastPageItems == 0) {\n+            return new PageRef(totalCount <= pageSize ? 0 : totalCount - pageSize, pageSize);\n+        }\n+        return new PageRef(totalCount - lastPageItems, pageSize);\n+    }\n+\n+    /** Returns the reference to the first page. */\n+    public PageRef getFirstPageRef() {\n+        return new PageRef(0, pageSize);\n+    }\n+\n+    /**\n+     * Returns the size of the current page.\n+     *\n+     * <p>Returned value is always positive and greater or equal\n+     * to the value returned by the {@link #getItemsCount()} method.\n+     */\n+    public int getSize() {\n+        return pageSize;\n+    }\n+\n+    /**\n+     * Returns page number starting from 1.\n+     *\n+     * <p>If the page is not regular page(it refers rather to the\n+     * data window than to the certain page(e.g. skip=2, pageSize=4))\n+     * then this method returns -1.\n+     */\n+    public long getNumber() {\n+        if (itemsBefore % pageSize != 0) {\n+            return -1;\n+        }\n+        return itemsBefore / pageSize + 1;\n+    }\n+\n+    /**\n+     * Returns the size of the page items, returned value\n+     * may be equal to 0 when the page {@link #isEmpty() is empty},\n+     * the values is the same to {@code page.getItems().size()}.\n+     */\n+    public int getItemsCount() {\n+        return items.size();\n+    }\n+\n+    /** Returns the count of all the items. */\n+    public long getTotalItemsCount() {\n+        return totalCount;\n+    }\n+\n+    /**\n+     * Returns page items or an empty list when page doesn't contain items.\n+     *\n+     * <p>Note that returned instance is modifiable list and modification applied\n+     * on that list will affect the origin page result items, which allows\n+     * components to modify items before propagating page.\n+     */\n+    public List<ITEM_T> getItems() {\n+        return items;\n+    }\n+\n+    /**\n+     * Gets the page items and maps them with given {@code mapper}.\n+     *\n+     * @param mapper\n+     *         items mapper\n+     * @param <R>\n+     *         the type of the result items\n+     * @return the list of mapped items\n+     */\n+    public <R> List<R> getItems(Function<? super ITEM_T, ? extends R> mapper) {\n+        return items.stream()\n+                    .map(mapper::apply)\n+                    .collect(toList());\n+    }\n+\n+    /**\n+     * Fills the given collection with page items.\n+     * This method may be convenient when needed collection\n+     * different from the {@link List}.\n+     *\n+     * <p>The common example:\n+     * <pre>{@code\n+     *      Set<User> user = page.fill(new TreeSet<>(comparator));\n+     * }</pre>\n+     *\n+     * @param container\n+     *         collection which is used to fill result into\n+     * @param <COL_T>\n+     *         collection type\n+     * @return given collection instance {@code container} with items filled\n+     * @throws NullPointerException\n+     *         when {@code container} is null\n+     */\n+    public <COL_T extends Collection<? super ITEM_T>> COL_T fill(COL_T container) {","path":"core/che-core-api-core/src/main/java/org/eclipse/che/api/core/Page.java","position":263,"original_position":263,"commit_id":"efbcaa1d3212f503ab5c4fe83baa6139e7dedfbb","original_commit_id":"efbcaa1d3212f503ab5c4fe83baa6139e7dedfbb","user":{"login":"akorneta","id":12269156,"avatar_url":"https://avatars.githubusercontent.com/u/12269156?v=3","gravatar_id":"","url":"https://api.github.com/users/akorneta","html_url":"https://github.com/akorneta","followers_url":"https://api.github.com/users/akorneta/followers","following_url":"https://api.github.com/users/akorneta/following{/other_user}","gists_url":"https://api.github.com/users/akorneta/gists{/gist_id}","starred_url":"https://api.github.com/users/akorneta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akorneta/subscriptions","organizations_url":"https://api.github.com/users/akorneta/orgs","repos_url":"https://api.github.com/users/akorneta/repos","events_url":"https://api.github.com/users/akorneta/events{/privacy}","received_events_url":"https://api.github.com/users/akorneta/received_events","type":"User","site_admin":false},"body":"we should document the case when immutable collections are as argument","created_at":"2016-04-20T07:42:46Z","updated_at":"2016-04-20T07:42:46Z","html_url":"https://github.com/eclipse/che/pull/1085#discussion_r60362831","pull_request_url":"https://api.github.com/repos/eclipse/che/pulls/1085","_links":{"self":{"href":"https://api.github.com/repos/eclipse/che/pulls/comments/60362831"},"html":{"href":"https://github.com/eclipse/che/pull/1085#discussion_r60362831"},"pull_request":{"href":"https://api.github.com/repos/eclipse/che/pulls/1085"}}},"pull_request":{"url":"https://api.github.com/repos/eclipse/che/pulls/1085","id":67040912,"html_url":"https://github.com/eclipse/che/pull/1085","diff_url":"https://github.com/eclipse/che/pull/1085.diff","patch_url":"https://github.com/eclipse/che/pull/1085.patch","issue_url":"https://api.github.com/repos/eclipse/che/issues/1085","number":1085,"state":"open","locked":false,"title":"CHE-243: Add paging support","user":{"login":"evoevodin","id":4053805,"avatar_url":"https://avatars.githubusercontent.com/u/4053805?v=3","gravatar_id":"","url":"https://api.github.com/users/evoevodin","html_url":"https://github.com/evoevodin","followers_url":"https://api.github.com/users/evoevodin/followers","following_url":"https://api.github.com/users/evoevodin/following{/other_user}","gists_url":"https://api.github.com/users/evoevodin/gists{/gist_id}","starred_url":"https://api.github.com/users/evoevodin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evoevodin/subscriptions","organizations_url":"https://api.github.com/users/evoevodin/orgs","repos_url":"https://api.github.com/users/evoevodin/repos","events_url":"https://api.github.com/users/evoevodin/events{/privacy}","received_events_url":"https://api.github.com/users/evoevodin/received_events","type":"User","site_admin":false},"body":"Add `Page` object + util methods for managing _Link_ header.\r\n\r\n@skabashnyuk, @akorneta, @garagatyi please review","created_at":"2016-04-19T15:37:50Z","updated_at":"2016-04-20T07:42:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"58c25d6cdcc062d5013109c10e1f59daa69b5907","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/eclipse/che/pulls/1085/commits","review_comments_url":"https://api.github.com/repos/eclipse/che/pulls/1085/comments","review_comment_url":"https://api.github.com/repos/eclipse/che/pulls/comments{/number}","comments_url":"https://api.github.com/repos/eclipse/che/issues/1085/comments","statuses_url":"https://api.github.com/repos/eclipse/che/statuses/efbcaa1d3212f503ab5c4fe83baa6139e7dedfbb","head":{"label":"eclipse:CHE-243","ref":"CHE-243","sha":"efbcaa1d3212f503ab5c4fe83baa6139e7dedfbb","user":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"repo":{"id":32935745,"name":"che","full_name":"eclipse/che","owner":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/eclipse/che","description":"Eclipse Che: Next-generation Eclipse IDE.  Open source workspace server and cloud IDE.","fork":false,"url":"https://api.github.com/repos/eclipse/che","forks_url":"https://api.github.com/repos/eclipse/che/forks","keys_url":"https://api.github.com/repos/eclipse/che/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eclipse/che/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eclipse/che/teams","hooks_url":"https://api.github.com/repos/eclipse/che/hooks","issue_events_url":"https://api.github.com/repos/eclipse/che/issues/events{/number}","events_url":"https://api.github.com/repos/eclipse/che/events","assignees_url":"https://api.github.com/repos/eclipse/che/assignees{/user}","branches_url":"https://api.github.com/repos/eclipse/che/branches{/branch}","tags_url":"https://api.github.com/repos/eclipse/che/tags","blobs_url":"https://api.github.com/repos/eclipse/che/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eclipse/che/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eclipse/che/git/refs{/sha}","trees_url":"https://api.github.com/repos/eclipse/che/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eclipse/che/statuses/{sha}","languages_url":"https://api.github.com/repos/eclipse/che/languages","stargazers_url":"https://api.github.com/repos/eclipse/che/stargazers","contributors_url":"https://api.github.com/repos/eclipse/che/contributors","subscribers_url":"https://api.github.com/repos/eclipse/che/subscribers","subscription_url":"https://api.github.com/repos/eclipse/che/subscription","commits_url":"https://api.github.com/repos/eclipse/che/commits{/sha}","git_commits_url":"https://api.github.com/repos/eclipse/che/git/commits{/sha}","comments_url":"https://api.github.com/repos/eclipse/che/comments{/number}","issue_comment_url":"https://api.github.com/repos/eclipse/che/issues/comments{/number}","contents_url":"https://api.github.com/repos/eclipse/che/contents/{+path}","compare_url":"https://api.github.com/repos/eclipse/che/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eclipse/che/merges","archive_url":"https://api.github.com/repos/eclipse/che/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eclipse/che/downloads","issues_url":"https://api.github.com/repos/eclipse/che/issues{/number}","pulls_url":"https://api.github.com/repos/eclipse/che/pulls{/number}","milestones_url":"https://api.github.com/repos/eclipse/che/milestones{/number}","notifications_url":"https://api.github.com/repos/eclipse/che/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eclipse/che/labels{/name}","releases_url":"https://api.github.com/repos/eclipse/che/releases{/id}","deployments_url":"https://api.github.com/repos/eclipse/che/deployments","created_at":"2015-03-26T15:31:01Z","updated_at":"2016-04-19T14:22:27Z","pushed_at":"2016-04-20T07:21:56Z","git_url":"git://github.com/eclipse/che.git","ssh_url":"git@github.com:eclipse/che.git","clone_url":"https://github.com/eclipse/che.git","svn_url":"https://github.com/eclipse/che","homepage":"http://eclipse.org/che","size":26308,"stargazers_count":2756,"watchers_count":2756,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":377,"mirror_url":null,"open_issues_count":97,"forks":377,"open_issues":97,"watchers":2756,"default_branch":"master"}},"base":{"label":"eclipse:master","ref":"master","sha":"41725c50eb032f1b4d9b1f3ae6062d6e4a3794f7","user":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"repo":{"id":32935745,"name":"che","full_name":"eclipse/che","owner":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/eclipse/che","description":"Eclipse Che: Next-generation Eclipse IDE.  Open source workspace server and cloud IDE.","fork":false,"url":"https://api.github.com/repos/eclipse/che","forks_url":"https://api.github.com/repos/eclipse/che/forks","keys_url":"https://api.github.com/repos/eclipse/che/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eclipse/che/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eclipse/che/teams","hooks_url":"https://api.github.com/repos/eclipse/che/hooks","issue_events_url":"https://api.github.com/repos/eclipse/che/issues/events{/number}","events_url":"https://api.github.com/repos/eclipse/che/events","assignees_url":"https://api.github.com/repos/eclipse/che/assignees{/user}","branches_url":"https://api.github.com/repos/eclipse/che/branches{/branch}","tags_url":"https://api.github.com/repos/eclipse/che/tags","blobs_url":"https://api.github.com/repos/eclipse/che/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eclipse/che/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eclipse/che/git/refs{/sha}","trees_url":"https://api.github.com/repos/eclipse/che/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eclipse/che/statuses/{sha}","languages_url":"https://api.github.com/repos/eclipse/che/languages","stargazers_url":"https://api.github.com/repos/eclipse/che/stargazers","contributors_url":"https://api.github.com/repos/eclipse/che/contributors","subscribers_url":"https://api.github.com/repos/eclipse/che/subscribers","subscription_url":"https://api.github.com/repos/eclipse/che/subscription","commits_url":"https://api.github.com/repos/eclipse/che/commits{/sha}","git_commits_url":"https://api.github.com/repos/eclipse/che/git/commits{/sha}","comments_url":"https://api.github.com/repos/eclipse/che/comments{/number}","issue_comment_url":"https://api.github.com/repos/eclipse/che/issues/comments{/number}","contents_url":"https://api.github.com/repos/eclipse/che/contents/{+path}","compare_url":"https://api.github.com/repos/eclipse/che/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eclipse/che/merges","archive_url":"https://api.github.com/repos/eclipse/che/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eclipse/che/downloads","issues_url":"https://api.github.com/repos/eclipse/che/issues{/number}","pulls_url":"https://api.github.com/repos/eclipse/che/pulls{/number}","milestones_url":"https://api.github.com/repos/eclipse/che/milestones{/number}","notifications_url":"https://api.github.com/repos/eclipse/che/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eclipse/che/labels{/name}","releases_url":"https://api.github.com/repos/eclipse/che/releases{/id}","deployments_url":"https://api.github.com/repos/eclipse/che/deployments","created_at":"2015-03-26T15:31:01Z","updated_at":"2016-04-19T14:22:27Z","pushed_at":"2016-04-20T07:21:56Z","git_url":"git://github.com/eclipse/che.git","ssh_url":"git@github.com:eclipse/che.git","clone_url":"https://github.com/eclipse/che.git","svn_url":"https://github.com/eclipse/che","homepage":"http://eclipse.org/che","size":26308,"stargazers_count":2756,"watchers_count":2756,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":377,"mirror_url":null,"open_issues_count":97,"forks":377,"open_issues":97,"watchers":2756,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/eclipse/che/pulls/1085"},"html":{"href":"https://github.com/eclipse/che/pull/1085"},"issue":{"href":"https://api.github.com/repos/eclipse/che/issues/1085"},"comments":{"href":"https://api.github.com/repos/eclipse/che/issues/1085/comments"},"review_comments":{"href":"https://api.github.com/repos/eclipse/che/pulls/1085/comments"},"review_comment":{"href":"https://api.github.com/repos/eclipse/che/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/eclipse/che/pulls/1085/commits"},"statuses":{"href":"https://api.github.com/repos/eclipse/che/statuses/efbcaa1d3212f503ab5c4fe83baa6139e7dedfbb"}}}}