Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package harbor-cli for openSUSE:Factory 
checked in at 2026-08-04 23:28:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/harbor-cli (Old)
 and      /work/SRC/openSUSE:Factory/.harbor-cli.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "harbor-cli"

Tue Aug  4 23:28:40 2026 rev:19 rq:1369444 version:0.0.25

Changes:
--------
--- /work/SRC/openSUSE:Factory/harbor-cli/harbor-cli.changes    2026-07-08 
17:48:20.686081549 +0200
+++ /work/SRC/openSUSE:Factory/.harbor-cli.new.16738/harbor-cli.changes 
2026-08-04 23:28:43.902455174 +0200
@@ -1,0 +2,9 @@
+Tue Aug 04 08:33:40 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.0.25:
+  * feat: add logout command (#1016)
+  * fix: set XIsResourceName for immutable rule APIs so numeric
+    project names resolve correctly during force delete (#990)
+  * Update harbor-cli manifest
+
+-------------------------------------------------------------------

Old:
----
  harbor-cli-0.0.24.obscpio

New:
----
  harbor-cli-0.0.25.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ harbor-cli.spec ++++++
--- /var/tmp/diff_new_pack.5OBwxf/_old  2026-08-04 23:28:45.098497468 +0200
+++ /var/tmp/diff_new_pack.5OBwxf/_new  2026-08-04 23:28:45.102497610 +0200
@@ -19,7 +19,7 @@
 %define executable_name harbor
 
 Name:           harbor-cli
-Version:        0.0.24
+Version:        0.0.25
 Release:        0
 Summary:        CLI for the Harbor cloud native registry
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.5OBwxf/_old  2026-08-04 23:28:45.138498883 +0200
+++ /var/tmp/diff_new_pack.5OBwxf/_new  2026-08-04 23:28:45.142499024 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/goharbor/harbor-cli.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">refs/tags/v0.0.24</param>
+    <param name="revision">refs/tags/v0.0.25</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.5OBwxf/_old  2026-08-04 23:28:45.166499873 +0200
+++ /var/tmp/diff_new_pack.5OBwxf/_new  2026-08-04 23:28:45.170500015 +0200
@@ -3,6 +3,6 @@
                 <param 
name="url">https://github.com/goharbor/harbor-cli</param>
               <param 
name="changesrevision">19e9a10c142ab3bb44e234f8862981a423cfc37c</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/goharbor/harbor-cli.git</param>
-              <param 
name="changesrevision">61dd0ce3b252ff4a69f9beee8bbf4ea3d12ea38c</param></service></servicedata>
+              <param 
name="changesrevision">2ecf0d8fabe32f189fcd93c167648af6644fc1d9</param></service></servicedata>
 (No newline at EOF)
 

++++++ harbor-cli-0.0.24.obscpio -> harbor-cli-0.0.25.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/bucket/harbor-cli.json 
new/harbor-cli-0.0.25/bucket/harbor-cli.json
--- old/harbor-cli-0.0.24/bucket/harbor-cli.json        2026-07-07 
15:46:05.000000000 +0200
+++ new/harbor-cli-0.0.25/bucket/harbor-cli.json        2026-07-28 
15:18:35.000000000 +0200
@@ -1,5 +1,5 @@
 {
-    "version": "0.0.23",
+    "version": "0.0.24",
     "description": "A command-line interface for Harbor container registry.",
     "homepage": "https://github.com/goharbor/harbor-cli";,
     "license": "Apache-2.0",
@@ -8,13 +8,13 @@
     },
     "architecture": {
         "64bit": {
-            "url": 
"https://github.com/goharbor/harbor-cli/releases/download/v0.0.23/harbor-cli_0.0.23_windows_amd64.zip";,
-            "hash": 
"87d6a5045fb0d492ca9fbd5f1c95ebcc3e9b6060d5d0a99abe21f792a769e18c",
+            "url": 
"https://github.com/goharbor/harbor-cli/releases/download/v0.0.24/harbor-cli_0.0.24_windows_amd64.zip";,
+            "hash": 
"787bbac8cc40c8c96d83f0676b16c89d33057ae67aeec0ceac5584203b168274",
             "bin": "harbor-cli.exe"
         },
         "arm64": {
-            "url": 
"https://github.com/goharbor/harbor-cli/releases/download/v0.0.23/harbor-cli_0.0.23_windows_arm64.zip";,
-            "hash": 
"8b093ffeabd2622fc58d3416bbd006febb732190465263bf8caed33bfe17578c",
+            "url": 
"https://github.com/goharbor/harbor-cli/releases/download/v0.0.24/harbor-cli_0.0.24_windows_arm64.zip";,
+            "hash": 
"02b673e6775d5fb32c88235d7c16794e252301f0fed644ebfa1d9e94389803f5",
             "bin": "harbor-cli.exe"
         }
     },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/cmd/harbor/root/cmd.go 
new/harbor-cli-0.0.25/cmd/harbor/root/cmd.go
--- old/harbor-cli-0.0.24/cmd/harbor/root/cmd.go        2026-07-07 
15:46:05.000000000 +0200
+++ new/harbor-cli-0.0.25/cmd/harbor/root/cmd.go        2026-07-28 
15:18:35.000000000 +0200
@@ -155,6 +155,10 @@
        cmd.GroupID = "access"
        root.AddCommand(cmd)
 
+       cmd = LogoutCommand()
+       cmd.GroupID = "access"
+       root.AddCommand(cmd)
+
        cmd = user.User()
        cmd.GroupID = "access"
        root.AddCommand(cmd)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/cmd/harbor/root/logout.go 
new/harbor-cli-0.0.25/cmd/harbor/root/logout.go
--- old/harbor-cli-0.0.24/cmd/harbor/root/logout.go     1970-01-01 
01:00:00.000000000 +0100
+++ new/harbor-cli-0.0.25/cmd/harbor/root/logout.go     2026-07-28 
15:18:35.000000000 +0200
@@ -0,0 +1,87 @@
+// Copyright Project Harbor Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package root
+
+import (
+       "bufio"
+       "fmt"
+       "os"
+       "strings"
+
+       "github.com/goharbor/harbor-cli/pkg/utils"
+       "github.com/spf13/cobra"
+)
+
+// LogoutCommand creates a new `harbor logout` command
+func LogoutCommand() *cobra.Command {
+       var skipConfirm bool
+
+       cmd := &cobra.Command{
+               Use:     "logout",
+               Short:   "Log out from Harbor registry",
+               Long:    "Remove the current credential from the local CLI 
config.",
+               Args:    cobra.NoArgs,
+               Example: `  harbor logout`,
+               RunE: func(cmd *cobra.Command, args []string) error {
+                       config, err := utils.GetCurrentHarborConfig()
+                       if err != nil {
+                               return fmt.Errorf("failed to get current harbor 
config: %s", err)
+                       }
+
+                       if config.CurrentCredentialName == "" {
+                               fmt.Println("Not logged in.")
+                               return nil
+                       }
+
+                       currentName := config.CurrentCredentialName
+
+                       if !skipConfirm {
+                               fmt.Printf("Log out from '%s'? [y/N]: ", 
currentName)
+
+                               reader := bufio.NewReader(os.Stdin)
+                               answer, err := reader.ReadString('\n')
+                               if err != nil {
+                                       return fmt.Errorf("failed to read user 
input: %v", err)
+                               }
+
+                               answer = 
strings.TrimSpace(strings.ToLower(answer))
+                               if answer != "y" && answer != "yes" {
+                                       fmt.Println("Logout cancelled.")
+                                       return nil
+                               }
+                       }
+
+                       for i, cred := range config.Credentials {
+                               if cred.Name == currentName {
+                                       config.Credentials = 
append(config.Credentials[:i], config.Credentials[i+1:]...)
+                                       break
+                               }
+                       }
+
+                       config.CurrentCredentialName = ""
+
+                       if err := utils.UpdateConfigFile(config); err != nil {
+                               return fmt.Errorf("failed to save config: %w", 
err)
+                       }
+
+                       fmt.Printf("Logged out from '%s'.\n", currentName)
+
+                       return nil
+               },
+       }
+
+       cmd.Flags().BoolVarP(&skipConfirm, "yes", "y", false, "Skip 
confirmation prompt")
+
+       return cmd
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/doc/cli-docs/harbor-logout.md 
new/harbor-cli-0.0.25/doc/cli-docs/harbor-logout.md
--- old/harbor-cli-0.0.24/doc/cli-docs/harbor-logout.md 1970-01-01 
01:00:00.000000000 +0100
+++ new/harbor-cli-0.0.25/doc/cli-docs/harbor-logout.md 2026-07-28 
15:18:35.000000000 +0200
@@ -0,0 +1,43 @@
+---
+title: harbor logout
+weight: 60
+---
+## harbor logout
+
+### Description
+
+##### Log out from Harbor registry
+
+### Synopsis
+
+Remove the current credential from the local CLI config.
+
+```sh
+harbor logout [flags]
+```
+
+### Examples
+
+```sh
+  harbor logout
+```
+
+### Options
+
+```sh
+  -h, --help   help for logout
+  -y, --yes    Skip confirmation prompt
+```
+
+### Options inherited from parent commands
+
+```sh
+  -c, --config string          config file (default is 
$HOME/.config/harbor-cli/config.yaml)
+  -o, --output-format string   Output format. One of: json|yaml|csv
+  -v, --verbose                verbose output
+```
+
+### SEE ALSO
+
+* [harbor](harbor.md)   - Official Harbor CLI
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/doc/cli-docs/harbor.md 
new/harbor-cli-0.0.25/doc/cli-docs/harbor.md
--- old/harbor-cli-0.0.24/doc/cli-docs/harbor.md        2026-07-07 
15:46:05.000000000 +0200
+++ new/harbor-cli-0.0.25/doc/cli-docs/harbor.md        2026-07-28 
15:18:35.000000000 +0200
@@ -46,6 +46,7 @@
 * [harbor label](harbor-label.md)       - Manage labels in Harbor
 * [harbor ldap](harbor-ldap.md)         - Manage ldap users and groups
 * [harbor login](harbor-login.md)       - Log in to Harbor registry
+* [harbor logout](harbor-logout.md)     - Log out from Harbor registry
 * [harbor logs](harbor-logs.md)         - Get recent logs of the projects 
which the user is a member of
 * [harbor password](harbor-password.md)         - Change your password
 * [harbor project](harbor-project.md)   - Manage projects and assign resources 
to them
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/doc/man-docs/man1/harbor-logout.1 
new/harbor-cli-0.0.25/doc/man-docs/man1/harbor-logout.1
--- old/harbor-cli-0.0.24/doc/man-docs/man1/harbor-logout.1     1970-01-01 
01:00:00.000000000 +0100
+++ new/harbor-cli-0.0.25/doc/man-docs/man1/harbor-logout.1     2026-07-28 
15:18:35.000000000 +0200
@@ -0,0 +1,45 @@
+.nh
+.TH "HARBOR" "1"  "Harbor Community" "Harbor User Manuals"
+
+.SH NAME
+harbor-logout - Log out from Harbor registry
+
+
+.SH SYNOPSIS
+\fBharbor logout [flags]\fP
+
+
+.SH DESCRIPTION
+Remove the current credential from the local CLI config.
+
+
+.SH OPTIONS
+\fB-h\fP, \fB--help\fP[=false]
+       help for logout
+
+.PP
+\fB-y\fP, \fB--yes\fP[=false]
+       Skip confirmation prompt
+
+
+.SH OPTIONS INHERITED FROM PARENT COMMANDS
+\fB-c\fP, \fB--config\fP=""
+       config file (default is $HOME/.config/harbor-cli/config.yaml)
+
+.PP
+\fB-o\fP, \fB--output-format\fP=""
+       Output format. One of: json|yaml|csv
+
+.PP
+\fB-v\fP, \fB--verbose\fP[=false]
+       verbose output
+
+
+.SH EXAMPLE
+.EX
+  harbor logout
+.EE
+
+
+.SH SEE ALSO
+\fBharbor(1)\fP
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/doc/man-docs/man1/harbor.1 
new/harbor-cli-0.0.25/doc/man-docs/man1/harbor.1
--- old/harbor-cli-0.0.24/doc/man-docs/man1/harbor.1    2026-07-07 
15:46:05.000000000 +0200
+++ new/harbor-cli-0.0.25/doc/man-docs/man1/harbor.1    2026-07-28 
15:18:35.000000000 +0200
@@ -43,4 +43,4 @@
 
 
 .SH SEE ALSO
-\fBharbor-artifact(1)\fP, \fBharbor-config(1)\fP, \fBharbor-context(1)\fP, 
\fBharbor-cve-allowlist(1)\fP, \fBharbor-health(1)\fP, \fBharbor-info(1)\fP, 
\fBharbor-instance(1)\fP, \fBharbor-jobservice(1)\fP, \fBharbor-label(1)\fP, 
\fBharbor-ldap(1)\fP, \fBharbor-login(1)\fP, \fBharbor-logs(1)\fP, 
\fBharbor-password(1)\fP, \fBharbor-project(1)\fP, \fBharbor-quota(1)\fP, 
\fBharbor-registry(1)\fP, \fBharbor-replication(1)\fP, \fBharbor-repo(1)\fP, 
\fBharbor-robot(1)\fP, \fBharbor-scan-all(1)\fP, \fBharbor-scanner(1)\fP, 
\fBharbor-schedule(1)\fP, \fBharbor-tag(1)\fP, \fBharbor-user(1)\fP, 
\fBharbor-version(1)\fP, \fBharbor-vulnerability(1)\fP, \fBharbor-webhook(1)\fP
\ No newline at end of file
+\fBharbor-artifact(1)\fP, \fBharbor-config(1)\fP, \fBharbor-context(1)\fP, 
\fBharbor-cve-allowlist(1)\fP, \fBharbor-health(1)\fP, \fBharbor-info(1)\fP, 
\fBharbor-instance(1)\fP, \fBharbor-jobservice(1)\fP, \fBharbor-label(1)\fP, 
\fBharbor-ldap(1)\fP, \fBharbor-login(1)\fP, \fBharbor-logout(1)\fP, 
\fBharbor-logs(1)\fP, \fBharbor-password(1)\fP, \fBharbor-project(1)\fP, 
\fBharbor-quota(1)\fP, \fBharbor-registry(1)\fP, \fBharbor-replication(1)\fP, 
\fBharbor-repo(1)\fP, \fBharbor-robot(1)\fP, \fBharbor-scan-all(1)\fP, 
\fBharbor-scanner(1)\fP, \fBharbor-schedule(1)\fP, \fBharbor-tag(1)\fP, 
\fBharbor-user(1)\fP, \fBharbor-version(1)\fP, \fBharbor-vulnerability(1)\fP, 
\fBharbor-webhook(1)\fP
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harbor-cli-0.0.24/pkg/api/immutable_handler.go 
new/harbor-cli-0.0.25/pkg/api/immutable_handler.go
--- old/harbor-cli-0.0.24/pkg/api/immutable_handler.go  2026-07-07 
15:46:05.000000000 +0200
+++ new/harbor-cli-0.0.25/pkg/api/immutable_handler.go  2026-07-28 
15:18:35.000000000 +0200
@@ -56,7 +56,8 @@
        if err != nil {
                return immutable.ListImmuRulesOK{}, err
        }
-       response, err := client.Immutable.ListImmuRules(ctx, 
&immutable.ListImmuRulesParams{ProjectNameOrID: projectName})
+       XIsResourceName := true
+       response, err := client.Immutable.ListImmuRules(ctx, 
&immutable.ListImmuRulesParams{ProjectNameOrID: projectName, XIsResourceName: 
&XIsResourceName})
        if err != nil {
                return immutable.ListImmuRulesOK{}, err
        }
@@ -69,7 +70,8 @@
        if err != nil {
                return err
        }
-       _, err = client.Immutable.DeleteImmuRule(ctx, 
&immutable.DeleteImmuRuleParams{ProjectNameOrID: projectName, ImmutableRuleID: 
ImmutableID})
+       XIsResourceName := true
+       _, err = client.Immutable.DeleteImmuRule(ctx, 
&immutable.DeleteImmuRuleParams{ProjectNameOrID: projectName, ImmutableRuleID: 
ImmutableID, XIsResourceName: &XIsResourceName})
        if err != nil {
                return err
        }

++++++ harbor-cli.obsinfo ++++++
--- /var/tmp/diff_new_pack.5OBwxf/_old  2026-08-04 23:28:45.958527881 +0200
+++ /var/tmp/diff_new_pack.5OBwxf/_new  2026-08-04 23:28:45.974528446 +0200
@@ -1,5 +1,5 @@
 name: harbor-cli
-version: 0.0.24
-mtime: 1783431965
-commit: 61dd0ce3b252ff4a69f9beee8bbf4ea3d12ea38c
+version: 0.0.25
+mtime: 1785244715
+commit: 2ecf0d8fabe32f189fcd93c167648af6644fc1d9
 

++++++ vendor.tar.gz ++++++

Reply via email to