Documentation
¶
Overview ¶
Package model provides data models related to source code repositories.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( StatusAdded = "added" StatusDeleted = "deleted" StatusModified = "modified" StatusRenamed = "renamed" StatusCopied = "copied" )
Status of a file touched by a commit.
Functions ¶
This section is empty.
Types ¶
type Commit ¶
type Commit struct {
// VCSID represents the VCS interanl identification of a commit.
// In the case of Git, for instance, it is the commit SHA.
VCSID string `json:"vcs_id"`
// Message represents the commits message.
Message string `json:"message"`
// Author represents the developer that authored the changes made
// in the commit.
Author Developer `json:"author"`
// Committer represents the developer that commited the changes.
// Most of the time, the committer is also the author.
Committer Developer `json:"committer"`
// AuthorDate represents the date when the commit was created.
AuthorDate time.Time `json:"author_date"`
// CommitDate represents the date when the commit was committed.
CommitDate time.Time `json:"commit_date"`
// DiffDelta represents the changes maed by the commit.
DiffDelta []DiffDelta `json:"diff_delta,omitempty"`
// FileChangedCount reprensents how many files have been touched by the
// commit.
FileChangedCount int `json:"file_changed_count"`
// InsertionsCount represents how many new lines have been added.
InsertionsCount int `json:"insertions_count"`
// DeletionsCount represents how many lines have been removed.
DeletionsCount int `json:"deletions_count"`
}
Commit is a representation of a VCS commit.
type Developer ¶
type Developer struct {
// Name represents the name of a developer.
Name string `json:"name"`
// Email is the email of a developer.
Email string `json:"email"`
}
Developer represents someone linked to a source code repository, be it either as a commiter or commit author (which is not mutually exclusive).
type DiffDelta ¶
type DiffDelta struct {
// Patch represents the difference between a commit and its parent.
Patch *string `json:"patch,omitempty"`
// Status gives information about whether the file has been added, deleted
// modified, renamed of copied.
Status *string `json:"status,omitempty"`
// Binary gives information about whether the file is a binary or not.
Binary *bool `json:"binary,omitempty"`
// Similarity is a score that indicates how similar the file is from its
// state in the previous commit.
// A similarity score is a value between 0 and 100 indicating how similar
// the old and new files are. The higher the value, the more similar the
// files are.
Similarity *uint `json:"similarity,omitempty"`
// OldFilePath represents the path to the old file.
OldFilePath *string `json:"old_file_path,omitempty"`
// NewFilePath represents the path to the new file.
NewFilePath *string `json:"new_file_path,omitempty"`
}
DiffDelta represents a delta difference between a commit and its parent.
type Repository ¶
type Repository struct {
// Name is the name of the repository.
Name string `json:"name"`
// VCS is the VCS type of the repository (Git, Mercurial, ...).
VCS string `json:"vcs"`
// CloneURL represents the URL from which the repository was cloned.
CloneURL string `json:"clone_url"`
// ClonePath is the absolute path to which the repository was cloned
// on the file system.
ClonePath string `json:"clone_path"`
// DefaultBranch is the branch that was active when the repository
// information were obtained..
DefaultBranch string `json:"default_branch"`
// Commits is the list of commits of a repository.
// Note that only the commit of the default branch are retrieved.
Commits []Commit `json:"commits"`
}
Repository represents a source code repository.
Click to show internal directories.
Click to hide internal directories.