probot

package module
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2023 License: Apache-2.0 Imports: 22 Imported by: 4

README

Probot's logo, a cartoon robot

Go-Probot

A framework for building GitHub Apps to automate and improve your workflow, in Golang.

Inspired by Probot.

Example

Please check the simplest example.

Features

License

Apache © 2022 Airconduct

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GitHub = &githubEvent{}
View Source
var GitLab = &gitlabEvent{}

Functions

func ToPointer

func ToPointer[T any](s T) *T

Types

type App

type App[GT GitClientType] interface {
	AddFlags(flags *pflag.FlagSet)
	On(events ...WebhookEvent) handlerLoader
	Run(ctx context.Context) error

	ServeMux() *http.ServeMux
}

func NewGitHubAPP added in v0.0.3

func NewGitHubAPP() App[GitHubClient]

func NewGitLabAPP added in v0.0.3

func NewGitLabAPP() App[GitLabClient]

type EventHandlerFunc

type EventHandlerFunc[GT GitClientType, PT gitEventType] func(ctx ProbotContext[GT, PT])

type GitClientType

type GitClientType interface {
	GitHubClient | GitLabClient
}

type GitGraphQLClient

type GitGraphQLClient interface {
	Query(ctx context.Context, q interface{}, variables map[string]interface{}) error
}

type GitHubBranchProtectionRuleContext added in v0.0.3

type GitHubBranchProtectionRuleContext = ProbotContext[GitHubClient, github.BranchProtectionRuleEvent]

GitHubBranchProtectionRuleContext is the context type for BranchProtectionRule event handler to process

type GitHubCheckRunContext added in v0.0.3

type GitHubCheckRunContext = ProbotContext[GitHubClient, github.CheckRunEvent]

GitHubCheckRunContext is the context type for CheckRun event handler to process

type GitHubCheckSuiteContext added in v0.0.3

type GitHubCheckSuiteContext = ProbotContext[GitHubClient, github.CheckSuiteEvent]

GitHubCheckSuiteContext is the context type for CheckSuite event handler to process

type GitHubClient added in v0.0.3

type GitHubClient = github.Client

type GitHubCommitCommentContext added in v0.0.3

type GitHubCommitCommentContext = ProbotContext[GitHubClient, github.CommitCommentEvent]

GitHubCommitCommentContext is the context type for CommitComment event handler to process

type GitHubCreateContext added in v0.0.3

type GitHubCreateContext = ProbotContext[GitHubClient, github.CreateEvent]

GitHubCreateContext is the context type for Create event handler to process

type GitHubDeleteContext added in v0.0.3

type GitHubDeleteContext = ProbotContext[GitHubClient, github.DeleteEvent]

GitHubDeleteContext is the context type for Delete event handler to process

type GitHubDeployKeyContext added in v0.0.3

type GitHubDeployKeyContext = ProbotContext[GitHubClient, github.DeployKeyEvent]

GitHubDeployKeyContext is the context type for DeployKey event handler to process

type GitHubDeploymentContext added in v0.0.3

type GitHubDeploymentContext = ProbotContext[GitHubClient, github.DeploymentEvent]

GitHubDeploymentContext is the context type for Deployment event handler to process

type GitHubDeploymentStatusContext added in v0.0.3

type GitHubDeploymentStatusContext = ProbotContext[GitHubClient, github.DeploymentStatusEvent]

GitHubDeploymentStatusContext is the context type for DeploymentStatus event handler to process

type GitHubDiscussionContext added in v0.0.3

type GitHubDiscussionContext = ProbotContext[GitHubClient, github.DiscussionEvent]

GitHubDiscussionContext is the context type for Discussion event handler to process

type GitHubForkContext added in v0.0.3

type GitHubForkContext = ProbotContext[GitHubClient, github.ForkEvent]

GitHubForkContext is the context type for Fork event handler to process

type GitHubGitHubAppAuthorizationContext added in v0.0.3

