summaryrefslogtreecommitdiff
path: root/gitTag.proto
blob: 3e28cf00f0189e4668d1dcbeea6e941348df7d17 (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
syntax = "proto3";

package gitpb;

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

message GitRemote {					// `autogenpb:nomutex`
	string url              = 1;
	string fetch            = 2;
}

message GitBranch {					// `autogenpb:nomutex`
	string remote           = 1;    // the name of the remote repo
	string merge            = 2;    // the merge path from the config file
	string name             = 3;    // the branch name from the config file
}

// readGitConfig reads and parses the .git/config file
message GitConfig {					// `autogenpb:nomutex`
	map<string, string>       core            = 1; // map[origin] = "https:/git.wit.org/gui/gadgets"
	map<string, GitRemote>    remotes         = 2; // map[origin] = "https:/git.wit.org/gui/gadgets"
	map<string, GitBranch>    branches        = 3; // map[guimaster] = origin guimaster
	map<string, string>       submodules      = 4;
	map<string, string>       hashes          = 5;
	map<string, string>       versions        = 6;
	repeated GitBranch local                  = 7; // move this this and away from the map<> variables
}

message GitTag {					// `autogenpb:nomutex`
	string	refname 			= 1;	// `autogenpb:unique` `autogenpb:sort` 	// tag name. treated as unique
	google.protobuf.Timestamp creatordate	= 2;	// git creatordate
	google.protobuf.Timestamp authordate	= 3;	// git author date
	string	hash				= 4;	// `autogenpb:unique` // git hash
	string	subject				= 5;	// git tag subject
}

message GitTags {			// `autogenpb:marshal` `autogenpb:nomutex`
	string   uuid	        = 1;    // `autogenpb:uuid:ffdff813-0316-4372-9e82-4c1c7d202526`
	string   version        = 2;    // `autogenpb:version:v0.0.47`
	repeated GitTag gitTags	= 3;
}