From e31051062c160b03f78d2624c72f316642508251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bao=20=E4=B8=80?= <215051726@qq.com> Date: Tue, 17 Dec 2024 22:30:57 +0800 Subject: [PATCH] Allow repo add to set authentication for private repository (#370) Co-authored-by: lei wang --- cmd/repo/add.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cmd/repo/add.go b/cmd/repo/add.go index d217ceb69..e4dd6f63b 100644 --- a/cmd/repo/add.go +++ b/cmd/repo/add.go @@ -45,9 +45,9 @@ Adds a repository to the system. URLs, local files or inline repo can be specifi luet repo add ... --name "foo" -# Inline: +# Inline (provided you have $PASSWORD environent variable set): - luet repo add testfo --description "Bar" --url "FOZZ" --type "ff" + luet repo add testfo --description "Bar" --url "FOZZ" --type "ff" --username "user" --passwd $(echo "$PASSWORD") `, Run: func(cmd *cobra.Command, args []string) { @@ -61,6 +61,8 @@ Adds a repository to the system. URLs, local files or inline repo can be specifi url, _ := cmd.Flags().GetString("url") ref, _ := cmd.Flags().GetString("reference") prio, _ := cmd.Flags().GetInt("priority") + username, _ := cmd.Flags().GetString("username") + passwd, _ := cmd.Flags().GetString("passwd") if len(util.DefaultContext.Config.RepositoriesConfDir) == 0 && d == "" { util.DefaultContext.Fatal("No repository dirs defined") @@ -82,6 +84,10 @@ Adds a repository to the system. URLs, local files or inline repo can be specifi Type: t, Urls: []string{url}, Priority: prio, + Authentication: map[string]string{ + "username": username, + "password": passwd, + }, } } else { r, err = types.LoadRepository([]byte(str)) @@ -103,6 +109,12 @@ Adds a repository to the system. URLs, local files or inline repo can be specifi if prio != 0 { r.Priority = prio } + if username != "" && passwd != "" { + r.Authentication = map[string]string{ + "username": username, + "password": passwd, + } + } } file := filepath.Join(util.DefaultContext.Config.System.Rootfs, d, fmt.Sprintf("%s.yaml", r.Name)) @@ -133,5 +145,7 @@ Adds a repository to the system. URLs, local files or inline repo can be specifi cmd.Flags().String("url", "", "Repository URL") cmd.Flags().String("reference", "", "Repository Reference ID") cmd.Flags().IntP("priority", "p", 99, "repository prio") + cmd.Flags().String("username", "", "repository username") + cmd.Flags().String("passwd", "", "repository password") return cmd }