You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
3.1 KiB

package entities
import (
"repodiff/constants"
)
type Project struct {
URL string `json:"url"`
Branch string `json:"branch"`
}
type DiffTarget struct {
Upstream Project `json:"upstream"`
Downstream Project `json:"downstream"`
}
type ApplicationConfig struct {
OutputDirectory string `json:"output_directory"`
AndroidProjectDir string `json:"android_project_dir"`
DiffScript string `json:"diff_script"`
DiffTargets []DiffTarget `json:"diff_targets"`
Port int `json:"port"`
CommonUpstream Project `json:"common_upstream"`
}
type DiffRow struct {
Date string
DownstreamProject string
UpstreamProject string
DiffStatus int
FilesChanged int
LineInsertions int
LineDeletions int
LineChanges int
CommitsNotUpstreamed int
DBInsertTimestamp int64
}
type AnalyzedDiffRow struct {
DiffRow
Type constants.ProjectType
}
type CommitRow struct {
Date string
Commit string
DownstreamProject string
Author string
Subject string
}
type AnalyzedCommitRow struct {
CommitRow
Type constants.ProjectType
}
type MappedDiffTarget struct {
UpstreamTarget int16
DownstreamTarget int16
}
type StatusMessage struct {
JobStatus string
Meta string
}
type remote struct {
Text string `xml:",chardata"`
Fetch string `xml:"fetch,attr"`
Name string `xml:"name,attr"`
Review string `xml:"review,attr"`
}
// "default" is the actual corresponding name in the XML tree but is also a reserved keyword in Golang; renamed as "defaultXML"
type defaultXML struct {
Text string `xml:",chardata"`
DestBranch string `xml:"dest-branch,attr"`
Remote string `xml:"remote,attr"`
Revision string `xml:"revision,attr"`
SyncJ string `xml:"sync-j,attr"`
}
type manifestServer struct {
Text string `xml:",chardata"`
URL string `xml:"url,attr"`
}
type copyFile struct {
Text string `xml:",chardata"`
Dest string `xml:"dest,attr"`
Src string `xml:"src,attr"`
}
type linkFile struct {
Text string `xml:",chardata"`
Dest string `xml:"dest,attr"`
Src string `xml:"src,attr"`
}
type ManifestProject struct {
Text string `xml:",chardata"`
Groups string `xml:"groups,attr"`
Name string `xml:"name,attr"`
CloneDepth string `xml:"clone-depth,attr"`
Path string `xml:"path,attr"`
Copyfile copyFile `xml:"copyfile"`
Linkfile []linkFile `xml:"linkfile"`
}
type repoHooks struct {
Text string `xml:",chardata"`
EnabledList string `xml:"enabled-list,attr"`
InProject string `xml:"in-project,attr"`
}
type ManifestFile struct {
Text string `xml:",chardata"`
Remote remote `xml:"remote"`
Default defaultXML `xml:"default"`
ManifestServer manifestServer `xml:"manifest-server"`
Projects []ManifestProject `xml:"project"`
RepoHooks repoHooks `xml:"repo-hooks"`
}
type ManifestFileGroup struct {
Common ManifestFile
Upstream ManifestFile
Downstream ManifestFile
}
type RepoTimestamp int64