All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kohsuke.github.GHTeam Maven / Gradle / Ivy

There is a newer version: 2.0.0-alpha-2
Show newest version
package org.kohsuke.github;

import java.io.IOException;
import java.util.Map;
import java.util.Set;

/**
 * A team in GitHub organization.
 * 
 * @author Kohsuke Kawaguchi
 */
public class GHTeam {
    private String name,permission;
    private int id;

    protected /*final*/ GHOrganization org;

    public String getName() {
        return name;
    }

    public String getPermission() {
        return permission;
    }

    public int getId() {
        return id;
    }

    /**
     * Retrieves the current members.
     */
    public Set getMembers() throws IOException {
        return org.root.retrieveWithAuth(api("/members"),JsonUsersWithDetails.class).toSet(org.root);
    }

    public Map getRepositories() throws IOException {
        return org.root.retrieveWithAuth3(api("/repos"),JsonRepositories.class).wrap(org.root);
    }

    /**
     * Adds a member to the team.
     */
    public void add(GHUser u) throws IOException {
        org.root.retrieveWithAuth(api("/members?name="+u.getLogin()),null, "POST");
    }

    /**
     * Removes a member to the team.
     */
    public void remove(GHUser u) throws IOException {
        org.root.retrieveWithAuth(api("/members?name="+u.getLogin()),null, "DELETE");
    }

    public void add(GHRepository r) throws IOException {
        org.root.retrieveWithAuth(api("/repositories?name="+r.getOwnerName()+'/'+r.getName()),null, "POST");
    }

    public void remove(GHRepository r) throws IOException {
        org.root.retrieveWithAuth(api("/repositories?name="+r.getOwnerName()+'/'+r.getName()),null, "DELETE");
    }

    private String api(String tail) {
        return "/teams/"+id+tail;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy