check

package
v0.6.16 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Checker

type Checker interface {
	Check(ctx context.Context, in Input) (Output, error)
	Name() string
}

Checker allows to execute check in a generic way

type DuplicatedPattern added in v0.6.5

type DuplicatedPattern struct{}

DuplicatedPattern validates if CODEOWNERS file does not contain the duplicated lines with the same file pattern.

func NewDuplicatedPattern added in v0.2.0

func NewDuplicatedPattern() *DuplicatedPattern

NewDuplicatedPattern returns instance of the DuplicatedPattern

func (*DuplicatedPattern) Check added in v0.6.5

func (d *DuplicatedPattern) Check(ctx context.Context, in Input) (Output, error)

Check searches for doubles paths(patterns) in CODEOWNERS file.

func (DuplicatedPattern) Name added in v0.6.5

func (DuplicatedPattern) Name() string

Name returns human readable name of the validator.

type FileExist added in v0.6.5

type FileExist struct{}

func NewFileExist

func NewFileExist() *FileExist

func (*FileExist) Check added in v0.6.5

func (f *FileExist) Check(ctx context.Context, in Input) (Output, error)

func (*FileExist) Name added in v0.6.5

func (*FileExist) Name() string

type Input

type Input struct {
	RepoDir           string
	CodeownersEntries []codeowners.Entry
}

type Issue

type Issue struct {
	Severity SeverityType // enum // default error
	LineNo   *uint64
	Message  string
}

type NotOwnedFile added in v0.6.5

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

func NewNotOwnedFile added in v0.2.0

func NewNotOwnedFile(cfg NotOwnedFileConfig) *NotOwnedFile

func (*NotOwnedFile) AppendToGitignoreFile added in v0.6.5

func (c *NotOwnedFile) AppendToGitignoreFile(repoDir string, patterns []string) error

func (*NotOwnedFile) Check added in v0.6.5

func (c *NotOwnedFile) Check(ctx context.Context, in Input) (output Output, err error)

func (*NotOwnedFile) GitCheckStatus added in v0.6.5

func (c *NotOwnedFile) GitCheckStatus(repoDir string) error

func (*NotOwnedFile) GitListFiles added in v0.6.5

func (c *NotOwnedFile) GitListFiles(repoDir string) (string, error)

func (*NotOwnedFile) GitRemoveIgnoredFiles added in v0.6.5

func (c *NotOwnedFile) GitRemoveIgnoredFiles(repoDir string) error

func (*NotOwnedFile) GitResetCurrentBranch added in v0.6.5

func (c *NotOwnedFile) GitResetCurrentBranch(repoDir string) error

func (*NotOwnedFile) ListFormatFunc added in v0.6.5

func (c *NotOwnedFile) ListFormatFunc(es []string) string

ListFormatFunc is a basic formatter that outputs a bullet point list of the pattern.

func (NotOwnedFile) Name added in v0.6.5

func (NotOwnedFile) Name() string

Name returns human readable name of the validator

type NotOwnedFileConfig added in v0.6.5

type NotOwnedFileConfig struct {
	SkipPatterns []string `envconfig:"optional"`
}

type Output

type Output struct {
	Issues []Issue
}

type OutputBuilder added in v0.6.5

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

func (*OutputBuilder) Output added in v0.6.5

func (bldr *OutputBuilder) Output() Output

func (*OutputBuilder) ReportIssue added in v0.6.5

func (bldr *OutputBuilder) ReportIssue(msg string, opts ...ReportIssueOpt) *OutputBuilder

type ReportIssueOpt added in v0.6.5

type ReportIssueOpt func(*Issue)

func WithEntry added in v0.2.0

func WithEntry(e codeowners.Entry) ReportIssueOpt

func WithSeverity

func WithSeverity(s SeverityType) ReportIssueOpt

type SeverityType

type SeverityType int
const (
	Error SeverityType = iota + 1
	Warning
)

func (SeverityType) String

func (s SeverityType) String() string

func (*SeverityType) Unmarshal added in v0.2.0

func (s *SeverityType) Unmarshal(in string) error

Unmarshal provides custom parsing of severity type. Implements envconfig.Unmarshal interface.

type ValidOwner added in v0.6.5

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

ValidOwner validates each owner

func NewValidOwner

func NewValidOwner(cfg ValidOwnerConfig, ghClient *github.Client) (*ValidOwner, error)

NewValidOwner returns new instance of the ValidOwner

func (*ValidOwner) Check added in v0.6.5

func (v *ValidOwner) Check(ctx context.Context, in Input) (Output, error)

Check if defined owners are the valid ones. Allowed owner syntax: @username @org/team-name user@example.com source: https://help.github.com/articles/about-code-owners/#codeowners-syntax

Checks: - if owner is one of: github user, org team, email address - if github user then check if have github account - if github user then check if he/she is in organization - if org team then check if exists in organization

func (ValidOwner) Name added in v0.6.5

func (ValidOwner) Name() string

Name returns human readable name of the validator

type ValidOwnerConfig added in v0.6.5

type ValidOwnerConfig struct {
	Repository string
	// IgnoredOwners contains a list of owners that should not be validated.
	// Defaults to @ghost.
	// More info about the @ghost user: https://docs.github.com/en/free-pro-team@latest/github/setting-up-and-managing-your-github-user-account/deleting-your-user-account
	// Tip on how @ghost can be used: https://github.community/t5/How-to-use-Git-and-GitHub/CODEOWNERS-file-with-a-NOT-file-type-condition/m-p/31013/highlight/true#M8523
	IgnoredOwners []string `envconfig:"default=@ghost"`
}

type ValidSyntax added in v0.6.5

type ValidSyntax struct{}

ValidSyntax provides a syntax validation for CODEOWNERS file.

If any line in your CODEOWNERS file contains invalid syntax, the file will not be detected and will not be used to request reviews. Invalid syntax includes inline comments and user or team names that do not exist on GitHub.

func NewValidSyntax added in v0.6.5

func NewValidSyntax() *ValidSyntax

NewValidSyntax returns new ValidSyntax instance.

func (ValidSyntax) Check added in v0.6.5

func (ValidSyntax) Check(ctx context.Context, in Input) (Output, error)

Check for syntax issues in your CODEOWNERS file.

func (ValidSyntax) Name added in v0.6.5

func (ValidSyntax) Name() string

Jump to

Keyboard shortcuts

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