github.com/alexey-mercari/reviewdog@v0.10.1-0.20200514053941-928943b10766/doghouse/server/github_checker.go (about)

     1  package server
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/google/go-github/v31/github"
     7  )
     8  
     9  type checkerGitHubClientInterface interface {
    10  	GetPullRequestDiff(ctx context.Context, owner, repo string, number int) ([]byte, error)
    11  	CreateCheckRun(ctx context.Context, owner, repo string, opt github.CreateCheckRunOptions) (*github.CheckRun, error)
    12  	UpdateCheckRun(ctx context.Context, owner, repo string, checkID int64, opt github.UpdateCheckRunOptions) (*github.CheckRun, error)
    13  }
    14  
    15  type checkerGitHubClient struct {
    16  	*github.Client
    17  }
    18  
    19  func (c *checkerGitHubClient) GetPullRequestDiff(ctx context.Context, owner, repo string, number int) ([]byte, error) {
    20  	opt := github.RawOptions{Type: github.Diff}
    21  	d, _, err := c.PullRequests.GetRaw(ctx, owner, repo, number, opt)
    22  	return []byte(d), err
    23  }
    24  
    25  func (c *checkerGitHubClient) CreateCheckRun(ctx context.Context, owner, repo string, opt github.CreateCheckRunOptions) (*github.CheckRun, error) {
    26  	checkRun, _, err := c.Checks.CreateCheckRun(ctx, owner, repo, opt)
    27  	return checkRun, err
    28  }
    29  
    30  func (c *checkerGitHubClient) UpdateCheckRun(ctx context.Context, owner, repo string, checkID int64, opt github.UpdateCheckRunOptions) (*github.CheckRun, error) {
    31  	checkRun, _, err := c.Checks.UpdateCheckRun(ctx, owner, repo, checkID, opt)
    32  	return checkRun, err
    33  }