internal

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Overview

Package internal implements the workflow-plugin-github plugin, providing GitHub webhook handling and GitHub Actions workflow management.

Index

Constants

This section is empty.

Variables

View Source
var Version = "dev"

Version is set at build time via -ldflags "-X github.com/GoCodeAlone/workflow-plugin-github/internal.Version=X.Y.Z"

Functions

func NewGitHubPlugin

func NewGitHubPlugin() sdk.PluginProvider

NewGitHubPlugin returns a new githubPlugin instance.

Types

type AppTransport added in v1.0.2

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

AppTransport implements http.RoundTripper for GitHub App authentication, automatically refreshing the installation token as needed.

func NewAppTransport added in v1.0.2

func NewAppTransport(mod *githubAppModule) *AppTransport

NewAppTransport creates an http.RoundTripper that uses App installation tokens.

func (*AppTransport) RoundTrip added in v1.0.2

func (t *AppTransport) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip injects the installation token into each request.

type CheckRun

type CheckRun struct {
	ID      int64  `json:"id"`
	HTMLURL string `json:"html_url"`
	Status  string `json:"status"`
}

CheckRun represents a GitHub Check Run response.

type CheckRunOutput

type CheckRunOutput struct {
	Title   string `json:"title"`
	Summary string `json:"summary"`
}

CheckRunOutput holds the title and summary for a check run.

type CreateCheckRunRequest

type CreateCheckRunRequest struct {
	Name       string          `json:"name"`
	HeadSHA    string          `json:"head_sha"`
	Status     string          `json:"status"`
	Conclusion string          `json:"conclusion,omitempty"`
	Output     *CheckRunOutput `json:"output,omitempty"`
}

CreateCheckRunRequest holds parameters for creating a GitHub Check Run.

type GitEvent

type GitEvent struct {
	Provider   string          `json:"provider"`    // "github"
	EventType  string          `json:"event_type"`  // "push", "pull_request", etc.
	Repository string          `json:"repository"`  // "owner/repo"
	Branch     string          `json:"branch"`      // "main", "feature/xyz"
	Commit     string          `json:"commit"`      // SHA
	Author     string          `json:"author"`      // username
	Message    string          `json:"message"`     // commit message or PR title
	URL        string          `json:"url"`         // link to commit/PR
	RawPayload json.RawMessage `json:"raw_payload"` // original payload
	Timestamp  time.Time       `json:"timestamp"`
}

GitEvent is the normalized event schema published to the message broker.

type GitHubClient

type GitHubClient interface {
	TriggerWorkflow(ctx context.Context, owner, repo, workflow, ref string, inputs map[string]string, token string) error
	GetWorkflowRun(ctx context.Context, owner, repo string, runID int64, token string) (*WorkflowRun, error)
	CreateCheckRun(ctx context.Context, owner, repo string, req *CreateCheckRunRequest, token string) (*CheckRun, error)
}

GitHubClient is the interface for interacting with the GitHub API. It is defined as an interface so tests can inject a mock.

type SDKClient added in v1.0.2

type SDKClient struct {
	GH *github.Client
}

SDKClient wraps the go-github client with auth support.

func NewSDKClient added in v1.0.2

func NewSDKClient(token string) *SDKClient

NewSDKClient creates a client authenticated with a personal access token.

func NewSDKClientFromTransport added in v1.0.2

func NewSDKClientFromTransport(rt http.RoundTripper) *SDKClient

NewSDKClientFromTransport creates a client from an http.RoundTripper (for GitHub App auth).

type WorkflowRun

type WorkflowRun struct {
	ID         int64  `json:"id"`
	Status     string `json:"status"`
	Conclusion string `json:"conclusion"`
	HTMLURL    string `json:"html_url"`
}

WorkflowRun represents a GitHub Actions workflow run.

Jump to

Keyboard shortcuts

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