type GitHubGitHubAppAuthorizationContext = ProbotContext[GitHubClient, github.GitHubAppAuthorizationEvent]

GitHubGitHubAppAuthorizationContext is the context type for GitHubAppAuthorization event handler to process

type GitHubGollumContext added in v0.0.3

type GitHubGollumContext = ProbotContext[GitHubClient, github.GollumEvent]

GitHubGollumContext is the context type for Gollum event handler to process

type GitHubInstallationContext added in v0.0.3

type GitHubInstallationContext = ProbotContext[GitHubClient, github.InstallationEvent]

GitHubInstallationContext is the context type for Installation event handler to process

type GitHubInstallationRepositoriesContext added in v0.0.3

type GitHubInstallationRepositoriesContext = ProbotContext[GitHubClient, github.InstallationRepositoriesEvent]

GitHubInstallationRepositoriesContext is the context type for InstallationRepositories event handler to process

type GitHubIssueCommentContext added in v0.0.3

type GitHubIssueCommentContext = ProbotContext[GitHubClient, github.IssueCommentEvent]

GitHubIssueCommentContext is the context type for IssueComment event handler to process

type GitHubIssuesContext added in v0.0.3

type GitHubIssuesContext = ProbotContext[GitHubClient, github.IssuesEvent]

GitHubIssuesContext is the context type for Issues event handler to process

type GitHubLabelContext added in v0.0.3

type GitHubLabelContext = ProbotContext[GitHubClient, github.LabelEvent]

GitHubLabelContext is the context type for Label event handler to process

type GitHubMarketplacePurchaseContext added in v0.0.3

type GitHubMarketplacePurchaseContext = ProbotContext[GitHubClient, github.MarketplacePurchaseEvent]

GitHubMarketplacePurchaseContext is the context type for MarketplacePurchase event handler to process

type GitHubMemberContext added in v0.0.3

type GitHubMemberContext = ProbotContext[GitHubClient, github.MemberEvent]

GitHubMemberContext is the context type for Member event handler to process

type GitHubMembershipContext added in v0.0.3

type GitHubMembershipContext = ProbotContext[GitHubClient, github.MembershipEvent]

GitHubMembershipContext is the context type for Membership event handler to process

type GitHubMergeGroupContext added in v0.0.3

type GitHubMergeGroupContext = ProbotContext[GitHubClient, github.MergeGroupEvent]

GitHubMergeGroupContext is the context type for MergeGroup event handler to process

type GitHubMetaContext added in v0.0.3

type GitHubMetaContext = ProbotContext[GitHubClient, github.MetaEvent]

GitHubMetaContext is the context type for Meta event handler to process

type GitHubMilestoneContext added in v0.0.3

type GitHubMilestoneContext = ProbotContext[GitHubClient, github.MilestoneEvent]

GitHubMilestoneContext is the context type for Milestone event handler to process

type GitHubOrgBlockContext added in v0.0.3

type GitHubOrgBlockContext = ProbotContext[GitHubClient, github.OrgBlockEvent]

GitHubOrgBlockContext is the context type for OrgBlock event handler to process

type GitHubOrganizationContext added in v0.0.3

type GitHubOrganizationContext = ProbotContext[GitHubClient, github.OrganizationEvent]

GitHubOrganizationContext is the context type for Organization event handler to process

type GitHubPackageContext added in v0.0.3

type GitHubPackageContext = ProbotContext[GitHubClient, github.PackageEvent]

GitHubPackageContext is the context type for Package event handler to process

type GitHubPageBuildContext added in v0.0.3

type GitHubPageBuildContext = ProbotContext[GitHubClient, github.PageBuildEvent]

GitHubPageBuildContext is the context type for PageBuild event handler to process

type GitHubPingContext added in v0.0.3

type GitHubPingContext = ProbotContext[GitHubClient, github.PingEvent]

GitHubPingContext is the context type for Ping event handler to process

type GitHubProjectCardContext added in v0.0.3

type GitHubProjectCardContext = ProbotContext[GitHubClient, github.ProjectCardEvent]

