1*105f6285SAndroid Build Coastguard Worker// Copyright 2022 The Android Open Source Project 2*105f6285SAndroid Build Coastguard Worker// 3*105f6285SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*105f6285SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*105f6285SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*105f6285SAndroid Build Coastguard Worker// 7*105f6285SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*105f6285SAndroid Build Coastguard Worker// 9*105f6285SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*105f6285SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*105f6285SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*105f6285SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*105f6285SAndroid Build Coastguard Worker// limitations under the License. 14*105f6285SAndroid Build Coastguard Worker 15*105f6285SAndroid Build Coastguard Workerpackage app 16*105f6285SAndroid Build Coastguard Worker 17*105f6285SAndroid Build Coastguard Worker// GIT diff 18*105f6285SAndroid Build Coastguard Workertype GitDiff struct { 19*105f6285SAndroid Build Coastguard Worker AddedLines int `json:"added_lines"` 20*105f6285SAndroid Build Coastguard Worker DeletedLines int `json:"deleted_lines"` 21*105f6285SAndroid Build Coastguard Worker BinaryDiff bool `json:"binary_diff"` 22*105f6285SAndroid Build Coastguard Worker} 23*105f6285SAndroid Build Coastguard Worker 24*105f6285SAndroid Build Coastguard Worker// GIT tree object (files,dirs...) 25*105f6285SAndroid Build Coastguard Workertype GitTreeObj struct { 26*105f6285SAndroid Build Coastguard Worker Permissions string `json:"permissions"` 27*105f6285SAndroid Build Coastguard Worker Type string `json:"type"` 28*105f6285SAndroid Build Coastguard Worker Sha string `json:"sha"` 29*105f6285SAndroid Build Coastguard Worker Filename string `json:"filename"` 30*105f6285SAndroid Build Coastguard Worker BranchDiff *GitDiff `json:"branch_diff"` 31*105f6285SAndroid Build Coastguard Worker} 32*105f6285SAndroid Build Coastguard Worker 33*105f6285SAndroid Build Coastguard Worker// GitProject 34*105f6285SAndroid Build Coastguard Workertype GitProject struct { 35*105f6285SAndroid Build Coastguard Worker RepoDir string `json:"repo_dir"` // Relative directory within repo 36*105f6285SAndroid Build Coastguard Worker WorkDir string `json:"working_dir"` // Working directory 37*105f6285SAndroid Build Coastguard Worker GitDir string `json:"git_dir"` // GIT directory 38*105f6285SAndroid Build Coastguard Worker Remote string `json:"remote"` // Remote Name 39*105f6285SAndroid Build Coastguard Worker RemoteUrl string `json:"remote_url"` // Remote URL 40*105f6285SAndroid Build Coastguard Worker Revision string `json:"revision"` // Revision (SHA) 41*105f6285SAndroid Build Coastguard Worker Files map[string]*GitTreeObj `json:"files"` // Files within the project 42*105f6285SAndroid Build Coastguard Worker} 43*105f6285SAndroid Build Coastguard Worker 44*105f6285SAndroid Build Coastguard Workertype GitCommitFileType int 45*105f6285SAndroid Build Coastguard Worker 46*105f6285SAndroid Build Coastguard Workerconst ( 47*105f6285SAndroid Build Coastguard Worker GitFileAdded GitCommitFileType = iota 48*105f6285SAndroid Build Coastguard Worker GitFileModified 49*105f6285SAndroid Build Coastguard Worker GitFileRemoved 50*105f6285SAndroid Build Coastguard Worker) 51*105f6285SAndroid Build Coastguard Worker 52*105f6285SAndroid Build Coastguard Workertype GitCommitFile struct { 53*105f6285SAndroid Build Coastguard Worker Filename string `json:"filename"` 54*105f6285SAndroid Build Coastguard Worker Type GitCommitFileType `json:"type"` 55*105f6285SAndroid Build Coastguard Worker} 56*105f6285SAndroid Build Coastguard Worker 57*105f6285SAndroid Build Coastguard Worker// Git commit 58*105f6285SAndroid Build Coastguard Workertype GitCommit struct { 59*105f6285SAndroid Build Coastguard Worker Sha string `json:"sha"` 60*105f6285SAndroid Build Coastguard Worker Files []GitCommitFile `json:"files"` 61*105f6285SAndroid Build Coastguard Worker} 62*105f6285SAndroid Build Coastguard Worker 63*105f6285SAndroid Build Coastguard Workerfunc (t GitCommitFileType) String() string { 64*105f6285SAndroid Build Coastguard Worker switch t { 65*105f6285SAndroid Build Coastguard Worker case GitFileModified: 66*105f6285SAndroid Build Coastguard Worker return "M" 67*105f6285SAndroid Build Coastguard Worker case GitFileAdded: 68*105f6285SAndroid Build Coastguard Worker return "A" 69*105f6285SAndroid Build Coastguard Worker case GitFileRemoved: 70*105f6285SAndroid Build Coastguard Worker return "R" 71*105f6285SAndroid Build Coastguard Worker } 72*105f6285SAndroid Build Coastguard Worker return "" 73*105f6285SAndroid Build Coastguard Worker} 74