git

package
v3.49.0 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2023 License: AGPL-3.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UnitRepo string = "repo"
	UnitDir  string = "dir"
)

Variables

This section is empty.

Functions

func CleanOnError

func CleanOnError(err *error, path string)

func CloneRepo

func CloneRepo(ctx context.Context, userInfo *url.Userinfo, gitUrl string, args ...string) (string, *git.Repository, error)

func CloneRepoUsingSSH added in v3.8.0

func CloneRepoUsingSSH(ctx context.Context, gitUrl string, args ...string) (string, *git.Repository, error)

CloneRepoUsingSSH clones a repo using SSH.

func CloneRepoUsingToken

func CloneRepoUsingToken(ctx context.Context, token, gitUrl, user string, args ...string) (string, *git.Repository, error)

CloneRepoUsingToken clones a repo using a provided token.

func CloneRepoUsingUnauthenticated

func CloneRepoUsingUnauthenticated(ctx context.Context, url string, args ...string) (string, *git.Repository, error)

CloneRepoUsingUnauthenticated clones a repo with no authentication required.

func GenerateLink(repo, commit, file string, line int64) string

GenerateLink crafts a link to the specific file from a commit. This works in most major git providers (Github/Gitlab)

func GitCmdCheck

func GitCmdCheck() error

GitCmdCheck checks if git is installed and meets 2.20.0<=x<3.0.0 version requirements.

func GitURLParse added in v3.44.0

func GitURLParse(gitURL string) (*url.URL, error)

func PrepareRepo

func PrepareRepo(ctx context.Context, uriString string) (string, bool, error)

PrepareRepo clones a repo if possible and returns the cloned repo path.

func PrepareRepoSinceCommit added in v3.6.1

func PrepareRepoSinceCommit(ctx context.Context, uriString, commitHash string) (string, bool, error)

PrepareRepoSinceCommit clones a repo starting at the given commitHash and returns the cloned repo path.

func RepoFromPath

func RepoFromPath(path string, isBare bool) (*git.Repository, error)

func TryAdditionalBaseRefs

func TryAdditionalBaseRefs(repo *git.Repository, base string) (*plumbing.Hash, error)

TryAdditionalBaseRefs looks for additional possible base refs for a repo and returns a hash if found.

func UnmarshalUnit added in v3.41.1

func UnmarshalUnit(data []byte) (sources.SourceUnit, error)

Helper function to unmarshal raw bytes into our SourceUnit struct.

Types

type Git

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

func NewGit

func NewGit(sourceType sourcespb.SourceType, jobID, sourceID int64, sourceName string, verify bool, concurrency int,
	sourceMetadataFunc func(file, email, commit, timestamp, repository string, line int64) *source_metadatapb.MetaData,
) *Git

func (*Git) CommitsScanned added in v3.45.1

func (s *Git) CommitsScanned() uint64

func (*Git) ScanCommits

func (s *Git) ScanCommits(ctx context.Context, repo *git.Repository, path string, scanOptions *ScanOptions, chunksChan chan *sources.Chunk) error

func (*Git) ScanRepo

func (s *Git) ScanRepo(ctx context.Context, repo *git.Repository, repoPath string, scanOptions *ScanOptions, chunksChan chan *sources.Chunk) error

func (*Git) ScanStaged added in v3.28.5

func (s *Git) ScanStaged(ctx context.Context, repo *git.Repository, path string, scanOptions *ScanOptions, chunksChan chan *sources.Chunk) error

ScanStaged chunks staged changes.

type ScanOption

type ScanOption func(*ScanOptions)

func ScanOptionBare added in v3.47.0

func ScanOptionBare(bare bool) ScanOption

func ScanOptionBaseHash

func ScanOptionBaseHash(hash string) ScanOption

func ScanOptionExcludeGlobs added in v3.31.0

func ScanOptionExcludeGlobs(globs []string) ScanOption

func ScanOptionFilter

func ScanOptionFilter(filter *common.Filter) ScanOption

func ScanOptionHeadCommit

func ScanOptionHeadCommit(hash string) ScanOption

func ScanOptionLogOptions

func ScanOptionLogOptions(logOptions *git.LogOptions) ScanOption

func ScanOptionMaxDepth

func ScanOptionMaxDepth(maxDepth int64) ScanOption

type ScanOptions

type ScanOptions struct {
	Filter       *common.Filter
	BaseHash     string // When scanning a git.Log, this is the oldest/first commit.
	HeadHash     string
	MaxDepth     int64
	Bare         bool
	ExcludeGlobs []string
	LogOptions   *git.LogOptions
}

func NewScanOptions

func NewScanOptions(options ...ScanOption) *ScanOptions

type Source

type Source struct {
	sources.Progress
	// contains filtered or unexported fields
}

func (*Source) Chunks

func (s *Source) Chunks(ctx context.Context, chunksChan chan *sources.Chunk) error

Chunks emits chunks of bytes over a channel.

func (*Source) Init

func (s *Source) Init(aCtx context.Context, name string, jobId, sourceId int64, verify bool, connection *anypb.Any, concurrency int) error

Init returns an initialized GitHub source.

func (*Source) JobID

func (s *Source) JobID() int64

func (*Source) SourceID

func (s *Source) SourceID() int64

func (*Source) Type

func (s *Source) Type() sourcespb.SourceType

Type returns the type of source. It is used for matching source types in configuration and job input.

func (*Source) UnmarshalSourceUnit added in v3.41.1

func (s *Source) UnmarshalSourceUnit(data []byte) (sources.SourceUnit, error)

func (*Source) WithPreserveTempDirs added in v3.46.2

func (s *Source) WithPreserveTempDirs(preserve bool)

WithPreserveTempDirs sets whether to preserve temp directories when scanning the provided list of s.conn.Directories. NOTE: This is *only* for s.conn.Directories, not all temp directories created. This is also a kludge and should be refactored away.

func (*Source) WithScanOptions added in v3.46.2

func (s *Source) WithScanOptions(scanOptions *ScanOptions)

WithScanOptions sets the scan options.

type SourceUnit added in v3.41.1

type SourceUnit struct {
	Kind string `json:"kind"`
	ID   string `json:"id"`
}

A git source unit can be two kinds of units: either a local directory path or a remote repository.

func (SourceUnit) SourceUnitID added in v3.41.1

func (u SourceUnit) SourceUnitID() string

Implement sources.SourceUnit interface.

Jump to

Keyboard shortcuts

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