| // 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 "" |
| } |