Help us shape the future of Go! Take the 2026 Go Developer Survey

github

package
v0.65.0 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package github implements the GitHub Provider for the go-git-platform.

It builds on top of the official google/go-github SDK and adds the transport-layer cross-cutting behavior (auth, retry, hooks, logging) provided by the parent project's transport package. All Provider methods are split across the per-responsibility files in this package:

  • github.go: constructor, registration, identity (Platform, TestConnection)
  • repos.go: ListRepos, GetRepo, CreateRepo, DeleteRepo, UpdateRepo, ForkRepo
  • crs.go: Change requests (PRs): Create/Get/List/Close/Merge/Reopen/Update/Comments/Commits
  • webhooks.go: webhook CRUD + signature validation + event parsing
  • branches.go: ListBranches, CreateBranch, DeleteBranch
  • diffs.go: GetCRDiff, GetCRFiles, CreateNote/DeleteNote, CreateDiscussion
  • commits.go: GetCommit, ListCommits, CompareCommits, CreateCommitStatus
  • files.go: GetFileContent, CreateFile, UpdateFile, DeleteFile
  • releases.go: ListTags, ListReleases, CreateRelease, GetArchive
  • labels.go: repository label CRUD (LabelManager)
  • issues.go: issue CRUD, comments, and issue labels (IssueManager)
  • reviews.go: PR review list/get/create/dismiss/request-reviewers (ReviewManager)
  • milestones.go: repository milestone CRUD (MilestoneManager)
  • search.go: global repo/issue/user search (SearchManager)
  • types.go: internal GitHub-API types and conversion helpers

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Divergences

func Divergences() []provider.Divergence

Divergences returns the registered divergence ledger for the GitHub backend.

func New

New builds a GitHub Provider from the given config. It registers itself with provider.Register so provider.NewProvider(PlatformGitHub, ...) returns an instance of this Provider.

Types

type Provider

type Provider struct {
	// contains filtered or unexported fields
}

Provider is the GitHub implementation of provider.Provider. It embeds the official go-github client and an auxiliary transport.Client used for endpoints not covered by the SDK (e.g. archive downloads).

func (*Provider) AddCRCommentReaction

func (p *Provider) AddCRCommentReaction(ctx context.Context, owner, repo string, commentID int64, emoji string) (*provider.Reaction, error)

AddCRCommentReaction implements provider.ReactionManager.

func (*Provider) AddCollaborator

func (p *Provider) AddCollaborator(ctx context.Context, owner, repo, username string, opts provider.AddCollaboratorOptions) error

AddCollaborator implements provider.CollaboratorManager.

func (*Provider) AddDeployKey

func (p *Provider) AddDeployKey(ctx context.Context, owner, repo string, opts provider.AddDeployKeyOptions) (*provider.DeployKey, error)

AddDeployKey implements provider.DeploymentKeyManager.

func (*Provider) AddIssueCommentReaction

func (p *Provider) AddIssueCommentReaction(ctx context.Context, owner, repo string, commentID int64, emoji string) (*provider.Reaction, error)

AddIssueCommentReaction implements provider.ReactionManager.

func (*Provider) AddIssueLabels

func (p *Provider) AddIssueLabels(ctx context.Context, owner, repo, number string, labels []string) error

AddIssueLabels implements provider.IssueManager.

func (*Provider) AddIssueReaction

func (p *Provider) AddIssueReaction(ctx context.Context, owner, repo, number, emoji string) (*provider.Reaction, error)

AddIssueReaction implements provider.ReactionManager.

func (*Provider) Capabilities

func (p *Provider) Capabilities() provider.CapabilitySet

Capabilities implements provider.Provider. GitHub implements the optional LabelManager interface (see labels.go), the IssueManager interface (see issues.go), the ReviewManager interface (see reviews.go), and the SearchManager interface (see search.go).

func (*Provider) CloseCR

func (p *Provider) CloseCR(ctx context.Context, owner, repo, number string) (*provider.ChangeRequest, error)

CloseCR implements provider.ChangeRequestManager.

func (*Provider) CloseIssue

func (p *Provider) CloseIssue(ctx context.Context, owner, repo, number string) (*provider.Issue, error)

CloseIssue implements provider.IssueManager.

func (*Provider) CompareCommits

func (p *Provider) CompareCommits(ctx context.Context, owner, repo, base, head string) (*provider.CompareResult, error)

CompareCommits implements provider.CommitManager.

func (*Provider) CreateBranch

