Documentation ¶
Index ¶
- type Context
- type DashboardAgent
- func (da *DashboardAgent) ConstructSearchQuery(login string) string
- func (da *DashboardAgent) GetHeadContexts(ghc githubClient, pr PullRequest) ([]Context, error)
- func (da *DashboardAgent) GetUser(client *ghclient.Client) (*gogithub.User, error)
- func (da *DashboardAgent) HandlePrStatus(queryHandler PullRequestQueryHandler) http.HandlerFunc
- func (da *DashboardAgent) QueryPullRequests(ctx context.Context, ghc githubClient, query string) ([]PullRequest, error)
- type Label
- type PullRequest
- type PullRequestQueryHandler
- type PullRequestWithContexts
- type UserData
- type UserLoginQuery
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DashboardAgent ¶
type DashboardAgent struct {
// contains filtered or unexported fields
}
DashboardAgent is responsible for handling request to /pr-status endpoint. It will serve a list of open pull requests owned by the user.
func NewDashboardAgent ¶
func NewDashboardAgent(repos []string, config *config.GithubOAuthConfig, log *logrus.Entry) *DashboardAgent
NewDashboardAgent creates a new user dashboard agent .
func (*DashboardAgent) ConstructSearchQuery ¶
func (da *DashboardAgent) ConstructSearchQuery(login string) string
ConstructSearchQuery returns the Github search query string for PRs that are open and authored by the user passed. The search is scoped to repositories that are configured with either Prow or Tide.
func (*DashboardAgent) GetHeadContexts ¶
func (da *DashboardAgent) GetHeadContexts(ghc githubClient, pr PullRequest) ([]Context, error)
GetHeadContexts returns the status checks' contexts of the head commit of the PR.
func (*DashboardAgent) HandlePrStatus ¶
func (da *DashboardAgent) HandlePrStatus(queryHandler PullRequestQueryHandler) http.HandlerFunc
HandlePrStatus returns a http handler function that handles request to /pr-status endpoint. The handler takes user access token stored in the cookie to query to Github on behalf of the user and serve the data in return. The Query handler is passed to the method so as it can be mocked in the unit test..
func (*DashboardAgent) QueryPullRequests ¶
func (da *DashboardAgent) QueryPullRequests(ctx context.Context, ghc githubClient, query string) ([]PullRequest, error)
QueryPullRequests is a query function that returns a list of open pull requests owned by the user whose access token is consumed by the github client.
type PullRequest ¶
type PullRequest struct { Number githubql.Int Merged githubql.Boolean Title githubql.String Author struct { Login githubql.String } BaseRef struct { Name githubql.String Prefix githubql.String } HeadRefOID githubql.String `graphql:"headRefOid"` Repository struct { Name githubql.String NameWithOwner githubql.String Owner struct { Login githubql.String } } Labels struct { Nodes []struct { Label Label `graphql:"... on Label"` } } `graphql:"labels(first: 100)"` Milestone struct { Title githubql.String } Mergeable githubql.MergeableState }
PullRequest holds the GraphQL response data for a Github pull request.
type PullRequestQueryHandler ¶
type PullRequestQueryHandler interface { QueryPullRequests(context.Context, githubClient, string) ([]PullRequest, error) GetHeadContexts(ghc githubClient, pr PullRequest) ([]Context, error) GetUser(*ghclient.Client) (*gogithub.User, error) }
PullRequestQueryHandler defines an interface that query handlers should implement.
type PullRequestWithContexts ¶
type PullRequestWithContexts struct { Contexts []Context PullRequest PullRequest }
PullRequestWithContexts contains a pull request with its latest commit contexts.
type UserData ¶
type UserData struct { Login bool PullRequestsWithContexts []PullRequestWithContexts }
UserData represents data returned to client request to the endpoint. It has a flag that indicates whether the user has logged in his github or not and list of open pull requests owned by the user.
type UserLoginQuery ¶
UserLoginQuery holds the GraphQL query for the currently authenticated user.