diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index f40843ebb..4835feae1 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -145,6 +145,14 @@ public class GHRepository { return Collections.unmodifiableSet(r); } + /** + * If this repository belongs to an organization, return a set of teams. + */ + public Set getTeams() throws IOException { + return Collections.unmodifiableSet(root.retrieve("/repos/show/"+owner+"/"+name+"/teams",JsonTeams.class).toSet( + root.getOrganization(owner))); + } + public void addCollaborators(GHUser... users) throws IOException { addCollaborators(asList(users)); } diff --git a/src/main/java/org/kohsuke/github/JsonTeams.java b/src/main/java/org/kohsuke/github/JsonTeams.java index 1f1db72ba..85c6664ea 100644 --- a/src/main/java/org/kohsuke/github/JsonTeams.java +++ b/src/main/java/org/kohsuke/github/JsonTeams.java @@ -1,7 +1,9 @@ package org.kohsuke.github; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.TreeMap; /** @@ -18,4 +20,13 @@ class JsonTeams { } return r; } + + Set toSet(GHOrganization org) { + Set r = new HashSet(); + for (GHTeam t : teams) { + t.org = org; + r.add(t); + } + return r; + } }