func (p *Provider) CreateBranch(ctx context.Context, owner, repo, branch, ref string) (*provider.PlatformBranch, error)

CreateBranch implements provider.BranchManager.

func (*Provider) CreateBranchProtection

func (p *Provider) CreateBranchProtection(ctx context.Context, owner, repo string, opts provider.CreateBranchProtectionOptions) (*provider.BranchProtection, error)

CreateBranchProtection implements provider.BranchProtectionManager. GitHub has no dedicated create endpoint; this delegates to UpdateBranchProtection.

func (*Provider) CreateCR

CreateCR implements provider.ChangeRequestManager.

func (*Provider) CreateCommitStatus

func (p *Provider) CreateCommitStatus(ctx context.Context, owner, repo, sha string, opts provider.CommitStatusOptions) error

CreateCommitStatus implements provider.CommitStatusManager.

func (*Provider) CreateDiscussion

func (p *Provider) CreateDiscussion(ctx context.Context, owner, repo, number string, opts provider.DiscussionOptions) (string, error)

CreateDiscussion implements provider.DiffManager.

func (*Provider) CreateFile

func (p *Provider) CreateFile(ctx context.Context, owner, repo string, opts provider.FileOptions) (*provider.FileResult, error)

CreateFile implements provider.FileManager.

func (*Provider) CreateIssue

func (p *Provider) CreateIssue(ctx context.Context, opts provider.CreateIssueOptions) (*provider.Issue, error)

CreateIssue implements provider.IssueManager.

func (*Provider) CreateIssueComment

func (p *Provider) CreateIssueComment(ctx context.Context, owner, repo, number, body string) (*provider.IssueComment, error)

CreateIssueComment implements provider.IssueManager.

func (*Provider) CreateLabel

func (p *Provider) CreateLabel(ctx context.Context, owner, repo string, opts provider.CreateLabelOptions) (*provider.Label, error)

CreateLabel implements provider.LabelManager.

func (*Provider) CreateMilestone

func (p *Provider) CreateMilestone(ctx context.Context, owner, repo string, opts provider.CreateMilestoneOptions) (*provider.Milestone, error)

CreateMilestone implements provider.MilestoneManager.

func (*Provider) CreateNote

func (p *Provider) CreateNote(ctx context.Context, owner, repo, number, body string) (string, error)

CreateNote implements provider.DiffManager.

func (*Provider) CreateRelease

func (p *Provider) CreateRelease(ctx context.Context, owner, repo string, opts provider.CreateReleaseOptions) (*provider.ReleaseInfo, error)

CreateRelease implements provider.ReleaseManager.

func (*Provider) CreateRepo

func (p *Provider) CreateRepo(ctx context.Context, owner string, opts provider.CreateRepoOptions) (*provider.PlatformRepo, error)

CreateRepo implements provider.RepoManager.

func (*Provider) CreateReview

func (p *Provider) CreateReview(ctx context.Context, owner, repo, number string, opts provider.CreateReviewOptions) (*provider.ReviewResult, error)

CreateReview implements provider.ReviewManager. It moved here from DiffManager; the change request number is now addressed as a string.

func (*Provider) CreateWebhook

CreateWebhook implements provider.WebhookManager.

func (*Provider) DeleteBranch

func (p *Provider) DeleteBranch(ctx context.Context, owner, repo, branch string) error

DeleteBranch implements provider.BranchManager.

func (*Provider) DeleteBranchProtection

func (p *Provider) DeleteBranchProtection(ctx context.Context, owner, repo, branch string) error

DeleteBranchProtection implements provider.BranchProtectionManager.

func (*Provider) DeleteDeployKey

func (p *Provider) DeleteDeployKey(ctx context.Context, owner, repo string, keyID int64) error

DeleteDeployKey implements provider.DeploymentKeyManager.

func (*Provider) DeleteFile

func (p *Provider) DeleteFile(ctx context.Context, owner, repo string, opts provider.FileDeleteOptions) (*provider.FileResult, error)

DeleteFile implements provider.FileManager.

func (*Provider) DeleteLabel

func (p *Provider) DeleteLabel(ctx context.Context, owner, repo, name string) error

DeleteLabel implements provider.LabelManager.

func (*Provider) DeleteMilestone

func (p *Provider) DeleteMilestone(ctx context.Context, owner, repo, number string) error

DeleteMilestone implements provider.MilestoneManager.

func (*Provider) DeleteNote

func (p *Provider) DeleteNote(ctx context.Context, owner, repo, number, noteID string) error