GitHubProjectCardContext is the context type for ProjectCard event handler to process

type GitHubProjectColumnContext added in v0.0.3

type GitHubProjectColumnContext = ProbotContext[GitHubClient, github.ProjectColumnEvent]

GitHubProjectColumnContext is the context type for ProjectColumn event handler to process

type GitHubProjectContext added in v0.0.3

type GitHubProjectContext = ProbotContext[GitHubClient, github.ProjectEvent]

GitHubProjectContext is the context type for Project event handler to process

type GitHubPublicContext added in v0.0.3

type GitHubPublicContext = ProbotContext[GitHubClient, github.PublicEvent]

GitHubPublicContext is the context type for Public event handler to process

type GitHubPullRequestContext added in v0.0.3

type GitHubPullRequestContext = ProbotContext[GitHubClient, github.PullRequestEvent]

GitHubPullRequestContext is the context type for PullRequest event handler to process

type GitHubPullRequestReviewCommentContext added in v0.0.3

type GitHubPullRequestReviewCommentContext = ProbotContext[GitHubClient, github.PullRequestReviewCommentEvent]

GitHubPullRequestReviewCommentContext is the context type for PullRequestReviewComment event handler to process

type GitHubPullRequestReviewContext added in v0.0.3

type GitHubPullRequestReviewContext = ProbotContext[GitHubClient, github.PullRequestReviewEvent]

GitHubPullRequestReviewContext is the context type for PullRequestReview event handler to process

type GitHubPullRequestReviewThreadContext added in v0.0.3

type GitHubPullRequestReviewThreadContext = ProbotContext[GitHubClient, github.PullRequestReviewThreadEvent]

GitHubPullRequestReviewThreadContext is the context type for PullRequestReviewThread event handler to process

type GitHubPushContext added in v0.0.3

type GitHubPushContext = ProbotContext[GitHubClient, github.PushEvent]

GitHubPushContext is the context type for Push event handler to process

type GitHubReleaseContext added in v0.0.3

type GitHubReleaseContext = ProbotContext[GitHubClient, github.ReleaseEvent]

GitHubReleaseContext is the context type for Release event handler to process

type GitHubRepositoryContext added in v0.0.3

type GitHubRepositoryContext = ProbotContext[GitHubClient, github.RepositoryEvent]

GitHubRepositoryContext is the context type for Repository event handler to process

type GitHubRepositoryDispatchContext added in v0.0.3

type GitHubRepositoryDispatchContext = ProbotContext[GitHubClient, github.RepositoryDispatchEvent]

GitHubRepositoryDispatchContext is the context type for RepositoryDispatch event handler to process

type GitHubRepositoryVulnerabilityAlertContext added in v0.0.3

type GitHubRepositoryVulnerabilityAlertContext = ProbotContext[GitHubClient, github.RepositoryVulnerabilityAlertEvent]

GitHubRepositoryVulnerabilityAlertContext is the context type for RepositoryVulnerabilityAlert event handler to process

type GitHubSecretScanningAlertContext added in v0.0.3

type GitHubSecretScanningAlertContext = ProbotContext[GitHubClient, github.SecretScanningAlertEvent]

GitHubSecretScanningAlertContext is the context type for SecretScanningAlert event handler to process

type GitHubStarContext added in v0.0.3

type GitHubStarContext = ProbotContext[GitHubClient, github.StarEvent]

GitHubStarContext is the context type for Star event handler to process

type GitHubStatusContext added in v0.0.3

type GitHubStatusContext = ProbotContext[GitHubClient, github.StatusEvent]

GitHubStatusContext is the context type for Status event handler to process

type GitHubTeamAddContext added in v0.0.3

type GitHubTeamAddContext = ProbotContext[GitHubClient, github.TeamAddEvent]

GitHubTeamAddContext is the context type for TeamAdd event handler to process

type GitHubTeamContext added in v0.0.3

type GitHubTeamContext = ProbotContext[GitHubClient, github.TeamEvent]

