core

package
v0.0.0-...-a914375 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2026 License: MIT Imports: 27 Imported by: 0

Documentation

Overview

This file previously held web UI assets generated by go-bindata.

Assets are now embedded natively with Go's //go:embed (see assets.go and the embed directive in main.go), so no code generation tool is required. This file is intentionally left as an empty stub; it can be deleted.

Index

Constants

View Source
const (
	Name    = "gitrob2"
	Version = "2.1.0"

	// Original author of Gitrob. gitrob2 is a fork; credit is retained here and
	// in LICENSE.txt / NOTICE per the MIT license.
	Author         = "Michael Henriksen"
	OriginalName   = "gitrob"
	OriginalSource = "https://github.com/michenriksen/gitrob"

	// Website is the home of this fork.
	Website = "https://github.com/KhitMinnyo/gitrob2"

	ASCIIBanner = "        _ __           __       ___\n" +
		"  ___ _(_) /________  / /_     |_  |\n" +
		" / _ `/ / __/ __/ _ \\/ __ \\   / __/\n" +
		" \\_, /_/\\__/_/  \\___/_.__/   /____/\n" +
		"/___/ gitrob2 · fork of gitrob by @michenriksen"
)
View Source
const (
	FATAL     = 5
	ERROR     = 4
	WARN      = 3
	IMPORTANT = 2
	INFO      = 1
	DEBUG     = 0
)
View Source
const (
	GithubBaseUri   = "https://raw.githubusercontent.com"
	MaximumFileSize = 102400
	CspPolicy       = "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'"
	ReferrerPolicy  = "no-referrer"
)
View Source
const (
	AccessTokenEnvVariable = "GITROB_ACCESS_TOKEN"

	StatusInitializing = "initializing"
	StatusGathering    = "gathering"
	StatusAnalyzing    = "analyzing"
	StatusFinished     = "finished"
)
View Source
const (
	TypeSimple  = "simple"
	TypePattern = "pattern"

	PartExtension = "extension"
	PartFilename  = "filename"
	PartPath      = "path"
)
View Source
const (
	EmptyTreeCommitId = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"
)

Variables

View Source
var NewlineRegex = regexp.MustCompile(`\r?\n`)
View Source
var Signatures = []Signature{
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	SimpleSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
	PatternSignature{
		// contains filtered or unexported fields
	},
}

Functions

func BinaryFileSystem

func BinaryFileSystem(root string) *binaryFileSystem

func CloneRepository

func CloneRepository(url *string, branch *string, depth int) (*git.Repository, string, error)

func FileExists

func FileExists(path string) bool

func GetChangeAction

func GetChangeAction(change *object.Change) string

func GetChangePath

func GetChangePath(change *object.Change) string

func GetChanges

func GetChanges(commit *object.Commit, repo *git.Repository) (object.Changes, error)

func GetParentCommit

func GetParentCommit(commit *object.Commit, repo *git.Repository) (*object.Commit, error)

func GetRepositoryHistory

func GetRepositoryHistory(repository *git.Repository) ([]*object.Commit, error)

func NewRouter

func NewRouter(s *Session) *gin.Engine

func Pluralize

func Pluralize(count int, singular string, plural string) string

func SetAssets

func SetAssets(f fs.FS)

SetAssets registers the embedded asset filesystem. Call this before starting a Session.

func TruncateString

func TruncateString(str string, maxLength int) string

Types

type Finding

type Finding struct {
	Id              string
	FilePath        string
	Action          string
	Description     string
	Comment         string
	RepositoryOwner string
	RepositoryName  string
	CommitHash      string
	CommitMessage   string
	CommitAuthor    string
	FileUrl         string
	CommitUrl       string
	RepositoryUrl   string
}

func (*Finding) Initialize

func (f *Finding) Initialize()

type GithubOwner

type GithubOwner struct {
	Login     *string
	ID        *int64
	Type      *string
	Name      *string
	AvatarURL *string
	URL       *string
	Company   *string
	Blog      *string
	Location  *string
	Email     *string
	Bio       *string
}

func GetOrganizationMembers

func GetOrganizationMembers(login *string, client *github.Client) ([]*GithubOwner, error)

func GetUserOrOrganization

func GetUserOrOrganization(login string, client *github.Client) (*GithubOwner, error)

type GithubRepository

type GithubRepository struct {
	Owner         *string
	ID            *int64
	Name          *string
	FullName      *string
	CloneURL      *string
	URL           *string
	DefaultBranch *string
	Description   *string
	Homepage      *string
}