DeleteNote implements provider.DiffManager. The note itself is addressed by its numeric platform ID; the change-request number is only validated, as GitHub's delete-comment endpoint does not take it.

func (*Provider) DeleteRelease

func (p *Provider) DeleteRelease(ctx context.Context, owner, repo, tag string) error

DeleteRelease implements provider.ReleaseManager. The delete endpoint is id-addressed; the tag is resolved through the by-tag endpoint first.

func (*Provider) DeleteRepo

func (p *Provider) DeleteRepo(ctx context.Context, owner, repo string) error

DeleteRepo implements provider.RepoManager.

func (*Provider) DeleteWebhook

func (p *Provider) DeleteWebhook(ctx context.Context, owner, repo string, webhookID int64) error

DeleteWebhook implements provider.WebhookManager.

func (*Provider) DismissReview

func (p *Provider) DismissReview(ctx context.Context, owner, repo, number string, reviewID int64, message string) error

DismissReview implements provider.ReviewManager.

func (*Provider) Divergences

func (p *Provider) Divergences() []provider.Divergence

Divergences implements provider.Provider.

func (*Provider) ForkRepo

func (p *Provider) ForkRepo(ctx context.Context, owner, repo string, opts provider.ForkRepoOptions) (*provider.PlatformRepo, error)

ForkRepo implements provider.RepoManager.

func (*Provider) GetArchive

func (p *Provider) GetArchive(ctx context.Context, owner, repo, ref, format string) ([]byte, error)

GetArchive implements provider.ReleaseManager.

func (*Provider) GetBranchProtection

func (p *Provider) GetBranchProtection(ctx context.Context, owner, repo, branch string) (*provider.BranchProtection, error)

GetBranchProtection implements provider.BranchProtectionManager.

func (*Provider) GetCR

func (p *Provider) GetCR(ctx context.Context, owner, repo, number string) (*provider.ChangeRequest, error)

GetCR implements provider.ChangeRequestManager.

func (*Provider) GetCRDiff

func (p *Provider) GetCRDiff(ctx context.Context, owner, repo, number string) (*provider.MergeDiff, error)

GetCRDiff implements provider.DiffManager.

func (*Provider) GetCRFiles

func (p *Provider) GetCRFiles(ctx context.Context, owner, repo, number string) ([]*provider.ChangedFile, error)

GetCRFiles implements provider.DiffManager.

func (*Provider) GetCommit

func (p *Provider) GetCommit(ctx context.Context, owner, repo, sha string) (*provider.CommitInfo, error)

GetCommit implements provider.CommitManager.

func (*Provider) GetFileContent

func (p *Provider) GetFileContent(ctx context.Context, owner, repo, path, ref string) (string, error)

GetFileContent implements provider.FileManager.

func (*Provider) GetIssue

func (p *Provider) GetIssue(ctx context.Context, owner, repo, number string) (*provider.Issue, error)

GetIssue implements provider.IssueManager.

func (*Provider) GetMilestone

func (p *Provider) GetMilestone(ctx context.Context, owner, repo, number string) (*provider.Milestone, error)

GetMilestone implements provider.MilestoneManager.

func (*Provider) GetReleaseByTag

func (p *Provider) GetReleaseByTag(ctx context.Context, owner, repo, tag string) (*provider.ReleaseInfo, error)

GetReleaseByTag implements provider.ReleaseManager. GitHub exposes a dedicated tag-addressed endpoint, so no id resolution is needed.

func (*Provider) GetRepo

func (p *Provider) GetRepo(ctx context.Context, owner, repo string) (*provider.PlatformRepo, error)

GetRepo implements provider.RepoManager.

func (*Provider) GetReview

func (p *Provider) GetReview(ctx context.Context, owner, repo, number string, reviewID int64) (*provider.Review, error)

GetReview implements provider.ReviewManager.

func (*Provider) ListBranchProtections

func (p *Provider) ListBranchProtections(ctx context.Context, owner, repo string) ([]*provider.BranchProtection, error)

ListBranchProtections implements provider.BranchProtectionManager. GitHub has no list endpoint for branch protections; this returns nil.

func (*Provider) ListBranches

func (p *Provider) ListBranches(ctx context.Context, owner, repo string) ([]*provider.PlatformBranch, error)

ListBranches implements provider.BranchManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until the platform returns an empty page) instead of silently truncating at the first page.

func (*Provider) ListCRCommentReactions

func (p *Provider) ListCRCommentReactions(ctx context.Context, owner, repo string, commentID int64) ([]*provider.Reaction, error)