GitHubTeamContext is the context type for Team event handler to process

type GitHubWatchContext added in v0.0.3

type GitHubWatchContext = ProbotContext[GitHubClient, github.WatchEvent]

GitHubWatchContext is the context type for Watch event handler to process

type GitHubWorkflowDispatchContext added in v0.0.3

type GitHubWorkflowDispatchContext = ProbotContext[GitHubClient, github.WorkflowDispatchEvent]

GitHubWorkflowDispatchContext is the context type for WorkflowDispatch event handler to process

type GitHubWorkflowJobContext added in v0.0.3

type GitHubWorkflowJobContext = ProbotContext[GitHubClient, github.WorkflowJobEvent]

GitHubWorkflowJobContext is the context type for WorkflowJob event handler to process

type GitHubWorkflowRunContext added in v0.0.3

type GitHubWorkflowRunContext = ProbotContext[GitHubClient, github.WorkflowRunEvent]

GitHubWorkflowRunContext is the context type for WorkflowRun event handler to process

type GitLabBuildContext added in v0.0.3

type GitLabBuildContext = ProbotContext[GitLabClient, gitlab.BuildEvent]

GitLabBuildContext is the context type for Build event handler to process

type GitLabClient added in v0.0.3

type GitLabClient = gitlab.Client

type GitLabCommitCommentContext added in v0.0.3

type GitLabCommitCommentContext = ProbotContext[GitLabClient, gitlab.CommitCommentEvent]

GitLabCommitCommentContext is the context type for CommitComment event handler to process

type GitLabDeploymentContext added in v0.0.3

type GitLabDeploymentContext = ProbotContext[GitLabClient, gitlab.DeploymentEvent]

GitLabDeploymentContext is the context type for Deployment event handler to process

type GitLabGroupSystemContext added in v0.0.3

type GitLabGroupSystemContext = ProbotContext[GitLabClient, gitlab.GroupSystemEvent]

GitLabGroupSystemContext is the context type for GroupSystem event handler to process

type GitLabIssueCommentContext added in v0.0.3

type GitLabIssueCommentContext = ProbotContext[GitLabClient, gitlab.IssueCommentEvent]

GitLabIssueCommentContext is the context type for IssueComment event handler to process

type GitLabIssueContext added in v0.0.3

type GitLabIssueContext = ProbotContext[GitLabClient, gitlab.IssueEvent]

GitLabIssueContext is the context type for Issue event handler to process

type GitLabJobContext added in v0.0.3

type GitLabJobContext = ProbotContext[GitLabClient, gitlab.JobEvent]

GitLabJobContext is the context type for Job event handler to process

type GitLabKeySystemContext added in v0.0.3

type GitLabKeySystemContext = ProbotContext[GitLabClient, gitlab.KeySystemEvent]

GitLabKeySystemContext is the context type for KeySystem event handler to process

type GitLabMemberContext added in v0.0.3

type GitLabMemberContext = ProbotContext[GitLabClient, gitlab.MemberEvent]

GitLabMemberContext is the context type for Member event handler to process

type GitLabMergeCommentContext added in v0.0.3

type GitLabMergeCommentContext = ProbotContext[GitLabClient, gitlab.MergeCommentEvent]

GitLabMergeCommentContext is the context type for MergeComment event handler to process

type GitLabMergeRequestContext added in v0.0.3

type GitLabMergeRequestContext = ProbotContext[GitLabClient, gitlab.MergeEvent]

GitLabMergeRequestContext is the context type for MergeRequest event handler to process

type GitLabPipelineContext added in v0.0.3

type GitLabPipelineContext = ProbotContext[GitLabClient, gitlab.PipelineEvent]

GitLabPipelineContext is the context type for Pipeline event handler to process

type GitLabProjectSystemContext added in v0.0.3

type GitLabProjectSystemContext = ProbotContext[GitLabClient, gitlab.ProjectSystemEvent]

GitLabProjectSystemContext is the context type for ProjectSystem event handler to process

