@@ -24,6 +24,7 @@ var projectCreateCmd = &cobra.Command{
2424 Example : heredoc .Doc (`
2525 lab project create myproject
2626 lab project create myproject -n "new proj"
27+ lab project create myproject -r myupstream
2728 lab project create -g mygroup myproject
2829 lab project create mygroup/myproject -n "new proj"
2930 lab project create myproject --http
@@ -34,9 +35,10 @@ var projectCreateCmd = &cobra.Command{
3435 PersistentPreRun : labPersistentPreRun ,
3536 Run : func (cmd * cobra.Command , args []string ) {
3637 var (
37- name , _ = cmd .Flags ().GetString ("name" )
38- desc , _ = cmd .Flags ().GetString ("description" )
39- group , _ = cmd .Flags ().GetString ("group" )
38+ name , _ = cmd .Flags ().GetString ("name" )
39+ desc , _ = cmd .Flags ().GetString ("description" )
40+ group , _ = cmd .Flags ().GetString ("group" )
41+ remote , _ = cmd .Flags ().GetString ("remote" )
4042 )
4143
4244 g , path := determineNamespacePath (args , name )
@@ -88,27 +90,34 @@ var projectCreateCmd = &cobra.Command{
8890 if err != nil {
8991 log .Fatal (err )
9092 }
91- if git .InsideGitRepo () {
92- urlToRepo := labURLToRepo (p )
93- err = git .RemoteAdd ("origin" , urlToRepo , "." )
94- if err != nil {
95- log .Fatal (err )
93+
94+ if remote != "" {
95+ if git .InsideGitRepo () {
96+ urlToRepo := labURLToRepo (p )
97+ err = git .RemoteAdd (remote , urlToRepo , "." )
98+ if err != nil {
99+ log .Fatal (err )
100+ }
101+ } else {
102+ log .Warnf ("outside of a git repo. remote '%s' not added\n " , remote )
96103 }
97104 }
105+
98106 fmt .Println (strings .TrimSuffix (p .HTTPURLToRepo , ".git" ))
99107 },
100108}
101109
102110func determineNamespacePath (args []string , name string ) (string , string ) {
103- var path string
104111 if len (args ) > 0 {
105112 ps := strings .Split (args [0 ], "/" )
106113 if len (ps ) == 1 {
107114 return "" , ps [0 ]
108115 }
109116 return strings .Join (ps [:len (ps )- 1 ], "/" ), ps [len (ps )- 1 ]
110117 }
111- if path == "" && name == "" && git .InsideGitRepo () {
118+
119+ var path string
120+ if name == "" && git .InsideGitRepo () {
112121 wd , err := git .WorkingDir ()
113122 if err != nil {
114123 log .Fatal (err )
@@ -123,6 +132,7 @@ func init() {
123132 projectCreateCmd .Flags ().StringP ("name" , "n" , "" , "name of the new project" )
124133 projectCreateCmd .Flags ().StringP ("group" , "g" , "" , "group name (also known as namespace)" )
125134 projectCreateCmd .Flags ().StringP ("description" , "d" , "" , "description of the new project" )
135+ projectCreateCmd .Flags ().StringP ("remote" , "r" , "" , "add remote referring to the new project" )
126136 projectCreateCmd .Flags ().BoolVarP (& private , "private" , "p" , false , "make project private: visible only to project members" )
127137 projectCreateCmd .Flags ().BoolVar (& public , "public" , false , "make project public: visible without any authentication" )
128138 projectCreateCmd .Flags ().BoolVar (& internal , "internal" , false , "make project internal: visible to any authenticated user (default)" )
0 commit comments