ListCRCommentReactions implements provider.ReactionManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListCRComments

func (p *Provider) ListCRComments(ctx context.Context, owner, repo, number string) ([]*provider.CRComment, error)

ListCRComments implements provider.ChangeRequestManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListCRCommits

func (p *Provider) ListCRCommits(ctx context.Context, owner, repo, number string) ([]*provider.CRCommit, error)

ListCRCommits implements provider.ChangeRequestManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListCRReactions

func (p *Provider) ListCRReactions(ctx context.Context, owner, repo, number string) ([]*provider.Reaction, error)

ListCRReactions implements provider.ReactionManager. On GitHub, PRs share the issue reactions API. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListCRs

ListCRs implements provider.ChangeRequestManager.

func (*Provider) ListCollaborators

func (p *Provider) ListCollaborators(ctx context.Context, owner, repo string) ([]*provider.Collaborator, error)

ListCollaborators implements provider.CollaboratorManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListCommitStatuses

func (p *Provider) ListCommitStatuses(ctx context.Context, owner, repo, sha string) ([]provider.CommitStatus, error)

ListCommitStatuses implements provider.CommitStatusManager.

func (*Provider) ListCommits

func (p *Provider) ListCommits(ctx context.Context, owner, repo string, opts provider.ListCommitsOptions) ([]*provider.CommitInfo, error)

ListCommits implements provider.CommitManager.

Dual pagination mode: opts.Page > 0 means the caller manages paging explicitly and receives exactly that one page (opts.Page/opts.PerPage honored via NormalizePageOpts); opts.Page == 0 (the default) exhausts pagination via backendutil.AllPages — fetching 100 per page until an empty page — so every matching commit is returned. In full-fetch mode opts.PerPage only sizes the underlying requests and defaults to the platform maximum of 100.

func (*Provider) ListContributors

func (p *Provider) ListContributors(ctx context.Context, owner, repo string) ([]*provider.Contributor, error)

ListContributors implements provider.RepoStatsManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListDeployKeys

func (p *Provider) ListDeployKeys(ctx context.Context, owner, repo string) ([]*provider.DeployKey, error)

ListDeployKeys implements provider.DeploymentKeyManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListForks

func (p *Provider) ListForks(ctx context.Context, owner, repo string) ([]*provider.PlatformRepo, error)

ListForks implements provider.RepoStatsManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListIssueCommentReactions

func (p *Provider) ListIssueCommentReactions(ctx context.Context, owner, repo string, commentID int64) ([]*provider.Reaction, error)

ListIssueCommentReactions implements provider.ReactionManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListIssueComments

func (p *Provider) ListIssueComments(ctx context.Context, owner, repo, number string) ([]*provider.IssueComment, error)

ListIssueComments implements provider.IssueManager.

func (*Provider) ListIssueLabels

func (p *Provider) ListIssueLabels(ctx context.Context, owner, repo string) ([]*provider.IssueLabel, error)

ListIssueLabels implements provider.IssueManager: repository-level labels, exhausting pagination (the loop advances until an empty page).

func (*Provider) ListIssueReactions

func (p *Provider) ListIssueReactions(ctx context.Context, owner, repo, number string) ([]*provider.Reaction, error)

ListIssueReactions implements provider.ReactionManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListIssues

func (p *Provider) ListIssues(ctx context.Context, opts provider.ListIssuesOptions) ([]*provider.Issue, int, error)

ListIssues implements provider.IssueManager.

func (*Provider) ListLabels

func (p *Provider) ListLabels(ctx context.Context, owner, repo string, opts provider.ListLabelsOptions) ([]*provider.Label, error)

ListLabels implements provider.LabelManager.

Dual pagination mode: opts.Page > 0 means the caller manages paging explicitly and receives exactly that one page (opts.Page/opts.PerPage honored via NormalizePageOpts); opts.Page == 0 (the default) exhausts pagination via backendutil.AllPages — fetching 100 per page until an empty page — so every label is returned.

func (*Provider) ListMilestones

func (p *Provider) ListMilestones(ctx context.Context, owner, repo string, opts provider.ListMilestonesOptions) ([]provider.Milestone, error)

ListMilestones implements provider.MilestoneManager. State filters by "open"/"closed" (GitHub also accepts "all"); GitHub defaults to open.

Dual pagination mode: opts.Page > 0 means the caller manages paging explicitly and receives exactly that one page (opts.Page/opts.PerPage honored via NormalizePageOpts); opts.Page == 0 (the default) exhausts pagination via backendutil.AllPages — fetching 100 per page until an empty page — so every matching milestone is returned.

