Package org.jenkinsci.plugins.ghprb

Source Code of org.jenkinsci.plugins.ghprb.GhprbGitHub

package org.jenkinsci.plugins.ghprb;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.kohsuke.github.GHOrganization;
import org.kohsuke.github.GHUser;
import org.kohsuke.github.GitHub;

/**
* @author janinko
*/
public class GhprbGitHub {
  private static final Logger logger = Logger.getLogger(GhprbGitHub.class.getName());
  private GitHub gh;

  private void connect() throws IOException{
    String accessToken = GhprbTrigger.getDscp().getAccessToken();
    String serverAPIUrl = GhprbTrigger.getDscp().getServerAPIUrl();
    if(accessToken != null && !accessToken.isEmpty()) {
      try {
        gh = GitHub.connectUsingOAuth(serverAPIUrl, accessToken);
      } catch(IOException e) {
        logger.log(Level.SEVERE, "Can''t connect to {0} using oauth", serverAPIUrl);
        throw e;
      }
    } else {
      if (serverAPIUrl.contains("api/v3")) {
        gh = GitHub.connectToEnterprise(serverAPIUrl, GhprbTrigger.getDscp().getUsername(), GhprbTrigger.getDscp().getPassword());
      } else {
        gh = GitHub.connectUsingPassword(GhprbTrigger.getDscp().getUsername(), GhprbTrigger.getDscp().getPassword());
      }
    }
  }

  public GitHub get() throws IOException{
    if(gh == null){
      connect();
    }
    return gh;
  }

  public boolean isUserMemberOfOrganization(String organisation, GHUser member){
    boolean orgHasMember = false;
    try {
      GHOrganization org = get().getOrganization(organisation);
      orgHasMember = org.hasMember(member);
      logger.log(Level.FINE, "org.hasMember(member)? user:{0} org: {1} == {2}",
          new Object[]{member.getLogin(), organisation, orgHasMember ? "yes" : "no"});

    } catch (IOException ex) {
      logger.log(Level.SEVERE, null, ex);
      return false;
    }
    return orgHasMember;
  }

  public String getBotUserLogin() {
    try {
      return get().getMyself().getLogin();
    } catch (IOException ex) {
      logger.log(Level.SEVERE, null, ex);
      return null;
    }
  }
}
TOP

Related Classes of org.jenkinsci.plugins.ghprb.GhprbGitHub

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.