type GitLabPushContext added in v0.0.3

type GitLabPushContext = ProbotContext[GitLabClient, gitlab.PushEvent]

GitLabPushContext is the context type for Push event handler to process

type GitLabPushSystemContext added in v0.0.3

type GitLabPushSystemContext = ProbotContext[GitLabClient, gitlab.PushSystemEvent]

GitLabPushSystemContext is the context type for PushSystem event handler to process

type GitLabReleaseContext added in v0.0.3

type GitLabReleaseContext = ProbotContext[GitLabClient, gitlab.ReleaseEvent]

GitLabReleaseContext is the context type for Release event handler to process

type GitLabRepositoryUpdateSystemContext added in v0.0.3

type GitLabRepositoryUpdateSystemContext = ProbotContext[GitLabClient, gitlab.RepositoryUpdateSystemEvent]

GitLabRepositoryUpdateSystemContext is the context type for RepositoryUpdateSystem event handler to process

type GitLabSnippetCommentContext added in v0.0.3

type GitLabSnippetCommentContext = ProbotContext[GitLabClient, gitlab.SnippetCommentEvent]

GitLabSnippetCommentContext is the context type for SnippetComment event handler to process

type GitLabSubGroupContext added in v0.0.3

type GitLabSubGroupContext = ProbotContext[GitLabClient, gitlab.SubGroupEvent]

GitLabSubGroupContext is the context type for SubGroup event handler to process

type GitLabTagContext added in v0.0.3

type GitLabTagContext = ProbotContext[GitLabClient, gitlab.TagEvent]

GitLabTagContext is the context type for Tag event handler to process

type GitLabTagPushSystemContext added in v0.0.3

type GitLabTagPushSystemContext = ProbotContext[GitLabClient, gitlab.TagPushSystemEvent]

GitLabTagPushSystemContext is the context type for TagPushSystem event handler to process

type GitLabUserGroupSystemContext added in v0.0.3

type GitLabUserGroupSystemContext = ProbotContext[GitLabClient, gitlab.UserGroupSystemEvent]

GitLabUserGroupSystemContext is the context type for UserGroupSystem event handler to process

type GitLabUserSystemContext added in v0.0.3

type GitLabUserSystemContext = ProbotContext[GitLabClient, gitlab.UserSystemEvent]

GitLabUserSystemContext is the context type for UserSystem event handler to process

type GitLabUserTeamSystemContext added in v0.0.3

type GitLabUserTeamSystemContext = ProbotContext[GitLabClient, gitlab.UserTeamSystemEvent]

GitLabUserTeamSystemContext is the context type for UserTeamSystem event handler to process

type GitLabWikiPageContext added in v0.0.3

type GitLabWikiPageContext = ProbotContext[GitLabClient, gitlab.WikiPageEvent]

GitLabWikiPageContext is the context type for WikiPage event handler to process

type Handler

type Handler interface {
	// contains filtered or unexported methods
}

type ProbotContext

type ProbotContext[GT GitClientType, PT gitEventType] interface {
	context.Context

	Payload() *PT
	Client() *GT
	GraphQL() GitGraphQLClient
	Logger() logr.Logger
	Must(...interface{})
}

type ServerOptions

type ServerOptions struct {
	Address string
	Port    int
	Path    string
}

func (*ServerOptions) AddFlags

func (opts *ServerOptions) AddFlags(flags *pflag.FlagSet)

type WebhookEvent

type WebhookEvent interface {
	Type() string
	Action() string
}

type WebhookEventIdentifier

type WebhookEventIdentifier func() (event, action string)

func MakeWebhookEvent

func MakeWebhookEvent(e, a string) WebhookEventIdentifier

func (WebhookEventIdentifier) Action

func (fn WebhookEventIdentifier) Action() string

func (WebhookEventIdentifier) Type

func (fn WebhookEventIdentifier) Type() string

Directories

Path Synopsis
examples
tools
web

Jump to

Keyboard shortcuts

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