Versions in this module Expand all Collapse all v0 v0.2.0 Apr 14, 2026 Changes in this version + var ErrEmptyRepo = errors.New("repository is empty") + var ErrTruncatedTree = errors.New("tree truncated by GitHub API") + type Option func(*scanOptions) + func WithBaseURL(url string) Option type RepoResult + KnownSkipReason string + UnknownSkipError string + func (rr RepoResult) Skipped() bool v0.1.0 Apr 6, 2026 Changes in this version + func GenerateReport(org string, results []RepoResult) string + func Run(ctx context.Context, cfg Config) error + type BranchProtection struct + RequiredReviewers int + RequiredStatusChecks []string + type Config struct + Org string + ReportRepo string + Token string + type FileEntry struct + Path string + Size int + Type string + type GitHubClient interface + CreateIssue func(ctx context.Context, owner, repo, title, body string) error + GetBranchProtection func(ctx context.Context, owner, repo, branch string) (*BranchProtection, error) + GetRulesets func(ctx context.Context, owner, repo, branch string) (*BranchProtection, error) + GetTree func(ctx context.Context, owner, repo, branch string) ([]FileEntry, error) + ListRepos func(ctx context.Context, org string) ([]Repo, error) + func NewGitHubClient(token string) GitHubClient + type HasBranchProtection struct + func (r HasBranchProtection) Check(repo Repo) bool + func (r HasBranchProtection) Name() string + type HasCIWorkflow struct + func (r HasCIWorkflow) Check(repo Repo) bool + func (r HasCIWorkflow) Name() string + type HasCodeowners struct + func (r HasCodeowners) Check(repo Repo) bool + func (r HasCodeowners) Name() string + type HasGitignore struct + func (r HasGitignore) Check(repo Repo) bool + func (r HasGitignore) Name() string + type HasLicense struct + func (r HasLicense) Check(repo Repo) bool + func (r HasLicense) Name() string + type HasRepoDescription struct + func (r HasRepoDescription) Check(repo Repo) bool + func (r HasRepoDescription) Name() string + type HasRequiredReviewers struct + func (r HasRequiredReviewers) Check(repo Repo) bool + func (r HasRequiredReviewers) Name() string + type HasRequiredStatusChecks struct + func (r HasRequiredStatusChecks) Check(repo Repo) bool + func (r HasRequiredStatusChecks) Name() string + type HasSecurityMd struct + func (r HasSecurityMd) Check(repo Repo) bool + func (r HasSecurityMd) Name() string + type HasSubstantialReadme struct + func (r HasSubstantialReadme) Check(repo Repo) bool + func (r HasSubstantialReadme) Name() string + type HasTestDirectory struct + func (r HasTestDirectory) Check(repo Repo) bool + func (r HasTestDirectory) Name() string + type Repo struct + Archived bool + BranchProtection *BranchProtection + DefaultBranch string + Description string + Files []FileEntry + Name string + type RepoResult struct + RepoName string + Results []RuleResult + func Scan(ctx context.Context, client GitHubClient, org string) ([]RepoResult, error) + type Rule interface + Check func(repo Repo) bool + Name func() string + func AllRules() []Rule + type RuleResult struct + Passed bool + RuleName string