func (*Provider) ListNotifications

func (p *Provider) ListNotifications(ctx context.Context, opts provider.ListNotificationsOptions) ([]*provider.Notification, error)

ListNotifications implements provider.NotificationManager.

Dual pagination mode: opts.Page > 0 means the caller manages paging explicitly and receives exactly that one page (opts.Page/opts.PerPage honored via NormalizePageOpts); opts.Page == 0 (the default) exhausts pagination via backendutil.AllPages — fetching 100 per page until an empty page — so every matching notification is returned.

func (*Provider) ListReleases

func (p *Provider) ListReleases(ctx context.Context, owner, repo string) ([]*provider.ReleaseInfo, error)

ListReleases implements provider.ReleaseManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListRepoNotifications

func (p *Provider) ListRepoNotifications(ctx context.Context, owner, repo string, opts provider.ListNotificationsOptions) ([]*provider.Notification, error)

ListRepoNotifications implements provider.NotificationManager.

Dual pagination mode, mirroring ListNotifications: opts.Page > 0 returns exactly that one caller-managed page; opts.Page == 0 exhausts pagination via backendutil.AllPages.

func (*Provider) ListRepos

ListRepos implements provider.RepoManager.

func (*Provider) ListReviews

func (p *Provider) ListReviews(ctx context.Context, owner, repo, number string) ([]provider.Review, error)

ListReviews implements provider.ReviewManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListStargazers

func (p *Provider) ListStargazers(ctx context.Context, owner, repo string) ([]*provider.CRUser, error)

ListStargazers implements provider.RepoStatsManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListTags

func (p *Provider) ListTags(ctx context.Context, owner, repo string) ([]*provider.TagInfo, error)

ListTags implements provider.ReleaseManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) ListWebhooks

func (p *Provider) ListWebhooks(ctx context.Context, owner, repo string) ([]*provider.PlatformWebhook, error)

ListWebhooks implements provider.WebhookManager. The provider interface exposes no paging parameters, so pagination is exhausted via backendutil.AllPages (100 per page until an empty page).

func (*Provider) MarkNotificationRead

func (p *Provider) MarkNotificationRead(ctx context.Context, threadID string) error

MarkNotificationRead implements provider.NotificationManager.

func (*Provider) MarkNotificationsRead

func (p *Provider) MarkNotificationsRead(ctx context.Context, opts provider.MarkNotificationsOptions) error

MarkNotificationsRead implements provider.NotificationManager.

func (*Provider) MarkRepoNotificationsRead

func (p *Provider) MarkRepoNotificationsRead(ctx context.Context, owner, repo string, opts provider.MarkNotificationsOptions) error

MarkRepoNotificationsRead implements provider.NotificationManager.

func (*Provider) MergeCR

func (p *Provider) MergeCR(ctx context.Context, owner, repo, number string, opts provider.MergeCROptions) (*provider.ChangeRequest, error)

MergeCR implements provider.ChangeRequestManager.

func (*Provider) ParseWebhookEvent

func (p *Provider) ParseWebhookEvent(r *http.Request, secret string) (*provider.NormalizedEvent, error)

ParseWebhookEvent implements provider.WebhookManager.

func (*Provider) Platform

func (p *Provider) Platform() provider.Platform

Platform implements provider.Provider.

func (*Provider) RemoveCRCommentReaction

func (p *Provider) RemoveCRCommentReaction(ctx context.Context, owner, repo string, commentID, reactionID int64) error

RemoveCRCommentReaction implements provider.ReactionManager.

func (*Provider) RemoveCollaborator

func (p *Provider) RemoveCollaborator(ctx context.Context, owner, repo, username string) error

RemoveCollaborator implements provider.CollaboratorManager.

func (*Provider) RemoveIssueCommentReaction

func (p *Provider) RemoveIssueCommentReaction(ctx context.Context, owner, repo string, commentID, reactionID int64) error

RemoveIssueCommentReaction implements provider.ReactionManager.

func (*Provider) RemoveIssueLabel

func (p *Provider) RemoveIssueLabel(ctx context.Context, owner, repo, number, name string) error

RemoveIssueLabel implements provider.IssueManager.

func (*Provider) RemoveIssueReaction

func (p *Provider) RemoveIssueReaction(ctx context.Context, owner, repo, number string, reactionID int64) error

RemoveIssueReaction implements provider.ReactionManager.

