gitgraph

package
v0.19.4 Latest Latest
Warning

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

Go to latest
Published: May 24, 2023 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RelationCommit = &Commit{
	Row: -1,
}

RelationCommit represents an empty relation commit

Functions

This section is empty.

Types

type Commit

type Commit struct {
	Commit       *git.Commit
	User         *user_model.User
	Verification *asymkey_model.CommitVerification
	Status       *git_model.CommitStatus
	Flow         int64
	Row          int
	Column       int
	Refs         []git.Reference
	Rev          string
	Date         string
	ShortRev     string
	Subject      string
}

Commit represents a commit at co-ordinate X, Y with the data

func NewCommit

func NewCommit(row, column int, line []byte) (*Commit, error)

NewCommit creates a new commit from a provided line

func (*Commit) OnlyRelation

func (c *Commit) OnlyRelation() bool

OnlyRelation returns whether this a relation only commit

type Flow

type Flow struct {
	ID          int64
	ColorNumber int
	Glyphs      []Glyph
	Commits     []*Commit
	MinRow      int
	MinColumn   int
	MaxRow      int
	MaxColumn   int
}

Flow represents a series of glyphs

func NewFlow

func NewFlow(flowID int64, color, row, column int) *Flow

NewFlow creates a new flow

func (*Flow) AddGlyph

func (flow *Flow) AddGlyph(row, column int, glyph byte)

AddGlyph adds glyph at row and column

func (*Flow) Color16

func (flow *Flow) Color16() int

Color16 wraps the color numbers around mod 16

type Glyph

type Glyph struct {
	Row    int
	Column int
	Glyph  byte
}

Glyph represents a co-ordinate and glyph

type Graph

type Graph struct {
	Flows     map[int64]*Flow
	Commits   []*Commit
	MinRow    int
	MinColumn int
	MaxRow    int
	MaxColumn int
	// contains filtered or unexported fields
}

Graph represents a collection of flows

func GetCommitGraph

func GetCommitGraph(r *git.Repository, page, maxAllowedColors int, hidePRRefs bool, branches, files []string) (*Graph, error)

GetCommitGraph return a list of commit (GraphItems) from all branches

func NewGraph

func NewGraph() *Graph

NewGraph creates a basic graph

func (*Graph) AddCommit

func (graph *Graph) AddCommit(row, column int, flowID int64, data []byte) error

AddCommit adds a commit at row, column on flowID with the provided data

func (*Graph) AddGlyph

func (graph *Graph) AddGlyph(row, column int, flowID int64, color int, glyph byte)

AddGlyph adds glyph to flows

func (*Graph) Height

func (graph *Graph) Height() int

Height returns the height of the graph

func (*Graph) LoadAndProcessCommits

func (graph *Graph) LoadAndProcessCommits(ctx context.Context, repository *repo_model.Repository, gitRepo *git.Repository) error

LoadAndProcessCommits will load the git.Commits for each commit in the graph, the associate the commit with the user author, and check the commit verification before finally retrieving the latest status

func (*Graph) Width

func (graph *Graph) Width() int

Width returns the width of the graph

type Parser

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

Parser represents a git graph parser. It is stateful containing the previous glyphs, detected flows and color assignments.

func (*Parser) AddLineToGraph

func (parser *Parser) AddLineToGraph(graph *Graph, row int, line []byte) error

AddLineToGraph adds the line as a row to the graph

func (*Parser) ParseGlyphs

func (parser *Parser) ParseGlyphs(glyphs []byte)

ParseGlyphs parses the provided glyphs and sets the internal state

func (*Parser) Reset

func (parser *Parser) Reset()

Reset resets the internal parser state.

Jump to

Keyboard shortcuts

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