summaryrefslogtreecommitdiff
path: root/repo.proto
blob: 62f287f46b53c54c485608ac6715ce7ac89df096 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
syntax = "proto3";

package gitpb;

// stores information about git repos
// If the project is in golang, also gets the go language dependacies

import "gitTag.proto";
import "goDep.proto";
import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp

// global settings for autogenpb `autogenpb:mutex`

message Repo {						// `autogenpb:marshal`
	string 	fullPath			= 1;		// the actual path to the .git directory: '/home/devel/golang.org/x/tools'
	google.protobuf.Timestamp lastPull	= 2;		// last time a git pull was done
	string 	masterBranchName		= 3; 		// git 'main' or 'master' branch name
	string 	develBranchName			= 4; 		// whatever the git 'devel' branch name is
	string 	userBranchName			= 5; 		// whatever your username branch is
	GitTags tags				= 6;		// known tags
	string	goPath				= 7;	// `autogenpb:unique` 	// the logical path as used by golang: 'go.wit.com/apps/helloworld'
	bool	goLibrary 			= 8;		// is this a golang library?
	bool	goBinary  			= 9;		// is this a golang binary?
	bool	goPrimitive		 	= 10;		// if this is a golang primitive (only has go.mod)
	bool	goPlugin			= 11;		// is this a golang plugin?
	GoDeps	goDeps 				= 12;		// what is in the go.sum file
	google.protobuf.Timestamp lastGoDep	= 13;		// last time go.sum was processed
	bool	dirty				= 14;		// if git says things have been changed
	GoDeps	published			= 15;		// the last published go.mod/go.sum
	string	targetVersion			= 16; 		// useful during the package release process
	bool	readOnly			= 17; 		// tracks access to 'git push'
	string	URL				= 18; 		// the URL. amazingly I didn't add this earlier. duh.
	bool	goProtobuf			= 19;		// autogen go files from .proto
	string	desc				= 20; 		// what is this repo?
	bytes	goMod				= 21; 		// the last go.mod file
	bytes	goSum				= 22; 		// the last go.sum file
}

message Repos {				// `autogenpb:marshal`
	string   uuid	        = 1;    // `autogenpb:uuid:8daaeba1-fb1f-4762-ae6e-95a55d352673`
	string   version        = 2;    // maybe can be used for protobuf schema change violations
	repeated Repo repos 	= 3;
}