func (*Provider) ReopenCR

func (p *Provider) ReopenCR(ctx context.Context, owner, repo, number string) (*provider.ChangeRequest, error)

ReopenCR implements provider.ChangeRequestManager.

func (*Provider) ReopenIssue

func (p *Provider) ReopenIssue(ctx context.Context, owner, repo, number string) (*provider.Issue, error)

ReopenIssue implements provider.IssueManager.

func (*Provider) RequestReviewers

func (p *Provider) RequestReviewers(ctx context.Context, owner, repo, number string, reviewers []string) error

RequestReviewers implements provider.ReviewManager.

func (*Provider) SearchIssues

SearchIssues implements provider.SearchManager. Repo/State map onto query qualifiers; "is:issue" keeps pull requests out of the results.

func (*Provider) SearchRepos

SearchRepos implements provider.SearchManager.

func (*Provider) SearchUsers

SearchUsers implements provider.SearchManager.

func (*Provider) TestConnection

func (p *Provider) TestConnection(ctx context.Context) (*provider.TestConnectionResult, error)

TestConnection implements provider.Provider.

func (*Provider) UpdateBranchProtection

func (p *Provider) UpdateBranchProtection(ctx context.Context, owner, repo, branch string, opts provider.UpdateBranchProtectionOptions) (*provider.BranchProtection, error)

UpdateBranchProtection implements provider.BranchProtectionManager.

func (*Provider) UpdateCR

func (p *Provider) UpdateCR(ctx context.Context, owner, repo, number string, opts provider.UpdateCROptions) (*provider.ChangeRequest, error)

UpdateCR implements provider.ChangeRequestManager.

func (*Provider) UpdateCRLabels

func (p *Provider) UpdateCRLabels(ctx context.Context, owner, repo, number string, labels []string) error

UpdateCRLabels implements provider.ChangeRequestManager.

func (*Provider) UpdateFile

func (p *Provider) UpdateFile(ctx context.Context, owner, repo string, opts provider.FileOptions) (*provider.FileResult, error)

UpdateFile implements provider.FileManager.

func (*Provider) UpdateIssue

func (p *Provider) UpdateIssue(ctx context.Context, owner, repo, number string, opts provider.UpdateIssueOptions) (*provider.Issue, error)

UpdateIssue implements provider.IssueManager.

func (*Provider) UpdateIssueComment

func (p *Provider) UpdateIssueComment(ctx context.Context, owner, repo, number string, commentID int64, body string) (*provider.IssueComment, error)

UpdateIssueComment implements provider.IssueManager. The edit endpoint addresses the comment directly, so number is unused. The platform only lets the comment's author perform the edit.

func (*Provider) UpdateLabel

func (p *Provider) UpdateLabel(ctx context.Context, owner, repo, name string, opts provider.UpdateLabelOptions) (*provider.Label, error)

UpdateLabel implements provider.LabelManager. GitHub addresses labels by name; nil option fields are simply omitted from the PATCH body.

func (*Provider) UpdateMilestone

func (p *Provider) UpdateMilestone(ctx context.Context, owner, repo, number string, opts provider.UpdateMilestoneOptions) (*provider.Milestone, error)

UpdateMilestone implements provider.MilestoneManager. Nil fields in opts stay absent from the PATCH body, leaving the milestone unchanged.

func (*Provider) UpdateRelease

func (p *Provider) UpdateRelease(ctx context.Context, owner, repo, tag string, opts provider.UpdateReleaseOptions) (*provider.ReleaseInfo, error)

UpdateRelease implements provider.ReleaseManager. The update endpoint is id-addressed, so the tag is resolved through the by-tag endpoint first (exact lookup, no list window). go-github's UpdateReleaseRequest carries pointer fields, and GitHub's PATCH leaves omitted fields unchanged, so nil options pass through untouched.

func (*Provider) UpdateRepo

func (p *Provider) UpdateRepo(ctx context.Context, owner, repo string, opts provider.UpdateRepoOptions) (*provider.PlatformRepo, error)

UpdateRepo implements provider.RepoManager.

func (*Provider) ValidateWebhookSignature

func (p *Provider) ValidateWebhookSignature(r *http.Request, secret string) error

ValidateWebhookSignature implements provider.WebhookManager.

GitHub uses two signatures (X-Hub-Signature for SHA-1 and X-Hub-Signature-256 for SHA-256). Both are HMACs over the raw body. We verify either; preference given to the modern SHA-256 form.

Jump to

Keyboard shortcuts

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