74 lines
2.1 KiB
Go
74 lines
2.1 KiB
Go
// Copyright 2022 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package app
|
|
|
|
// GIT diff
|
|
type GitDiff struct {
|
|
AddedLines int `json:"added_lines"`
|
|
DeletedLines int `json:"deleted_lines"`
|
|
BinaryDiff bool `json:"binary_diff"`
|
|
}
|
|
|
|
// GIT tree object (files,dirs...)
|
|
type GitTreeObj struct {
|
|
Permissions string `json:"permissions"`
|
|
Type string `json:"type"`
|
|
Sha string `json:"sha"`
|
|
Filename string `json:"filename"`
|
|
BranchDiff *GitDiff `json:"branch_diff"`
|
|
}
|
|
|
|
// GitProject
|
|
type GitProject struct {
|
|
RepoDir string `json:"repo_dir"` // Relative directory within repo
|
|
WorkDir string `json:"working_dir"` // Working directory
|
|
GitDir string `json:"git_dir"` // GIT directory
|
|
Remote string `json:"remote"` // Remote Name
|
|
RemoteUrl string `json:"remote_url"` // Remote URL
|
|
Revision string `json:"revision"` // Revision (SHA)
|
|
Files map[string]*GitTreeObj `json:"files"` // Files within the project
|
|
}
|
|
|
|
type GitCommitFileType int
|
|
|
|
const (
|
|
GitFileAdded GitCommitFileType = iota
|
|
GitFileModified
|
|
GitFileRemoved
|
|
)
|
|
|
|
type GitCommitFile struct {
|
|
Filename string `json:"filename"`
|
|
Type GitCommitFileType `json:"type"`
|
|
}
|
|
|
|
// Git commit
|
|
type GitCommit struct {
|
|
Sha string `json:"sha"`
|
|
Files []GitCommitFile `json:"files"`
|
|
}
|
|
|
|
func (t GitCommitFileType) String() string {
|
|
switch t {
|
|
case GitFileModified:
|
|
return "M"
|
|
case GitFileAdded:
|
|
return "A"
|
|
case GitFileRemoved:
|
|
return "R"
|
|
}
|
|
return ""
|
|
}
|