{"action":"created","comment":{"url":"https://api.github.com/repos/bndtools/bndtools/pulls/comments/91721663","pull_request_review_id":12227325,"id":91721663,"diff_hunk":"@@ -0,0 +1,246 @@\n+package bndtools.m2e;\n+\n+import java.io.File;\n+import java.io.InputStream;\n+import java.util.AbstractMap;\n+import java.util.AbstractMap.SimpleImmutableEntry;\n+import java.util.ArrayList;\n+import java.util.Collection;\n+import java.util.HashMap;\n+import java.util.Iterator;\n+import java.util.List;\n+import java.util.Map;\n+import java.util.Map.Entry;\n+import java.util.SortedSet;\n+import org.apache.maven.project.MavenProject;\n+import org.bndtools.api.ILogger;\n+import org.bndtools.api.Logger;\n+import org.eclipse.core.resources.IProject;\n+import org.eclipse.core.runtime.CoreException;\n+import org.eclipse.core.runtime.IProgressMonitor;\n+import org.eclipse.core.runtime.NullProgressMonitor;\n+import org.eclipse.m2e.core.MavenPlugin;\n+import org.eclipse.m2e.core.project.IMavenProjectChangedListener;\n+import org.eclipse.m2e.core.project.IMavenProjectFacade;\n+import org.eclipse.m2e.core.project.IMavenProjectRegistry;\n+import org.eclipse.m2e.core.project.MavenProjectChangedEvent;\n+import org.osgi.resource.Capability;\n+import org.osgi.resource.Requirement;\n+import org.osgi.service.repository.Repository;\n+\n+import aQute.bnd.osgi.Jar;\n+import aQute.bnd.osgi.repository.BaseRepository;\n+import aQute.bnd.service.Refreshable;\n+import aQute.bnd.service.RepositoryPlugin;\n+import aQute.bnd.version.Version;\n+import aQute.lib.collections.SortedList;\n+\n+public class MavenBuildRepository extends BaseRepository implements Repository, RepositoryPlugin, Refreshable, IMavenProjectChangedListener {\n+\n+    private final ILogger logger = Logger.getLogger(MavenBuildRepository.class);\n+\n+    private final IMavenProjectRegistry mavenProjectRegistry = MavenPlugin.getMavenProjectRegistry();\n+    //    private final Map<String,IMavenProjectFacade> bsnProjectFacadeMap = new HashMap<>();\n+    //    private final Map<String,MavenProject> bsnMavenProjectMap = new HashMap<>();\n+\n+    private boolean inited = false;\n+\n+    private final Map<String,Entry<IMavenProjectFacade,MavenProject>> bsnMap = new HashMap<>();\n+\n+    @Override\n+    public Map<Requirement,Collection<Capability>> findProviders(Collection< ? extends Requirement> requirements) {\n+        return null;\n+    }\n+\n+    @Override\n+    public boolean refresh() throws Exception {\n+        return false;\n+    }\n+\n+    @Override\n+    public File getRoot() throws Exception {\n+        return null;\n+    }\n+\n+    @Override\n+    public PutResult put(InputStream stream, PutOptions options) throws Exception {\n+        return null;\n+    }\n+\n+    @Override\n+    public File get(String bsn, Version version, Map<String,String> properties, DownloadListener... listeners) throws Exception {\n+        if (!inited) {\n+            init();\n+        }\n+\n+        File returnVal = null;\n+\n+        final Entry<IMavenProjectFacade,MavenProject> entry = bsnMap.get(bsn);\n+\n+        if (entry != null) {\n+            final MavenProject mavenProject = entry.getValue();\n+\n+            final File bundleFile = new File(mavenProject.getBuild().getDirectory() + \"/\" + mavenProject.getBuild().getFinalName() + \".jar\");\n+\n+            if (!bundleFile.exists()) {\n+                MavenUtil.execJarMojo(mavenProject, new NullProgressMonitor());\n+            }\n+\n+            if (bundleFile.exists()) {\n+                try (Jar bundle = new Jar(bundleFile)) {\n+                    if (bsn.equals(bundle.getBsn()) && version.compareTo(new Version(bundle.getVersion())) == 0) {\n+                        returnVal = bundleFile;\n+                    }\n+                }\n+            }\n+        }\n+\n+        if (returnVal != null && returnVal.exists()) {\n+            if (listeners != null && listeners.length > 0) {\n+                for (DownloadListener listener : listeners) {\n+                    try {\n+                        listener.success(returnVal);\n+                    } catch (Throwable t) {}\n+                }\n+            }\n+        }\n+\n+        return returnVal;\n+    }\n+\n+    private String getBsnFromMavenProject(MavenProject mavenProject) throws Exception {\n+        final File outputDir = new File(mavenProject.getBuild().getOutputDirectory());\n+\n+        if (outputDir.exists()) {\n+            try (Jar jar = new Jar(outputDir)) {\n+                String bsn = jar.getBsn();\n+\n+                return bsn;\n+            }\n+        }\n+\n+        return null;\n+    }\n+\n+    private void init() {\n+        inited = true;\n+\n+        final IProgressMonitor monitor = new NullProgressMonitor();\n+\n+        for (IMavenProjectFacade projectFacade : mavenProjectRegistry.getProjects()) {\n+            final IProject project = projectFacade.getProject();\n+\n+            try {\n+                final MavenProject mavenProject = getMavenProject(projectFacade, monitor);\n+\n+                final String bsn = getBsnFromMavenProject(mavenProject);\n+\n+                if (bsn != null) {\n+                    Entry<IMavenProjectFacade,MavenProject> entry = new AbstractMap.SimpleImmutableEntry<>(projectFacade, mavenProject);\n+                    bsnMap.put(bsn, entry);\n+                }\n+            } catch (Exception e) {\n+                logger.logError(\"Unable to get bundle symbolic name for \" + project.getName(), e);\n+            }\n+        }\n+\n+        mavenProjectRegistry.addMavenProjectChangedListener(this);","path":"bndtools.m2e/src/bndtools/m2e/MavenBuildRepository.java","position":147,"original_position":147,"commit_id":"5894826f2531c92191918e0ab3217fbf7bc115ec","original_commit_id":"5acf613127328855357a8b5bd18f7a3db60bfd88","user":{"login":"bjhargrave","id":277682,"avatar_url":"https://avatars.githubusercontent.com/u/277682?v=3","gravatar_id":"","url":"https://api.github.com/users/bjhargrave","html_url":"https://github.com/bjhargrave","followers_url":"https://api.github.com/users/bjhargrave/followers","following_url":"https://api.github.com/users/bjhargrave/following{/other_user}","gists_url":"https://api.github.com/users/bjhargrave/gists{/gist_id}","starred_url":"https://api.github.com/users/bjhargrave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjhargrave/subscriptions","organizations_url":"https://api.github.com/users/bjhargrave/orgs","repos_url":"https://api.github.com/users/bjhargrave/repos","events_url":"https://api.github.com/users/bjhargrave/events{/privacy}","received_events_url":"https://api.github.com/users/bjhargrave/received_events","type":"User","site_admin":false},"body":"When we remove the plugin from the Run object in RunProjectListener (below) should we not also remove this listener? Otherwise we are only ever expanding the maven project change listeners.","created_at":"2016-12-09T14:10:35Z","updated_at":"2016-12-09T14:11:19Z","html_url":"https://github.com/bndtools/bndtools/pull/1605#discussion_r91721663","pull_request_url":"https://api.github.com/repos/bndtools/bndtools/pulls/1605","_links":{"self":{"href":"https://api.github.com/repos/bndtools/bndtools/pulls/comments/91721663"},"html":{"href":"https://github.com/bndtools/bndtools/pull/1605#discussion_r91721663"},"pull_request":{"href":"https://api.github.com/repos/bndtools/bndtools/pulls/1605"}}},"pull_request":{"url":"https://api.github.com/repos/bndtools/bndtools/pulls/1605","id":97259094,"html_url":"https://github.com/bndtools/bndtools/pull/1605","diff_url":"https://github.com/bndtools/bndtools/pull/1605.diff","patch_url":"https://github.com/bndtools/bndtools/pull/1605.patch","issue_url":"https://api.github.com/repos/bndtools/bndtools/issues/1605","number":1605,"state":"open","locked":false,"title":"better m2e standalone integration","user":{"login":"gamerson","id":595221,"avatar_url":"https://avatars.githubusercontent.com/u/595221?v=3","gravatar_id":"","url":"https://api.github.com/users/gamerson","html_url":"https://github.com/gamerson","followers_url":"https://api.github.com/users/gamerson/followers","following_url":"https://api.github.com/users/gamerson/following{/other_user}","gists_url":"https://api.github.com/users/gamerson/gists{/gist_id}","starred_url":"https://api.github.com/users/gamerson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gamerson/subscriptions","organizations_url":"https://api.github.com/users/gamerson/orgs","repos_url":"https://api.github.com/users/gamerson/repos","events_url":"https://api.github.com/users/gamerson/events{/privacy}","received_events_url":"https://api.github.com/users/gamerson/received_events","type":"User","site_admin":false},"body":"- [x] initial rough draft of implementation available for review\r\n- [ ] create new bndtools m2e feature that includes bndtools.m2e bundle which requires m2e feature to be available\r\n- [ ] add more robust support for project renames/adds/deletes permutations during a 'Run' launch\r\n- [ ] add integration tests for this feature\r\n\r\nHT to @rotty3000 for fragment idea to fix javax.ssl import issue.","created_at":"2016-12-09T06:45:40Z","updated_at":"2016-12-09T14:25:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e46e1e7c7f500eda0a34878e05a047de19df80b4","assignee":{"login":"gamerson","id":595221,"avatar_url":"https://avatars.githubusercontent.com/u/595221?v=3","gravatar_id":"","url":"https://api.github.com/users/gamerson","html_url":"https://github.com/gamerson","followers_url":"https://api.github.com/users/gamerson/followers","following_url":"https://api.github.com/users/gamerson/following{/other_user}","gists_url":"https://api.github.com/users/gamerson/gists{/gist_id}","starred_url":"https://api.github.com/users/gamerson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gamerson/subscriptions","organizations_url":"https://api.github.com/users/gamerson/orgs","repos_url":"https://api.github.com/users/gamerson/repos","events_url":"https://api.github.com/users/gamerson/events{/privacy}","received_events_url":"https://api.github.com/users/gamerson/received_events","type":"User","site_admin":false},"assignees":[{"login":"gamerson","id":595221,"avatar_url":"https://avatars.githubusercontent.com/u/595221?v=3","gravatar_id":"","url":"https://api.github.com/users/gamerson","html_url":"https://github.com/gamerson","followers_url":"https://api.github.com/users/gamerson/followers","following_url":"https://api.github.com/users/gamerson/following{/other_user}","gists_url":"https://api.github.com/users/gamerson/gists{/gist_id}","starred_url":"https://api.github.com/users/gamerson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gamerson/subscriptions","organizations_url":"https://api.github.com/users/gamerson/orgs","repos_url":"https://api.github.com/users/gamerson/repos","events_url":"https://api.github.com/users/gamerson/events{/privacy}","received_events_url":"https://api.github.com/users/gamerson/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/bndtools/bndtools/milestones/18","html_url":"https://github.com/bndtools/bndtools/milestone/18","labels_url":"https://api.github.com/repos/bndtools/bndtools/milestones/18/labels","id":1899289,"number":18,"title":"3.4","description":"3.4.0.REL","creator":{"login":"bjhargrave","id":277682,"avatar_url":"https://avatars.githubusercontent.com/u/277682?v=3","gravatar_id":"","url":"https://api.github.com/users/bjhargrave","html_url":"https://github.com/bjhargrave","followers_url":"https://api.github.com/users/bjhargrave/followers","following_url":"https://api.github.com/users/bjhargrave/following{/other_user}","gists_url":"https://api.github.com/users/bjhargrave/gists{/gist_id}","starred_url":"https://api.github.com/users/bjhargrave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjhargrave/subscriptions","organizations_url":"https://api.github.com/users/bjhargrave/orgs","repos_url":"https://api.github.com/users/bjhargrave/repos","events_url":"https://api.github.com/users/bjhargrave/events{/privacy}","received_events_url":"https://api.github.com/users/bjhargrave/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":2,"state":"open","created_at":"2016-07-22T17:04:35Z","updated_at":"2016-12-09T06:46:51Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/bndtools/bndtools/pulls/1605/commits","review_comments_url":"https://api.github.com/repos/bndtools/bndtools/pulls/1605/comments","review_comment_url":"https://api.github.com/repos/bndtools/bndtools/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bndtools/bndtools/issues/1605/comments","statuses_url":"https://api.github.com/repos/bndtools/bndtools/statuses/5894826f2531c92191918e0ab3217fbf7bc115ec","head":{"label":"gamerson:standalone-m2e-integration","ref":"standalone-m2e-integration","sha":"5894826f2531c92191918e0ab3217fbf7bc115ec","user":{"login":"gamerson","id":595221,"avatar_url":"https://avatars.githubusercontent.com/u/595221?v=3","gravatar_id":"","url":"https://api.github.com/users/gamerson","html_url":"https://github.com/gamerson","followers_url":"https://api.github.com/users/gamerson/followers","following_url":"https://api.github.com/users/gamerson/following{/other_user}","gists_url":"https://api.github.com/users/gamerson/gists{/gist_id}","starred_url":"https://api.github.com/users/gamerson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gamerson/subscriptions","organizations_url":"https://api.github.com/users/gamerson/orgs","repos_url":"https://api.github.com/users/gamerson/repos","events_url":"https://api.github.com/users/gamerson/events{/privacy}","received_events_url":"https://api.github.com/users/gamerson/received_events","type":"User","site_admin":false},"repo":{"id":21919985,"name":"bndtools","full_name":"gamerson/bndtools","owner":{"login":"gamerson","id":595221,"avatar_url":"https://avatars.githubusercontent.com/u/595221?v=3","gravatar_id":"","url":"https://api.github.com/users/gamerson","html_url":"https://github.com/gamerson","followers_url":"https://api.github.com/users/gamerson/followers","following_url":"https://api.github.com/users/gamerson/following{/other_user}","gists_url":"https://api.github.com/users/gamerson/gists{/gist_id}","starred_url":"https://api.github.com/users/gamerson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gamerson/subscriptions","organizations_url":"https://api.github.com/users/gamerson/orgs","repos_url":"https://api.github.com/users/gamerson/repos","events_url":"https://api.github.com/users/gamerson/events{/privacy}","received_events_url":"https://api.github.com/users/gamerson/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gamerson/bndtools","description":"Eclipse tools for developing OSGi bundles","fork":true,"url":"https://api.github.com/repos/gamerson/bndtools","forks_url":"https://api.github.com/repos/gamerson/bndtools/forks","keys_url":"https://api.github.com/repos/gamerson/bndtools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gamerson/bndtools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gamerson/bndtools/teams","hooks_url":"https://api.github.com/repos/gamerson/bndtools/hooks","issue_events_url":"https://api.github.com/repos/gamerson/bndtools/issues/events{/number}","events_url":"https://api.github.com/repos/gamerson/bndtools/events","assignees_url":"https://api.github.com/repos/gamerson/bndtools/assignees{/user}","branches_url":"https://api.github.com/repos/gamerson/bndtools/branches{/branch}","tags_url":"https://api.github.com/repos/gamerson/bndtools/tags","blobs_url":"https://api.github.com/repos/gamerson/bndtools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gamerson/bndtools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gamerson/bndtools/git/refs{/sha}","trees_url":"https://api.github.com/repos/gamerson/bndtools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gamerson/bndtools/statuses/{sha}","languages_url":"https://api.github.com/repos/gamerson/bndtools/languages","stargazers_url":"https://api.github.com/repos/gamerson/bndtools/stargazers","contributors_url":"https://api.github.com/repos/gamerson/bndtools/contributors","subscribers_url":"https://api.github.com/repos/gamerson/bndtools/subscribers","subscription_url":"https://api.github.com/repos/gamerson/bndtools/subscription","commits_url":"https://api.github.com/repos/gamerson/bndtools/commits{/sha}","git_commits_url":"https://api.github.com/repos/gamerson/bndtools/git/commits{/sha}","comments_url":"https://api.github.com/repos/gamerson/bndtools/comments{/number}","issue_comment_url":"https://api.github.com/repos/gamerson/bndtools/issues/comments{/number}","contents_url":"https://api.github.com/repos/gamerson/bndtools/contents/{+path}","compare_url":"https://api.github.com/repos/gamerson/bndtools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gamerson/bndtools/merges","archive_url":"https://api.github.com/repos/gamerson/bndtools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gamerson/bndtools/downloads","issues_url":"https://api.github.com/repos/gamerson/bndtools/issues{/number}","pulls_url":"https://api.github.com/repos/gamerson/bndtools/pulls{/number}","milestones_url":"https://api.github.com/repos/gamerson/bndtools/milestones{/number}","notifications_url":"https://api.github.com/repos/gamerson/bndtools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gamerson/bndtools/labels{/name}","releases_url":"https://api.github.com/repos/gamerson/bndtools/releases{/id}","deployments_url":"https://api.github.com/repos/gamerson/bndtools/deployments","created_at":"2014-07-16T22:10:01Z","updated_at":"2016-01-29T05:22:59Z","pushed_at":"2016-12-09T06:45:40Z","git_url":"git://github.com/gamerson/bndtools.git","ssh_url":"git@github.com:gamerson/bndtools.git","clone_url":"https://github.com/gamerson/bndtools.git","svn_url":"https://github.com/gamerson/bndtools","homepage":"http://bndtools.org","size":425096,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bndtools:master","ref":"master","sha":"ff841aa43dc128dbba600bc3d9dc1c0555bac434","user":{"login":"bndtools","id":1130828,"avatar_url":"https://avatars.githubusercontent.com/u/1130828?v=3","gravatar_id":"","url":"https://api.github.com/users/bndtools","html_url":"https://github.com/bndtools","followers_url":"https://api.github.com/users/bndtools/followers","following_url":"https://api.github.com/users/bndtools/following{/other_user}","gists_url":"https://api.github.com/users/bndtools/gists{/gist_id}","starred_url":"https://api.github.com/users/bndtools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bndtools/subscriptions","organizations_url":"https://api.github.com/users/bndtools/orgs","repos_url":"https://api.github.com/users/bndtools/repos","events_url":"https://api.github.com/users/bndtools/events{/privacy}","received_events_url":"https://api.github.com/users/bndtools/received_events","type":"Organization","site_admin":false},"repo":{"id":128476,"name":"bndtools","full_name":"bndtools/bndtools","owner":{"login":"bndtools","id":1130828,"avatar_url":"https://avatars.githubusercontent.com/u/1130828?v=3","gravatar_id":"","url":"https://api.github.com/users/bndtools","html_url":"https://github.com/bndtools","followers_url":"https://api.github.com/users/bndtools/followers","following_url":"https://api.github.com/users/bndtools/following{/other_user}","gists_url":"https://api.github.com/users/bndtools/gists{/gist_id}","starred_url":"https://api.github.com/users/bndtools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bndtools/subscriptions","organizations_url":"https://api.github.com/users/bndtools/orgs","repos_url":"https://api.github.com/users/bndtools/repos","events_url":"https://api.github.com/users/bndtools/events{/privacy}","received_events_url":"https://api.github.com/users/bndtools/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bndtools/bndtools","description":"Eclipse tools for developing OSGi bundles","fork":false,"url":"https://api.github.com/repos/bndtools/bndtools","forks_url":"https://api.github.com/repos/bndtools/bndtools/forks","keys_url":"https://api.github.com/repos/bndtools/bndtools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bndtools/bndtools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bndtools/bndtools/teams","hooks_url":"https://api.github.com/repos/bndtools/bndtools/hooks","issue_events_url":"https://api.github.com/repos/bndtools/bndtools/issues/events{/number}","events_url":"https://api.github.com/repos/bndtools/bndtools/events","assignees_url":"https://api.github.com/repos/bndtools/bndtools/assignees{/user}","branches_url":"https://api.github.com/repos/bndtools/bndtools/branches{/branch}","tags_url":"https://api.github.com/repos/bndtools/bndtools/tags","blobs_url":"https://api.github.com/repos/bndtools/bndtools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bndtools/bndtools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bndtools/bndtools/git/refs{/sha}","trees_url":"https://api.github.com/repos/bndtools/bndtools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bndtools/bndtools/statuses/{sha}","languages_url":"https://api.github.com/repos/bndtools/bndtools/languages","stargazers_url":"https://api.github.com/repos/bndtools/bndtools/stargazers","contributors_url":"https://api.github.com/repos/bndtools/bndtools/contributors","subscribers_url":"https://api.github.com/repos/bndtools/bndtools/subscribers","subscription_url":"https://api.github.com/repos/bndtools/bndtools/subscription","commits_url":"https://api.github.com/repos/bndtools/bndtools/commits{/sha}","git_commits_url":"https://api.github.com/repos/bndtools/bndtools/git/commits{/sha}","comments_url":"https://api.github.com/repos/bndtools/bndtools/comments{/number}","issue_comment_url":"https://api.github.com/repos/bndtools/bndtools/issues/comments{/number}","contents_url":"https://api.github.com/repos/bndtools/bndtools/contents/{+path}","compare_url":"https://api.github.com/repos/bndtools/bndtools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bndtools/bndtools/merges","archive_url":"https://api.github.com/repos/bndtools/bndtools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bndtools/bndtools/downloads","issues_url":"https://api.github.com/repos/bndtools/bndtools/issues{/number}","pulls_url":"https://api.github.com/repos/bndtools/bndtools/pulls{/number}","milestones_url":"https://api.github.com/repos/bndtools/bndtools/milestones{/number}","notifications_url":"https://api.github.com/repos/bndtools/bndtools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bndtools/bndtools/labels{/name}","releases_url":"https://api.github.com/repos/bndtools/bndtools/releases{/id}","deployments_url":"https://api.github.com/repos/bndtools/bndtools/deployments","created_at":"2009-02-13T21:39:29Z","updated_at":"2016-12-05T20:11:51Z","pushed_at":"2016-12-09T06:45:40Z","git_url":"git://github.com/bndtools/bndtools.git","ssh_url":"git@github.com:bndtools/bndtools.git","clone_url":"https://github.com/bndtools/bndtools.git","svn_url":"https://github.com/bndtools/bndtools","homepage":"http://bndtools.org","size":435088,"stargazers_count":183,"watchers_count":183,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":92,"mirror_url":null,"open_issues_count":179,"forks":92,"open_issues":179,"watchers":183,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bndtools/bndtools/pulls/1605"},"html":{"href":"https://github.com/bndtools/bndtools/pull/1605"},"issue":{"href":"https://api.github.com/repos/bndtools/bndtools/issues/1605"},"comments":{"href":"https://api.github.com/repos/bndtools/bndtools/issues/1605/comments"},"review_comments":{"href":"https://api.github.com/repos/bndtools/bndtools/pulls/1605/comments"},"review_comment":{"href":"https://api.github.com/repos/bndtools/bndtools/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bndtools/bndtools/pulls/1605/commits"},"statuses":{"href":"https://api.github.com/repos/bndtools/bndtools/statuses/5894826f2531c92191918e0ab3217fbf7bc115ec"}}}}
{"actor":{"display_login":"bjhargrave"}}