githubclient

package
v0.0.0-...-d654738 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2024 License: Apache-2.0 Imports: 19 Imported by: 5

Documentation

Index

Constants

View Source
const (
	ActionOpened  = "opened"
	ActionCreated = "created"
	ActionReopen  = "reopened"
	ActionClosed  = "closed"

	PRActionOpened              = "opened"
	PRActionChangedSourceBranch = "synchronize"
)

Variables

This section is empty.

Functions

func GetOrgRepo

func GetOrgRepo(repo *github.Repository) (string, string)

GetOrgRepo return the owner and name of the repository

func IsCommentCreated

func IsCommentCreated(e *github.IssueCommentEvent) bool

IsCommentCreated tells whether the comment is created now.

func IsCommentOnPullRequest

func IsCommentOnPullRequest(e *github.IssueCommentEvent) bool

IsCommentOnPullRequest tells whether the comment is on pull request

func IsIssueOpened

func IsIssueOpened(action string) bool

IsIssueOpened tells whether the issue is opened

func IsPROpened

func IsPROpened(action string) bool

IsPROpened tells whether the PR is opened

func IsPRSourceBranchChanged

func IsPRSourceBranchChanged(action string) bool

IsPRSourceBranchChanged tells whether the PR's source branch is changed

func PayloadSignature

func PayloadSignature(payload []byte, key []byte) string

PayloadSignature returns the signature that matches the payload.

func ValidatePayload

func ValidatePayload(payload []byte, sig string, tokenGenerator func() []byte) bool

ValidatePayload ensures that the request payload signature matches the key.

func ValidateWebhook

func ValidateWebhook(
	w http.ResponseWriter,
	r *http.Request,
	tokenGenerator func() []byte,
) (eType string, guid string, payload []byte, ok bool, status int)

ValidateWebhook ensures that the provided request conforms to the format of a GitHub webhook and the payload can be validated with the provided hmac secret. It returns the event type, the event guid, the payload of the request, whether the webhook is valid or not, and finally the resultant HTTP status code

Types

type Client

type Client interface {
	AddPRLabel(pr PRInfo, label string) error
	RemovePRLabel(pr PRInfo, label string) error
	CreatePRComment(pr PRInfo, comment string) error
	DeletePRComment(org, repo string, ID int64) error
	GetPRCommits(pr PRInfo) ([]*sdk.RepositoryCommit, error)
	GetPRComments(pr PRInfo) ([]*sdk.IssueComment, error)
	UpdatePR(pr PRInfo, request *sdk.PullRequest) (*sdk.PullRequest, error)
	GetPullRequests(pr PRInfo) ([]*sdk.PullRequest, error)
	ListCollaborator(pr PRInfo) ([]*sdk.User, error)
	IsCollaborator(pr PRInfo, login string) (bool, error)
	RemoveRepoMember(pr PRInfo, login string) error
	AddRepoMember(pr PRInfo, login, permission string) error
	GetPullRequestChanges(pr PRInfo) ([]*sdk.CommitFile, error)
	GetPRLabels(pr PRInfo) ([]string, error)
	GetRepositoryLabels(pr PRInfo) ([]string, error)
	UpdatePRComment(pr PRInfo, commentID int64, ic *sdk.IssueComment) error
	ClosePR(pr PRInfo) error
	ReopenPR(pr PRInfo) error
	AssignPR(pr PRInfo, logins []string) error
	UnAssignPR(pr PRInfo, logins []string) error
	CloseIssue(pr PRInfo) error
	ReopenIssue(pr PRInfo) error
	MergePR(pr PRInfo, commitMessage string, opt *sdk.PullRequestOptions) error
	GetRepos(org string) ([]*sdk.Repository, error)
	GetRepo(org, repo string) (*sdk.Repository, error)
	CreateRepo(org string, r *sdk.Repository) error
	UpdateRepo(org, repo string, r *sdk.Repository) error
	CreateRepoLabel(org, repo, label string) error
	GetRepoLabels(org, repo string) ([]string, error)
	AssignSingleIssue(is PRInfo, login string) error
	UnAssignSingleIssue(is PRInfo, login string) error
	CreateIssueComment(is PRInfo, comment string) error
	UpdateIssueComment(is PRInfo, commentID int64, c *sdk.IssueComment) error
	ListIssueComments(is PRInfo) ([]*sdk.IssueComment, error)
	RemoveIssueLabel(is PRInfo, label string) error
	AddIssueLabel(is PRInfo, label []string) error
	GetIssueLabels(is PRInfo) ([]string, error)
	UpdateIssue(is PRInfo, iss *sdk.IssueRequest) error
	GetSingleIssue(is PRInfo) (*sdk.Issue, error)
	ListBranches(org, repo string) ([]*sdk.Branch, error)
	SetProtectionBranch(org, repo, branch string, pre *sdk.ProtectionRequest) error
	RemoveProtectionBranch(org, repo, branch string) error
	GetDirectoryTree(org, repo, branch string, recursive bool) ([]*sdk.TreeEntry, error)
	GetPathContent(org, repo, path, branch string) (*sdk.RepositoryContent, error)
	CreateFile(org, repo, path, branch, commitMSG, sha string, content []byte) error
	GetUserPermissionOfRepo(org, repo, user string) (*sdk.RepositoryPermissionLevel, error)
	CreateIssue(org, repo string, request *sdk.IssueRequest) (*sdk.Issue, error)
	GetRef(org, repo, ref string) (*sdk.Reference, error)
	CreateBranch(org, repo string, reference *sdk.Reference) error
	ListOperationLogs(pr PRInfo) ([]*sdk.Timeline, error)
	GetEnterprisesMember(org string) ([]*sdk.User, error)
	GetSinglePR(org, repo string, number int) (*sdk.PullRequest, error)
}

Client interface for GitHub API

func NewClient

func NewClient(getToken func() []byte) Client

type IssuePRInfo

type IssuePRInfo interface {
	GetOrgRepo() (string, string)

	// GetNumber will return PR or Issue Number
	GetNumber() int

	// GetLabels will return labels on PR or Issue
	GetLabels() sets.String

	// GetAuthor will return author of PR or Issue
	GetAuthor() string
}

func GenIssuePRInfo

func GenIssuePRInfo(e interface{}) IssuePRInfo

type PRInfo

type PRInfo struct {
	Org    string
	Repo   string
	Number int
}

func (PRInfo) String

func (p PRInfo) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL