コード例 #1
0
  public void doIndex(StaplerRequest req, StaplerResponse resp) {
    String event = req.getHeader("X-GitHub-Event");
    String payload = req.getParameter("payload");
    if (payload == null) {
      logger.log(Level.SEVERE, "Request doesn't contain payload.");
      return;
    }

    GhprbGitHub gh = GhprbTrigger.getDscp().getGitHub();

    logger.log(Level.INFO, "Got payload event: {0}", event);
    try {
      if ("issue_comment".equals(event)) {
        GHEventPayload.IssueComment issueComment =
            gh.get()
                .parseEventPayload(new StringReader(payload), GHEventPayload.IssueComment.class);
        for (GhprbRepository repo : getRepos(issueComment.getRepository())) {
          repo.onIssueCommentHook(issueComment);
        }
      } else if ("pull_request".equals(event)) {
        GHEventPayload.PullRequest pr =
            gh.get().parseEventPayload(new StringReader(payload), GHEventPayload.PullRequest.class);
        for (GhprbRepository repo : getRepos(pr.getPullRequest().getRepository())) {
          repo.onPullRequestHook(pr);
        }
      } else {
        logger.log(Level.WARNING, "Request not known");
      }
    } catch (IOException ex) {
      logger.log(Level.SEVERE, "Failed to parse github hook payload.", ex);
    }
  }
コード例 #2
0
  private boolean initGhRepository() {
    GitHub gitHub = null;
    try {
      GhprbGitHub repo = helper.getGitHub();
      if (repo == null) {
        return false;
      }
      gitHub = repo.get();
      if (gitHub == null) {
        logger.log(Level.SEVERE, "No connection returned to GitHub server!");
        return false;
      }
      if (gitHub.getRateLimit().remaining == 0) {
        return false;
      }
    } catch (FileNotFoundException ex) {
      logger.log(Level.INFO, "Rate limit API not found.");
    } catch (IOException ex) {
      logger.log(Level.SEVERE, "Error while accessing rate limit API", ex);
      return false;
    }

    if (ghRepository == null) {
      try {
        ghRepository = gitHub.getRepository(reponame);
      } catch (IOException ex) {
        logger.log(
            Level.SEVERE,
            "Could not retrieve GitHub repository named "
                + reponame
                + " (Do you have properly set 'GitHub project' field in job configuration?)",
            ex);
        return false;
      }
    }
    return true;
  }