github

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckDeleteRepoPermissions added in v1.3.6

func CheckDeleteRepoPermissions(ctx context.Context, client *github.Client) (bool, error)

func DisplayRateLimit added in v1.3.6

func DisplayRateLimit(ctx context.Context, client *github.Client)
func ExtractLinks(text string) []string

ExtractLinks extracts URLs from text

func FetchCommits

func FetchCommits(ctx context.Context, client *github.Client, owner, repo string, isFork bool, since *time.Time, checkSecrets bool, findLinks bool, cfg *Config) ([]models.CommitInfo, error)

func FetchExternalContributions added in v1.5.1

func FetchExternalContributions(ctx context.Context, client *gh.Client, username string, checkSecrets bool, cfg *Config) (map[string]*models.EmailDetails, error)

func FetchGists added in v1.1.2

func FetchGists(ctx context.Context, client *github.Client, username string, cfg *Config) ([]*github.Gist, error)

FetchGists retrieves all public gists for a given username

func FetchOrgRepos added in v1.1.0

func FetchOrgRepos(ctx context.Context, client *github.Client, orgName string, cfg *Config) ([]*github.Repository, error)

based: unified repo fetching for orgs

func FetchRepos

func FetchRepos(ctx context.Context, client *github.Client, username string, cfg *Config) ([]*github.Repository, error)

func FetchReposWithUser added in v1.3.6

func FetchReposWithUser(ctx context.Context, client *github.Client, username string, cfg *Config, user *github.User) ([]*github.Repository, error)

func GetGithubClient

func GetGithubClient(token string) *github.Client

func GetToken

func GetToken(c *cli.Context) string

func GetUserByEmail added in v1.1.0

func GetUserByEmail(ctx context.Context, client *github.Client, email string) (*github.User, error)

func GetUsernameForEmail

func GetUsernameForEmail(ctx context.Context, client *github.Client, email string) (string, error)

func GetUsernameFromEmailSpoof added in v1.3.6

func GetUsernameFromEmailSpoof(ctx context.Context, client *github.Client, email string, token string) (string, error)

func IsOrganization added in v1.1.2

func IsOrganization(ctx context.Context, client *github.Client, name string) (bool, error)

IsOrganization checks if the given name belongs to a GitHub organization

func IsValidEmail added in v1.3.6

func IsValidEmail(input string) bool

func ProcessCommit added in v1.3.1

func ProcessCommit(commit *gh.RepositoryCommit, checkSecrets bool, cfg *Config) models.CommitInfo

func ProcessGists added in v1.1.2

func ProcessGists(ctx context.Context, client *gh.Client, gists []*gh.Gist, checkSecrets bool, cfg *Config) map[string]*models.EmailDetails

ProcessGists processes gists for commit information

func ProcessRepos

func ProcessRepos(ctx context.Context, client *gh.Client, repos []*gh.Repository, checkSecrets bool, cfg *Config, targetUserIdentifiers map[string]bool, showTargetOnly bool) map[string]*models.EmailDetails

func ProcessReposLimited added in v1.3.6

func ProcessReposLimited(ctx context.Context, client *gh.Client, repos []*gh.Repository, checkSecrets bool, cfg *Config, targetUserIdentifiers map[string]bool, showTargetOnly bool) map[string]*models.EmailDetails

ProcessReposLimited processes only recent commits from repos (API-friendly fallback)

func ProcessReposStreaming added in v1.5.1

func ProcessReposStreaming(ctx context.Context, client *gh.Client, repos []*gh.Repository, checkSecrets bool, cfg *Config, targetUserIdentifiers map[string]bool, showTargetOnly bool, updateChan chan<- EmailUpdate) map[string]*models.EmailDetails

func ProcessUserEvents added in v1.3.6

func ProcessUserEvents(ctx context.Context, client *gh.Client, username string, checkSecrets bool, cfg *Config, targetUserIdentifiers map[string]bool, showTargetOnly bool) map[string]*models.EmailDetails

ProcessUserEvents processes user events using the GitHub Events API (more efficient)

func RateLimitedProcessRepos added in v1.3.6

func RateLimitedProcessRepos(ctx context.Context, client *gh.Client, repos []*gh.Repository, checkSecrets bool, cfg *Config, targetUserIdentifiers map[string]bool, showTargetOnly bool) map[string]*models.EmailDetails

RateLimitedProcessRepos performs comprehensive contributor enumeration for --deep mode

func UserExists

func UserExists(ctx context.Context, client *github.Client, username string) (bool, error)

func ValidateToken

func ValidateToken(ctx context.Context, client *github.Client) error

Types

type Config added in v1.1.0

type Config struct {
	MaxRepos              int
	MaxGists              int
	MaxCommits            int
	ShowInteresting       bool
	MaxConcurrentRequests int
	PerPage               int
	SkipNodeModules       bool
	QuickMode             bool
	TimestampAnalysis     bool
	IncludeForks          bool
}

Config holds configuration for GitHub operations

func DefaultConfig added in v1.1.0

func DefaultConfig() Config

DefaultConfig returns a default configuration

type EmailUpdate added in v1.5.1

type EmailUpdate struct {
	Email    string
	Details  *models.EmailDetails
	RepoName string
}

type ExternalCommit added in v1.5.1

type ExternalCommit struct {
	Email      string
	Name       string
	Repository string
	CommitInfo models.CommitInfo
}

type RateLimit added in v1.3.6

type RateLimit struct {
	Limit     int
	Remaining int
	ResetTime time.Time
}

func GetRateLimit added in v1.3.6

func GetRateLimit(ctx context.Context, client *github.Client) (*RateLimit, error)

Jump to

Keyboard shortcuts

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