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
github command
tools
codegen command
web
simple command

Jump to

Keyboard shortcuts

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