git

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2024 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package git implements interface for gathering git history diff data.

Use constructors to initialize it (InitPR, InitLast)

Index

Constants

View Source
const (
	// Equal item represents an equals diff.
	Equal operation = iota
	// Add item represents an insert diff.
	Add
	// Delete item represents a delete diff.
	Delete
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Change

type Change interface {
	// Branches returns PR source and target branch
	Branches() (source, target string)
	// Commits returns PR commits
	Commits() ([]Commit, error)
	// FilesDiff returns PR repository files diff
	FilesDiff() ([]FileChange, error)
}

Change is abstraction upon git using go-git library Encapsulates work with pull request history diff

func GetChange

func GetChange(opts ...ChangeOption) (Change, error)

type ChangeOption

type ChangeOption func(settings *getSettings)

type Chunk

type Chunk struct {
	// Content contains the portion of the file.
	Type Operation
	// Type contains the Operation to do with this Chunk.
	Content string
}

Chunk represents a portion of a file transformation into another.

type Commit

type Commit struct {
	// Message is the commit message, contains arbitrary text.
	Message string
	// Author is the original author of the commit.
	Author Signature
	// Committer is the one performing the commit, might be different from Author.
	Committer Signature
	// ParentsCount is count of the parent commits of the commit.
	ParentsCount int
}

Commit data

func (Commit) Subject

func (c Commit) Subject() string

type FileChange

type FileChange struct {
	// Path is file path after change
	// empty if file deleted
	Path string
	// PrevPath is file path before change
	// empty if file created
	// diff from Path if file renamed
	PrevPath string
	// Chunks returns a slice of ordered changes to transform "from" File into
	// "to" File. If the file is a binary one, Chunks will be empty.
	Chunks []Chunk
}

FileChange represents the necessary steps to transform one file into another.

func (FileChange) Stats

func (c FileChange) Stats() (s Stat)

type Operation

type Operation interface {
	// contains filtered or unexported methods
}

Operation defines the operation of a diff item.

type Signature

type Signature struct {
	// Name represents a person name. It is an arbitrary string.
	Name string
	// Email is an email, but it cannot be assumed to be well-formed.
	Email string
	// When is the timestamp of the signature.
	When time.Time
}

Signature is used to identify who and when created a commit or tag.

type Stat

type Stat struct {
	Additions, Deletions int
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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