{"action":"created","comment":{"url":"https://api.github.com/repos/eclipse/che/pulls/comments/213143458","pull_request_review_id":149917470,"id":213143458,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMzE0MzQ1OA==","diff_hunk":"@@ -0,0 +1,197 @@\n+/*\n+ * Copyright (c) 2012-2018 Red Hat, Inc.\n+ * This program and the accompanying materials are made\n+ * available under the terms of the Eclipse Public License 2.0\n+ * which is available at https://www.eclipse.org/legal/epl-2.0/\n+ *\n+ * SPDX-License-Identifier: EPL-2.0\n+ *\n+ * Contributors:\n+ *   Red Hat, Inc. - initial API and implementation\n+ */\n+package org.eclipse.che.plugin.java.plain.server.inject;\n+\n+import static java.nio.file.Files.isDirectory;\n+import static java.util.Collections.emptyList;\n+import static java.util.Collections.singletonList;\n+import static java.util.stream.Collectors.toList;\n+import static org.eclipse.che.api.languageserver.LanguageServiceUtils.prefixURI;\n+import static org.eclipse.che.api.languageserver.LanguageServiceUtils.removePrefixUri;\n+import static org.eclipse.che.api.languageserver.LanguageServiceUtils.removeUriScheme;\n+import static org.eclipse.che.plugin.java.plain.shared.PlainJavaProjectConstants.DEFAULT_SOURCE_FOLDER_VALUE;\n+\n+import com.google.common.util.concurrent.ThreadFactoryBuilder;\n+import java.nio.file.Path;\n+import java.nio.file.PathMatcher;\n+import java.nio.file.Paths;\n+import java.util.Collections;\n+import java.util.List;\n+import java.util.concurrent.CopyOnWriteArrayList;\n+import java.util.concurrent.ExecutorService;\n+import java.util.concurrent.Executors;\n+import javax.annotation.PostConstruct;\n+import javax.annotation.PreDestroy;\n+import javax.inject.Inject;\n+import org.eclipse.che.api.core.notification.EventService;\n+import org.eclipse.che.api.languageserver.LanguageServerInitializedEvent;\n+import org.eclipse.che.api.project.server.ProjectManager;\n+import org.eclipse.che.api.project.server.notification.ProjectUpdatedEvent;\n+import org.eclipse.che.api.project.shared.RegisteredProject;\n+import org.eclipse.che.api.watcher.server.FileWatcherManager;\n+import org.eclipse.che.api.watcher.server.impl.FileWatcherByPathMatcher;\n+import org.eclipse.che.commons.lang.concurrent.LoggingUncaughtExceptionHandler;\n+import org.eclipse.che.plugin.java.languageserver.JavaLanguageServerExtensionService;\n+import org.eclipse.lsp4j.DidChangeWatchedFilesParams;\n+import org.eclipse.lsp4j.FileChangeType;\n+import org.eclipse.lsp4j.FileEvent;\n+import org.eclipse.lsp4j.services.LanguageServer;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+/**\n+ * Reports the create/update/delete changes on project source folders to jdt.ls\n+ *\n+ * @author V. Rubezhny\n+ */\n+public class PlainJavaProjectSourceFolderWatcher {\n+  private static final Logger LOG =\n+      LoggerFactory.getLogger(PlainJavaProjectSourceFolderWatcher.class);\n+\n+  private static final List<String> EMPTY_SOURCE_FOLDERS = emptyList();\n+\n+  private final FileWatcherManager manager;\n+  private final FileWatcherByPathMatcher matcher;\n+  private final EventService eventService;\n+  private final ExecutorService executorService;\n+\n+  private final CopyOnWriteArrayList<Integer> watcherIds = new CopyOnWriteArrayList<>();\n+  private final JavaLanguageServerExtensionService extensionService;\n+  private final CopyOnWriteArrayList<LanguageServer> languageServers = new CopyOnWriteArrayList<>();\n+\n+  private final ProjectManager projectManager;\n+\n+  @Inject\n+  public PlainJavaProjectSourceFolderWatcher(\n+      FileWatcherManager manager,\n+      FileWatcherByPathMatcher matcher,\n+      EventService eventService,\n+      JavaLanguageServerExtensionService extensionService,\n+      ProjectManager projectManager) {\n+    this.manager = manager;\n+    this.matcher = matcher;\n+    this.eventService = eventService;\n+    this.extensionService = extensionService;\n+    this.projectManager = projectManager;\n+    this.executorService =\n+        Executors.newSingleThreadExecutor(\n+            new ThreadFactoryBuilder()\n+                .setNameFormat(\"WorkspaceUpdater-%d\")\n+                .setUncaughtExceptionHandler(LoggingUncaughtExceptionHandler.getInstance())\n+                .setDaemon(true)\n+                .build());\n+  }\n+\n+  @PostConstruct\n+  protected void startWatchers() {\n+    int watcherId =\n+        manager.registerByMatcher(\n+            folderMatcher(),\n+            s -> report(s, FileChangeType.Created),\n+            s -> report(s, FileChangeType.Changed),\n+            s -> report(s, FileChangeType.Deleted));\n+\n+    watcherIds.add(watcherId);\n+    eventService.subscribe(this::onServerInitialized, LanguageServerInitializedEvent.class);\n+    eventService.subscribe(this::onProjectUpdated, ProjectUpdatedEvent.class);\n+  }\n+\n+  @PreDestroy\n+  public void stopWatchers() {\n+    watcherIds.stream().forEach(id -> manager.unRegisterByMatcher(id));\n+  }\n+\n+  private void onServerInitialized(LanguageServerInitializedEvent event) {\n+    LOG.debug(\n+        \"Registering source folder watching operations for language server : {}\", event.getId());\n+\n+    String id = event.getId();\n+    LanguageServer languageServer = event.getLanguageServer();\n+    languageServers.add(languageServer);\n+  }\n+\n+  private void onProjectUpdated(ProjectUpdatedEvent event) {\n+    executorService.submit(\n+        () -> {\n+          setInitialPathsToWatch(prefixURI(event.getProjectPath()));\n+        });\n+  }\n+\n+  private PathMatcher folderMatcher() {\n+    return it -> isSourceFolder(it);\n+  }\n+\n+  private void report(String path, FileChangeType changeType) {\n+    languageServers.stream().forEach(ls -> send(ls, path, changeType));\n+  }\n+\n+  private void send(LanguageServer server, String path, FileChangeType changeType) {\n+    RegisteredProject project = projectManager.getClosestOrNull(path);","path":"plugins/plugin-java/che-plugin-java-plain/che-plugin-java-plain-server/src/main/java/org/eclipse/che/plugin/java/plain/server/inject/PlainJavaProjectSourceFolderWatcher.java","position":138,"original_position":138,"commit_id":"956ad67125929ea0ccedd0af4a5ccd65b3d3b578","original_commit_id":"956ad67125929ea0ccedd0af4a5ccd65b3d3b578","user":{"login":"vrubezhny","id":620781,"node_id":"MDQ6VXNlcjYyMDc4MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/620781?v=4","gravatar_id":"","url":"https://api.github.com/users/vrubezhny","html_url":"https://github.com/vrubezhny","followers_url":"https://api.github.com/users/vrubezhny/followers","following_url":"https://api.github.com/users/vrubezhny/following{/other_user}","gists_url":"https://api.github.com/users/vrubezhny/gists{/gist_id}","starred_url":"https://api.github.com/users/vrubezhny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrubezhny/subscriptions","organizations_url":"https://api.github.com/users/vrubezhny/orgs","repos_url":"https://api.github.com/users/vrubezhny/repos","events_url":"https://api.github.com/users/vrubezhny/events{/privacy}","received_events_url":"https://api.github.com/users/vrubezhny/received_events","type":"User","site_admin":false},"body":"Not cleaned up code. sorry.","created_at":"2018-08-27T23:13:39Z","updated_at":"2018-08-27T23:13:39Z","html_url":"https://github.com/eclipse/che/pull/10893#discussion_r213143458","pull_request_url":"https://api.github.com/repos/eclipse/che/pulls/10893","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/eclipse/che/pulls/comments/213143458"},"html":{"href":"https://github.com/eclipse/che/pull/10893#discussion_r213143458"},"pull_request":{"href":"https://api.github.com/repos/eclipse/che/pulls/10893"}},"in_reply_to_id":212951873},"pull_request":{"url":"https://api.github.com/repos/eclipse/che/pulls/10893","id":210445005,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEwNDQ1MDA1","html_url":"https://github.com/eclipse/che/pull/10893","diff_url":"https://github.com/eclipse/che/pull/10893.diff","patch_url":"https://github.com/eclipse/che/pull/10893.patch","issue_url":"https://api.github.com/repos/eclipse/che/issues/10893","number":10893,"state":"open","locked":false,"title":"New folders do not register in the jdt.ls workspace #10115","user":{"login":"vrubezhny","id":620781,"node_id":"MDQ6VXNlcjYyMDc4MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/620781?v=4","gravatar_id":"","url":"https://api.github.com/users/vrubezhny","html_url":"https://github.com/vrubezhny","followers_url":"https://api.github.com/users/vrubezhny/followers","following_url":"https://api.github.com/users/vrubezhny/following{/other_user}","gists_url":"https://api.github.com/users/vrubezhny/gists{/gist_id}","starred_url":"https://api.github.com/users/vrubezhny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrubezhny/subscriptions","organizations_url":"https://api.github.com/users/vrubezhny/orgs","repos_url":"https://api.github.com/users/vrubezhny/repos","events_url":"https://api.github.com/users/vrubezhny/events{/privacy}","received_events_url":"https://api.github.com/users/vrubezhny/received_events","type":"User","site_admin":false},"body":"This adds the reporting creation/modification/deletion of source folders to jdt.ls\r\n\r\nSigned-off-by: Victor Rubezhny <vrubezhny@redhat.com>\r\n\r\n<!-- Please review the following before submitting a PR:\r\nChe's Contributing Guide: https://github.com/eclipse/che/blob/master/CONTRIBUTING.md\r\nPull Request Policy: https://github.com/eclipse/che/wiki/Development-Workflow#pull-requests\r\n\r\nCOMMITTERS: please include labels on each PR. Labels are listed here: https://github.com/eclipse/che/wiki/Labels but at a minimum you should include `kind/..` and `Dev Open Pull Request Status` labels.\r\n-->\r\n\r\n### What does this PR do?\r\n\r\nFix adds a listener for changes inside source folders (Create/Update/Delete) in order to report them to jds.ls.\r\n\r\n![ls10115-part2](https://user-images.githubusercontent.com/620781/44527230-86db2d80-a6e6-11e8-9429-c985f41da542.gif)\r\n\r\n### What issues does this PR fix or reference?\r\n\r\nFixes eclipse/che#10115\r\nDepends on eclipse/che-ls-jdt#70\r\nDepends on eclipse/eclipse.jdt.ls#755\r\n\r\n<!-- #### Changelog -->\r\n<!-- The changelog will be pulled from the PR's title. \r\n     Please provide a clear and meaningful title to the PR and don't include issue number -->\r\n\r\n\r\n#### Release Notes\r\n<!-- markdown to be included in marketing announcement - N/A for bugs -->\r\n\r\n\r\n#### Docs PR\r\n<!-- Please add a matching PR to [the docs repo](https://github.com/eclipse/che-docs) and link that PR to this issue.\r\nBoth will be merged at the same time. -->\r\n","created_at":"2018-08-23T13:18:09Z","updated_at":"2018-08-27T23:13:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9eb0ecdb553f1545620db6e778ba559aea294fd8","assignee":null,"assignees":[],"requested_reviewers":[{"login":"dmytro-ndp","id":1197777,"node_id":"MDQ6VXNlcjExOTc3Nzc=","avatar_url":"https://avatars1.githubusercontent.com/u/1197777?v=4","gravatar_id":"","url":"https://api.github.com/users/dmytro-ndp","html_url":"https://github.com/dmytro-ndp","followers_url":"https://api.github.com/users/dmytro-ndp/followers","following_url":"https://api.github.com/users/dmytro-ndp/following{/other_user}","gists_url":"https://api.github.com/users/dmytro-ndp/gists{/gist_id}","starred_url":"https://api.github.com/users/dmytro-ndp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmytro-ndp/subscriptions","organizations_url":"https://api.github.com/users/dmytro-ndp/orgs","repos_url":"https://api.github.com/users/dmytro-ndp/repos","events_url":"https://api.github.com/users/dmytro-ndp/events{/privacy}","received_events_url":"https://api.github.com/users/dmytro-ndp/received_events","type":"User","site_admin":false},{"login":"vparfonov","id":1636592,"node_id":"MDQ6VXNlcjE2MzY1OTI=","avatar_url":"https://avatars1.githubusercontent.com/u/1636592?v=4","gravatar_id":"","url":"https://api.github.com/users/vparfonov","html_url":"https://github.com/vparfonov","followers_url":"https://api.github.com/users/vparfonov/followers","following_url":"https://api.github.com/users/vparfonov/following{/other_user}","gists_url":"https://api.github.com/users/vparfonov/gists{/gist_id}","starred_url":"https://api.github.com/users/vparfonov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vparfonov/subscriptions","organizations_url":"https://api.github.com/users/vparfonov/orgs","repos_url":"https://api.github.com/users/vparfonov/repos","events_url":"https://api.github.com/users/vparfonov/events{/privacy}","received_events_url":"https://api.github.com/users/vparfonov/received_events","type":"User","site_admin":false},{"login":"musienko-maxim","id":1640058,"node_id":"MDQ6VXNlcjE2NDAwNTg=","avatar_url":"https://avatars2.githubusercontent.com/u/1640058?v=4","gravatar_id":"","url":"https://api.github.com/users/musienko-maxim","html_url":"https://github.com/musienko-maxim","followers_url":"https://api.github.com/users/musienko-maxim/followers","following_url":"https://api.github.com/users/musienko-maxim/following{/other_user}","gists_url":"https://api.github.com/users/musienko-maxim/gists{/gist_id}","starred_url":"https://api.github.com/users/musienko-maxim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/musienko-maxim/subscriptions","organizations_url":"https://api.github.com/users/musienko-maxim/orgs","repos_url":"https://api.github.com/users/musienko-maxim/repos","events_url":"https://api.github.com/users/musienko-maxim/events{/privacy}","received_events_url":"https://api.github.com/users/musienko-maxim/received_events","type":"User","site_admin":false},{"login":"Ohrimenko1988","id":22724619,"node_id":"MDQ6VXNlcjIyNzI0NjE5","avatar_url":"https://avatars1.githubusercontent.com/u/22724619?v=4","gravatar_id":"","url":"https://api.github.com/users/Ohrimenko1988","html_url":"https://github.com/Ohrimenko1988","followers_url":"https://api.github.com/users/Ohrimenko1988/followers","following_url":"https://api.github.com/users/Ohrimenko1988/following{/other_user}","gists_url":"https://api.github.com/users/Ohrimenko1988/gists{/gist_id}","starred_url":"https://api.github.com/users/Ohrimenko1988/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ohrimenko1988/subscriptions","organizations_url":"https://api.github.com/users/Ohrimenko1988/orgs","repos_url":"https://api.github.com/users/Ohrimenko1988/repos","events_url":"https://api.github.com/users/Ohrimenko1988/events{/privacy}","received_events_url":"https://api.github.com/users/Ohrimenko1988/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":192367926,"node_id":"MDU6TGFiZWwxOTIzNjc5MjY=","url":"https://api.github.com/repos/eclipse/che/labels/kind/bug","name":"kind/bug","color":"fc2929","default":false},{"id":824874505,"node_id":"MDU6TGFiZWw4MjQ4NzQ1MDU=","url":"https://api.github.com/repos/eclipse/che/labels/team/languages","name":"team/languages","color":"bfdadc","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/eclipse/che/pulls/10893/commits","review_comments_url":"https://api.github.com/repos/eclipse/che/pulls/10893/comments","review_comment_url":"https://api.github.com/repos/eclipse/che/pulls/comments{/number}","comments_url":"https://api.github.com/repos/eclipse/che/issues/10893/comments","statuses_url":"https://api.github.com/repos/eclipse/che/statuses/956ad67125929ea0ccedd0af4a5ccd65b3d3b578","head":{"label":"vrubezhny:ls10115-part2","ref":"ls10115-part2","sha":"956ad67125929ea0ccedd0af4a5ccd65b3d3b578","user":{"login":"vrubezhny","id":620781,"node_id":"MDQ6VXNlcjYyMDc4MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/620781?v=4","gravatar_id":"","url":"https://api.github.com/users/vrubezhny","html_url":"https://github.com/vrubezhny","followers_url":"https://api.github.com/users/vrubezhny/followers","following_url":"https://api.github.com/users/vrubezhny/following{/other_user}","gists_url":"https://api.github.com/users/vrubezhny/gists{/gist_id}","starred_url":"https://api.github.com/users/vrubezhny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrubezhny/subscriptions","organizations_url":"https://api.github.com/users/vrubezhny/orgs","repos_url":"https://api.github.com/users/vrubezhny/repos","events_url":"https://api.github.com/users/vrubezhny/events{/privacy}","received_events_url":"https://api.github.com/users/vrubezhny/received_events","type":"User","site_admin":false},"repo":{"id":87935785,"node_id":"MDEwOlJlcG9zaXRvcnk4NzkzNTc4NQ==","name":"che","full_name":"vrubezhny/che","owner":{"login":"vrubezhny","id":620781,"node_id":"MDQ6VXNlcjYyMDc4MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/620781?v=4","gravatar_id":"","url":"https://api.github.com/users/vrubezhny","html_url":"https://github.com/vrubezhny","followers_url":"https://api.github.com/users/vrubezhny/followers","following_url":"https://api.github.com/users/vrubezhny/following{/other_user}","gists_url":"https://api.github.com/users/vrubezhny/gists{/gist_id}","starred_url":"https://api.github.com/users/vrubezhny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrubezhny/subscriptions","organizations_url":"https://api.github.com/users/vrubezhny/orgs","repos_url":"https://api.github.com/users/vrubezhny/repos","events_url":"https://api.github.com/users/vrubezhny/events{/privacy}","received_events_url":"https://api.github.com/users/vrubezhny/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/vrubezhny/che","description":"Eclipse Che: Next-generation Eclipse IDE.  Open source workspace server and cloud IDE.","fork":true,"url":"https://api.github.com/repos/vrubezhny/che","forks_url":"https://api.github.com/repos/vrubezhny/che/forks","keys_url":"https://api.github.com/repos/vrubezhny/che/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vrubezhny/che/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vrubezhny/che/teams","hooks_url":"https://api.github.com/repos/vrubezhny/che/hooks","issue_events_url":"https://api.github.com/repos/vrubezhny/che/issues/events{/number}","events_url":"https://api.github.com/repos/vrubezhny/che/events","assignees_url":"https://api.github.com/repos/vrubezhny/che/assignees{/user}","branches_url":"https://api.github.com/repos/vrubezhny/che/branches{/branch}","tags_url":"https://api.github.com/repos/vrubezhny/che/tags","blobs_url":"https://api.github.com/repos/vrubezhny/che/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vrubezhny/che/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vrubezhny/che/git/refs{/sha}","trees_url":"https://api.github.com/repos/vrubezhny/che/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vrubezhny/che/statuses/{sha}","languages_url":"https://api.github.com/repos/vrubezhny/che/languages","stargazers_url":"https://api.github.com/repos/vrubezhny/che/stargazers","contributors_url":"https://api.github.com/repos/vrubezhny/che/contributors","subscribers_url":"https://api.github.com/repos/vrubezhny/che/subscribers","subscription_url":"https://api.github.com/repos/vrubezhny/che/subscription","commits_url":"https://api.github.com/repos/vrubezhny/che/commits{/sha}","git_commits_url":"https://api.github.com/repos/vrubezhny/che/git/commits{/sha}","comments_url":"https://api.github.com/repos/vrubezhny/che/comments{/number}","issue_comment_url":"https://api.github.com/repos/vrubezhny/che/issues/comments{/number}","contents_url":"https://api.github.com/repos/vrubezhny/che/contents/{+path}","compare_url":"https://api.github.com/repos/vrubezhny/che/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vrubezhny/che/merges","archive_url":"https://api.github.com/repos/vrubezhny/che/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vrubezhny/che/downloads","issues_url":"https://api.github.com/repos/vrubezhny/che/issues{/number}","pulls_url":"https://api.github.com/repos/vrubezhny/che/pulls{/number}","milestones_url":"https://api.github.com/repos/vrubezhny/che/milestones{/number}","notifications_url":"https://api.github.com/repos/vrubezhny/che/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vrubezhny/che/labels{/name}","releases_url":"https://api.github.com/repos/vrubezhny/che/releases{/id}","deployments_url":"https://api.github.com/repos/vrubezhny/che/deployments","created_at":"2017-04-11T13:12:32Z","updated_at":"2017-04-11T13:12:55Z","pushed_at":"2018-08-23T12:47:53Z","git_url":"git://github.com/vrubezhny/che.git","ssh_url":"git@github.com:vrubezhny/che.git","clone_url":"https://github.com/vrubezhny/che.git","svn_url":"https://github.com/vrubezhny/che","homepage":"http://eclipse.org/che","size":156313,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"epl-1.0","name":"Eclipse Public License 1.0","spdx_id":"EPL-1.0","url":"https://api.github.com/licenses/epl-1.0","node_id":"MDc6TGljZW5zZTc="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"eclipse:5730_java_ls_poc","ref":"5730_java_ls_poc","sha":"e4684165ed6a0a027ba7dd2ac755ac12e1a13b33","user":{"login":"eclipse","id":56974,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU2OTc0","avatar_url":"https://avatars1.githubusercontent.com/u/56974?v=4","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,"node_id":"MDEwOlJlcG9zaXRvcnkzMjkzNTc0NQ==","name":"che","full_name":"eclipse/che","owner":{"login":"eclipse","id":56974,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU2OTc0","avatar_url":"https://avatars1.githubusercontent.com/u/56974?v=4","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":"2018-08-27T20:08:51Z","pushed_at":"2018-08-27T20:57:14Z","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":97394,"stargazers_count":4986,"watchers_count":4986,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":902,"mirror_url":null,"archived":false,"open_issues_count":927,"license":{"key":"epl-2.0","name":"Eclipse Public License 2.0","spdx_id":"EPL-2.0","url":"https://api.github.com/licenses/epl-2.0","node_id":"MDc6TGljZW5zZTMy"},"forks":902,"open_issues":927,"watchers":4986,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/eclipse/che/pulls/10893"},"html":{"href":"https://github.com/eclipse/che/pull/10893"},"issue":{"href":"https://api.github.com/repos/eclipse/che/issues/10893"},"comments":{"href":"https://api.github.com/repos/eclipse/che/issues/10893/comments"},"review_comments":{"href":"https://api.github.com/repos/eclipse/che/pulls/10893/comments"},"review_comment":{"href":"https://api.github.com/repos/eclipse/che/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/eclipse/che/pulls/10893/commits"},"statuses":{"href":"https://api.github.com/repos/eclipse/che/statuses/956ad67125929ea0ccedd0af4a5ccd65b3d3b578"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"vrubezhny"}}