syntax = "proto3"; package forgepb; import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp // define 3 branches. that is all that is supported // the term 'master' is used in the code because 'main' is a reserved word in golang already // allow 'read only' and 'private' flags // package names sometimes must be different than the binary name // for example 'zookeeper' is packaged as 'zookeeper-go' // due to the prior apache foundation project. This happens and is ok! message Repo { string name = 1; string version = 2; string masterBranch = 3; // git 'main' or 'master' branch name string develBranch = 4; // whatever the git 'devel' branch name is string userBranch = 5; // whatever your username branch is bool readonly = 6; // if you have write access to the repo bool private = 7; // if the repo can be published string debname = 8; // this is the actual .deb name of the package string goPath = 9; // Examples: 'go.wit.com/apps/go-clone' or "~/mythings" or "/home/src/foo" google.protobuf.Timestamp verstamp = 10; // the git commit timestamp of the version } // TODO: autogen 'Repos' message Repos { string uuid = 1; // could be useful for /usr/share/file/magic someday? string version = 2; // could be used for protobuf schema change violations? repeated Repo repos = 3; }