Documentation
¶
Index ¶
- func CheckDeleteRepoPermissions(ctx context.Context, client *github.Client) (bool, error)
- func DisplayRateLimit(ctx context.Context, client *github.Client)
- func ExtractLinks(text string) []string
- func FetchCommits(ctx context.Context, client *github.Client, owner, repo string, isFork bool, ...) ([]models.CommitInfo, error)
- func FetchExternalContributions(ctx context.Context, client *gh.Client, username string, checkSecrets bool, ...) (map[string]*models.EmailDetails, error)
- func FetchGists(ctx context.Context, client *github.Client, username string, cfg *Config) ([]*github.Gist, error)
- func FetchOrgRepos(ctx context.Context, client *github.Client, orgName string, cfg *Config) ([]*github.Repository, error)
- func FetchRepos(ctx context.Context, client *github.Client, username string, cfg *Config) ([]*github.Repository, error)
- func FetchReposWithUser(ctx context.Context, client *github.Client, username string, cfg *Config, ...) ([]*github.Repository, error)
- func GetGithubClient(token string) *github.Client
- func GetToken(c *cli.Context) string
- func GetUserByEmail(ctx context.Context, client *github.Client, email string) (*github.User, error)
- func GetUsernameForEmail(ctx context.Context, client *github.Client, email string) (string, error)
- func GetUsernameFromEmailSpoof(ctx context.Context, client *github.Client, email string, token string) (string, error)
- func IsOrganization(ctx context.Context, client *github.Client, name string) (bool, error)
- func IsValidEmail(input string) bool
- func ProcessCommit(commit *gh.RepositoryCommit, checkSecrets bool, cfg *Config) models.CommitInfo
- func ProcessGists(ctx context.Context, client *gh.Client, gists []*gh.Gist, checkSecrets bool, ...) map[string]*models.EmailDetails
- func ProcessRepos(ctx context.Context, client *gh.Client, repos []*gh.Repository, ...) map[string]*models.EmailDetails
- func ProcessReposLimited(ctx context.Context, client *gh.Client, repos []*gh.Repository, ...) map[string]*models.EmailDetails
- func ProcessReposStreaming(ctx context.Context, client *gh.Client, repos []*gh.Repository, ...) map[string]*models.EmailDetails
- func ProcessUserEvents(ctx context.Context, client *gh.Client, username string, checkSecrets bool, ...) map[string]*models.EmailDetails
- func RateLimitedProcessRepos(ctx context.Context, client *gh.Client, repos []*gh.Repository, ...) map[string]*models.EmailDetails
- func UserExists(ctx context.Context, client *github.Client, username string) (bool, error)
- func ValidateToken(ctx context.Context, client *github.Client) error
- type Config
- type EmailUpdate
- type ExternalCommit
- type RateLimit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckDeleteRepoPermissions ¶ added in v1.3.6
func DisplayRateLimit ¶ added in v1.3.6
func ExtractLinks ¶ added in v1.3.1
ExtractLinks extracts URLs from text
func FetchCommits ¶
func FetchExternalContributions ¶ added in v1.5.1
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 FetchReposWithUser ¶ added in v1.3.6
func GetGithubClient ¶
func GetUserByEmail ¶ added in v1.1.0
func GetUsernameForEmail ¶
func GetUsernameFromEmailSpoof ¶ added in v1.3.6
func IsOrganization ¶ added in v1.1.2
IsOrganization checks if the given name belongs to a GitHub organization
func IsValidEmail ¶ added in v1.3.6
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 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 ¶
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
}
Click to show internal directories.
Click to hide internal directories.