func GetRepositoriesFromOwner

func GetRepositoriesFromOwner(login *string, client *github.Client) ([]*GithubRepository, error)

type Logger

type Logger struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*Logger) Debug

func (l *Logger) Debug(format string, args ...interface{})

func (*Logger) Error

func (l *Logger) Error(format string, args ...interface{})

func (*Logger) Fatal

func (l *Logger) Fatal(format string, args ...interface{})

func (*Logger) Important

func (l *Logger) Important(format string, args ...interface{})

func (*Logger) Info

func (l *Logger) Info(format string, args ...interface{})

func (*Logger) Log

func (l *Logger) Log(level int, format string, args ...interface{})

func (*Logger) SetDebug

func (l *Logger) SetDebug(d bool)

func (*Logger) SetSilent

func (l *Logger) SetSilent(s bool)

func (*Logger) Warn

func (l *Logger) Warn(format string, args ...interface{})

type MatchFile

type MatchFile struct {
	Path      string
	Filename  string
	Extension string
}

func NewMatchFile

func NewMatchFile(path string) MatchFile

func (*MatchFile) IsSkippable

func (f *MatchFile) IsSkippable() bool

type Options

type Options struct {
	CommitDepth       *int
	GithubAccessToken *string `json:"-"`
	NoExpandOrgs      *bool
	Threads           *int
	Save              *string `json:"-"`
	Load              *string `json:"-"`
	BindAddress       *string
	Port              *int
	Silent            *bool
	Debug             *bool
	Version           *bool `json:"-"`
	Logins            []string
}

func ParseOptions

func ParseOptions() (Options, error)

type PatternSignature

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

func (PatternSignature) Comment

func (s PatternSignature) Comment() string

func (PatternSignature) Description

func (s PatternSignature) Description() string

func (PatternSignature) Match

func (s PatternSignature) Match(file MatchFile) bool

type Session

type Session struct {
	sync.Mutex

	Version           string
	Options           Options `json:"-"`
	Out               *Logger `json:"-"`
	Stats             *Stats
	GithubAccessToken string         `json:"-"`
	GithubClient      *github.Client `json:"-"`
	Router            *gin.Engine    `json:"-"`
	Targets           []*GithubOwner
	Repositories      []*GithubRepository
	Findings          []*Finding
}

func NewSession

func NewSession() (*Session, error)

func (*Session) AddFinding

func (s *Session) AddFinding(finding *Finding)

func (*Session) AddRepository

func (s *Session) AddRepository(repository *GithubRepository)

func (*Session) AddTarget

func (s *Session) AddTarget(target *GithubOwner)

func (*Session) Finish

func (s *Session) Finish()

func (*Session) InitGithubAccessToken

func (s *Session) InitGithubAccessToken()

func (*Session) InitGithubClient

func (s *Session) InitGithubClient()

func (*Session) InitLogger

func (s *Session) InitLogger()

func (*Session) InitRouter

func (s *Session) InitRouter()

func (*Session) InitStats

func (s *Session) InitStats()

func (*Session) InitThreads

func (s *Session) InitThreads()

func (*Session) SaveToFile

func (s *Session) SaveToFile(location string) error

func (*Session) Start

func (s *Session) Start()

type Signature

type Signature interface {
	Match(file MatchFile) bool
	Description() string
	Comment() string
}

type SimpleSignature

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

func (SimpleSignature) Comment

func (s SimpleSignature) Comment() string

func (SimpleSignature) Description

func (s SimpleSignature) Description() string

func (SimpleSignature) Match

func (s SimpleSignature) Match(file MatchFile) bool

type Stats

type Stats struct {
	sync.Mutex

	StartedAt    time.Time
	FinishedAt   time.Time
	Status       string
	Progress     float64
	Targets      int
	Repositories int
	Commits      int
	Files        int
	Findings     int
}

func (*Stats) IncrementCommits

func (s *Stats) IncrementCommits()

func (*Stats) IncrementFiles

func (s *Stats) IncrementFiles()

func (*Stats) IncrementFindings

func (s *Stats) IncrementFindings()

func (*Stats) IncrementRepositories

func (s *Stats) IncrementRepositories()

func (*Stats) IncrementTargets

func (s *Stats) IncrementTargets()

func (*Stats) UpdateProgress

func (s *Stats) UpdateProgress(current int, total int)

Jump to

Keyboard shortcuts

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