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 2025-10-22 12:17:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/harbor-cli (Old) and /work/SRC/openSUSE:Factory/.harbor-cli.new.18484 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "harbor-cli" Wed Oct 22 12:17:32 2025 rev:8 rq:1312927 version:0.0.13 Changes: -------- --- /work/SRC/openSUSE:Factory/harbor-cli/harbor-cli.changes 2025-10-01 18:58:26.342128663 +0200 +++ /work/SRC/openSUSE:Factory/.harbor-cli.new.18484/harbor-cli.changes 2025-10-22 12:23:16.113125321 +0200 @@ -1,0 +2,14 @@ +Wed Oct 22 04:47:16 UTC 2025 - Johannes Kastl <[email protected]> + +- Update to version 0.0.13: + * build(deps): bump golang.org/x/text from 0.29.0 to 0.30.0 + (#558) + * build(deps): bump golang.org/x/term from 0.35.0 to 0.36.0 + (#559) + * build(deps): bump github.com/charmbracelet/bubbletea (#551) + * build(deps): bump github.com/go-openapi/strfmt from 0.23.0 to + 0.24.0 (#554) + * feature: rebasing and working on LDAP commands (#550) + * Update README.md + +------------------------------------------------------------------- Old: ---- harbor-cli-0.0.12.obscpio New: ---- harbor-cli-0.0.13.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ harbor-cli.spec ++++++ --- /var/tmp/diff_new_pack.FkjJsF/_old 2025-10-22 12:23:18.065207572 +0200 +++ /var/tmp/diff_new_pack.FkjJsF/_new 2025-10-22 12:23:18.065207572 +0200 @@ -19,7 +19,7 @@ %define executable_name harbor Name: harbor-cli -Version: 0.0.12 +Version: 0.0.13 Release: 0 Summary: CLI for the Harbor cloud native registry License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.FkjJsF/_old 2025-10-22 12:23:18.101209089 +0200 +++ /var/tmp/diff_new_pack.FkjJsF/_new 2025-10-22 12:23:18.105209258 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/goharbor/harbor-cli</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.0.12</param> + <param name="revision">v0.0.13</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.FkjJsF/_old 2025-10-22 12:23:18.137210606 +0200 +++ /var/tmp/diff_new_pack.FkjJsF/_new 2025-10-22 12:23:18.145210943 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/goharbor/harbor-cli</param> - <param name="changesrevision">f0b4514754dddc223213ed50e01eb355cc2c5d4a</param></service></servicedata> + <param name="changesrevision">7d1568b93e59c6c67285216084fa3ecb28becd36</param></service></servicedata> (No newline at EOF) ++++++ harbor-cli-0.0.12.obscpio -> harbor-cli-0.0.13.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/.dagger/go.mod new/harbor-cli-0.0.13/.dagger/go.mod --- old/harbor-cli-0.0.12/.dagger/go.mod 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/.dagger/go.mod 2025-10-15 06:17:01.000000000 +0200 @@ -2,10 +2,50 @@ go 1.24.4 -replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 +replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2 -replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 +replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2 -replace go.opentelemetry.io/otel/log => go.opentelemetry.io/otel/log v0.8.0 +replace go.opentelemetry.io/otel/log => go.opentelemetry.io/otel/log v0.12.2 -replace go.opentelemetry.io/otel/sdk/log => go.opentelemetry.io/otel/sdk/log v0.8.0 +replace go.opentelemetry.io/otel/sdk/log => go.opentelemetry.io/otel/sdk/log v0.12.2 + +require ( + github.com/99designs/gqlgen v0.17.75 + github.com/Khan/genqlient v0.8.1 + github.com/vektah/gqlparser/v2 v2.5.28 + go.opentelemetry.io/otel v1.36.0 + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2 + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0 + go.opentelemetry.io/otel/log v0.12.2 + go.opentelemetry.io/otel/metric v1.36.0 + go.opentelemetry.io/otel/sdk v1.36.0 + go.opentelemetry.io/otel/sdk/log v0.12.2 + go.opentelemetry.io/otel/sdk/metric v1.36.0 + go.opentelemetry.io/otel/trace v1.36.0 + go.opentelemetry.io/proto/otlp v1.6.0 + golang.org/x/sync v0.15.0 + google.golang.org/grpc v1.73.0 +) + +require ( + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/cenkalti/backoff/v5 v5.0.2 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect + github.com/sosodev/duration v1.3.1 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 // indirect + golang.org/x/net v0.41.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.26.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect + google.golang.org/protobuf v1.36.6 // indirect +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/.dagger/go.sum new/harbor-cli-0.0.13/.dagger/go.sum --- old/harbor-cli-0.0.12/.dagger/go.sum 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/.dagger/go.sum 2025-10-15 06:17:01.000000000 +0200 @@ -1,11 +1,13 @@ -github.com/99designs/gqlgen v0.17.74 h1:1FuVtkXxOc87xpKio3f6sohREmec+Jvy86PcYOuwgWo= -github.com/99designs/gqlgen v0.17.74/go.mod h1:a+iR6mfRLNRp++kDpooFHiPWYiWX3Yu1BIilQRHgh10= +github.com/99designs/gqlgen v0.17.75 h1:GwHJsptXWLHeY7JO8b7YueUI4w9Pom6wJTICosDtQuI= +github.com/99designs/gqlgen v0.17.75/go.mod h1:p7gbTpdnHyl70hmSpM8XG8GiKwmCv+T5zkdY8U8bLog= github.com/Khan/genqlient v0.8.1 h1:wtOCc8N9rNynRLXN3k3CnfzheCUNKBcvXmVv5zt6WCs= github.com/Khan/genqlient v0.8.1/go.mod h1:R2G6DzjBvCbhjsEajfRjbWdVglSH/73kSivC9TLWVjU= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= +github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -19,8 +21,8 @@ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= @@ -29,16 +31,16 @@ github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/vektah/gqlparser/v2 v2.5.27 h1:RHPD3JOplpk5mP5JGX8RKZkt2/Vwj/PZv0HxTdwFp0s= -github.com/vektah/gqlparser/v2 v2.5.27/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo= +github.com/vektah/gqlparser/v2 v2.5.28 h1:bIulcl3LF69ba6EiZVGD88y4MkM+Jxrf3P2MX8xLRkY= +github.com/vektah/gqlparser/v2 v2.5.28/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 h1:WzNab7hOOLzdDF/EoWCt4glhrbMPVMOO5JYTmpz36Ls= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0/go.mod h1:hKvJwTzJdp90Vh7p6q/9PAOd55dI6WA6sWj62a/JvSs= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 h1:S+LdBGiQXtJdowoJoQPEtI52syEP/JYBUpjO49EQhV8= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0/go.mod h1:5KXybFvPGds3QinJWQT7pmXf+TN5YIa7CNYObWRkj50= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2 h1:06ZeJRe5BnYXceSM9Vya83XXVaNGe3H1QqsvqRANQq8= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2/go.mod h1:DvPtKE63knkDVP88qpatBj81JxN+w1bqfVbsbCbj1WY= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2 h1:tPLwQlXbJ8NSOfZc4OkgU5h2A38M4c9kfHSVc4PFQGs= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2/go.mod h1:QTnxBwT/1rBIgAG1goq6xMydfYOBKU6KTiYF4fp5zL8= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= @@ -49,20 +51,22 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0/go.mod h1:JyA0FHXe22E1NeNiHmVp7kFHglnexDQ7uRWDiiJ1hKQ= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0 h1:cMyu9O88joYEaI47CnQkxO1XZdpoTF9fEnW2duIddhw= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0/go.mod h1:6Am3rn7P9TVVeXYG+wtcGE7IE1tsQ+bP3AuWcKt/gOI= -go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= -go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= -go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= -go.opentelemetry.io/otel/sdk/log v0.8.0 h1:zg7GUYXqxk1jnGF/dTdLPrK06xJdrXgqgFLnI4Crxvs= -go.opentelemetry.io/otel/sdk/log v0.8.0/go.mod h1:50iXr0UVwQrYS45KbruFrEt4LvAdCaWWgIrsN3ZQggo= -go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= -go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= -go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= -go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.opentelemetry.io/otel/log v0.12.2 h1:yob9JVHn2ZY24byZeaXpTVoPS6l+UrrxmxmPKohXTwc= +go.opentelemetry.io/otel/log v0.12.2/go.mod h1:ShIItIxSYxufUMt+1H5a2wbckGli3/iCfuEbVZi/98E= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/log v0.12.2 h1:yNoETvTByVKi7wHvYS6HMcZrN5hFLD7I++1xIZ/k6W0= +go.opentelemetry.io/otel/sdk/log v0.12.2/go.mod h1:DcpdmUXHJgSqN/dh+XMWa7Vf89u9ap0/AAk/XGLnEzY= +go.opentelemetry.io/otel/sdk/log/logtest v0.0.0-20250521073539-a85ae98dcedc h1:uqxdywfHqqCl6LmZzI3pUnXT1RGFYyUgxj0AkWPFxi0= +go.opentelemetry.io/otel/sdk/log/logtest v0.0.0-20250521073539-a85ae98dcedc/go.mod h1:TY/N/FT7dmFrP/r5ym3g0yysP1DefqGpAZr4f82P0dE= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= +go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= +go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= @@ -73,10 +77,10 @@ golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463/go.mod h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 h1:Kog3KlB4xevJlAcbbbzPfRG0+X9fdoGM+UBRKVz6Wr0= +google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237/go.mod h1:ezi0AVyMKDWy5xAncvjLWH7UcLBB5n7y2fQ8MzjJcto= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 h1:cJfm9zPbe1e873mHJzmQ1nwVEeRDU/T1wXDK2kUSU34= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/.dagger/main.go new/harbor-cli-0.0.13/.dagger/main.go --- old/harbor-cli-0.0.12/.dagger/main.go 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/.dagger/main.go 2025-10-15 06:17:01.000000000 +0200 @@ -25,8 +25,8 @@ const ( GOLANGCILINT_VERSION = "v2.1.2" - GO_VERSION = "1.24.4" - GORELEASER_VERSION = "v2.8.2" + GO_VERSION = "1.25" + GORELEASER_VERSION = "v2.12.2" ) func New( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/README.md new/harbor-cli-0.0.13/README.md --- old/harbor-cli-0.0.12/README.md 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/README.md 2025-10-15 06:17:01.000000000 +0200 @@ -16,7 +16,7 @@ # Features The project's first goal is to reach WebUI parity. -```shell +``` ✅ project Manage projects ✅ repo Manage repositories ✅ artifact Manage artifacts @@ -35,14 +35,23 @@ ✅ config Manage the config of the Harbor CLI ✅ cve-allowlist Manage system CVE allowlist ✅ health Get the health status of Harbor components -✅ instance Manage preheat provider instances in Harbor +✅ preheat Manage preheat provider instances ✅ info Display detailed Harbor system, statistics, and CLI environment information - -✅ scanner scanner commands +✅ Scanner scanner commands CRUD ✅ schedule Schedule jobs in Harbor -✅ completion Generate the autocompletion script for the specified shell\ +❌ Vulnerability Dashboard + +❌ Distribution + +❌ GC + +❌ Job Service Dashbaord + +❌ Auditlog Auditlogs dashboard + +✅ completion Generate the autocompletion script for the specified shell ✅ help Help about any command ✅ version Version of Harbor CLI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/cmd/harbor/root/cmd.go new/harbor-cli-0.0.13/cmd/harbor/root/cmd.go --- old/harbor-cli-0.0.12/cmd/harbor/root/cmd.go 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/cmd/harbor/root/cmd.go 2025-10-15 06:17:01.000000000 +0200 @@ -24,6 +24,7 @@ "github.com/goharbor/harbor-cli/cmd/harbor/root/cve" "github.com/goharbor/harbor-cli/cmd/harbor/root/instance" "github.com/goharbor/harbor-cli/cmd/harbor/root/labels" + "github.com/goharbor/harbor-cli/cmd/harbor/root/ldap" "github.com/goharbor/harbor-cli/cmd/harbor/root/project" "github.com/goharbor/harbor-cli/cmd/harbor/root/quota" "github.com/goharbor/harbor-cli/cmd/harbor/root/registry" @@ -143,6 +144,10 @@ cmd.GroupID = "core" root.AddCommand(cmd) + cmd = ldap.Ldap() + cmd.GroupID = "core" + root.AddCommand(cmd) + // Access cmd = LoginCommand() cmd.GroupID = "access" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/cmd/harbor/root/ldap/cmd.go new/harbor-cli-0.0.13/cmd/harbor/root/ldap/cmd.go --- old/harbor-cli-0.0.12/cmd/harbor/root/ldap/cmd.go 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/cmd/harbor/root/ldap/cmd.go 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,33 @@ +// 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 ldap + +import ( + "github.com/spf13/cobra" +) + +func Ldap() *cobra.Command { + cmd := &cobra.Command{ + Use: "ldap", + Short: "Manage ldap users and groups", + Example: ` harbor ldap ping`, + } + cmd.AddCommand( + LdapSearchUserCmd(), + LdapPingCmd(), + LdapImportUserCmd(), + ) + + return cmd +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/cmd/harbor/root/ldap/import.go new/harbor-cli-0.0.13/cmd/harbor/root/ldap/import.go --- old/harbor-cli-0.0.12/cmd/harbor/root/ldap/import.go 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/cmd/harbor/root/ldap/import.go 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,45 @@ +// 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 ldap + +import ( + "fmt" + "strings" + + "github.com/goharbor/harbor-cli/pkg/api" + "github.com/spf13/cobra" +) + +// Import ldap users command +func LdapImportUserCmd() *cobra.Command { + var uids []string + + cmd := &cobra.Command{ + Use: "import [userID]", + Short: "import ldap user by registered userid", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + err := api.LdapImportUser(append(uids, args[0])) + if err != nil { + return fmt.Errorf("failed to import ldap user: %v", err) + } + + fmt.Println("Added users with ID: " + strings.Join(append(uids, args[0]), " ")) + return nil + }, + } + + cmd.Flags().StringArrayVarP(&uids, "uid", "u", []string{}, "add more users to import") + return cmd +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/cmd/harbor/root/ldap/ping.go new/harbor-cli-0.0.13/cmd/harbor/root/ldap/ping.go --- old/harbor-cli-0.0.12/cmd/harbor/root/ldap/ping.go 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/cmd/harbor/root/ldap/ping.go 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,62 @@ +// 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 ldap + +import ( + "fmt" + + "github.com/goharbor/go-client/pkg/sdk/v2.0/models" + "github.com/goharbor/harbor-cli/pkg/api" + "github.com/spf13/cobra" +) + +// Ping ldap server command +func LdapPingCmd() *cobra.Command { + opts := &models.LdapConf{} + cmd := &cobra.Command{ + Use: "ping", + Short: "ping ldap server", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + response, err := api.LdapPingServer(opts) + if err != nil { + return err + } + + if response.Payload.Message != "" { + fmt.Println(response.Payload.Message) + } + + if response.Payload.Success { + fmt.Println("Connection to LDAP Server Success") + } else { + return fmt.Errorf("connection to ldap server failed: %v", response.Payload.Message) + } + + return nil + }, + } + + flags := cmd.Flags() + flags.StringVarP(&opts.LdapURL, "ldap-url", "", "", "URL of the ldap service") + flags.StringVarP(&opts.LdapSearchPassword, "ldap-password", "", "", "search password of the ldap service") + flags.StringVarP(&opts.LdapSearchDn, "ldap-search-dn", "", "", "User's dn who has the permission to search the ldap server") + flags.StringVarP(&opts.LdapBaseDn, "ldap-base-dn", "", "", "The base dn from which to lookup the user") + flags.StringVarP(&opts.LdapUID, "ldap-uid", "", "", "attribute used in search to match the user. It could be cn, uid based on your LDAP/AD.") + flags.Int64VarP(&opts.LdapScope, "ldap-scope", "", 0, "search scope of ldap service default 0 base, 1 OneLevel, 2 Subtree.") + flags.StringVarP(&opts.LdapFilter, "ldap-filter", "", "", "Search Filter of ldap service") + flags.BoolVarP(&opts.LdapVerifyCert, "ldap-verify", "", false, "Verify Ldap server certificate") + + return cmd +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/cmd/harbor/root/ldap/search.go new/harbor-cli-0.0.13/cmd/harbor/root/ldap/search.go --- old/harbor-cli-0.0.12/cmd/harbor/root/ldap/search.go 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/cmd/harbor/root/ldap/search.go 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,42 @@ +// 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 ldap + +import ( + "fmt" + + "github.com/goharbor/harbor-cli/pkg/api" + "github.com/goharbor/harbor-cli/pkg/utils" + "github.com/spf13/cobra" +) + +// Search ldap users command +func LdapSearchUserCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "search [userID]", + Short: "search ldap user by registered userid", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + response, err := api.LdapSearchUser(args[0]) + if err != nil { + return fmt.Errorf("failed to search ldap user: %v", err) + } + + utils.PrintPayloadInJSONFormat(response.Payload) + return nil + }, + } + + return cmd +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/dagger.json new/harbor-cli-0.0.13/dagger.json --- old/harbor-cli-0.0.12/dagger.json 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/dagger.json 2025-10-15 06:17:01.000000000 +0200 @@ -1,6 +1,6 @@ { "name": "harbor-cli", - "engineVersion": "v0.18.10", + "engineVersion": "v0.18.12", "sdk": { "source": "go" }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap-import.md new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap-import.md --- old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap-import.md 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap-import.md 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,33 @@ +--- +title: harbor ldap import +weight: 15 +--- +## harbor ldap import + +### Description + +##### import ldap user by registered userid + +```sh +harbor ldap import [userID] [flags] +``` + +### Options + +```sh + -h, --help help for import + -u, --uid stringArray add more users to import +``` + +### 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 + -v, --verbose verbose output +``` + +### SEE ALSO + +* [harbor ldap](harbor-ldap.md) - Manage ldap users and groups + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap-ping.md new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap-ping.md --- old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap-ping.md 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap-ping.md 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,40 @@ +--- +title: harbor ldap ping +weight: 90 +--- +## harbor ldap ping + +### Description + +##### ping ldap server + +```sh +harbor ldap ping [flags] +``` + +### Options + +```sh + -h, --help help for ping + --ldap-base-dn string The base dn from which to lookup the user + --ldap-filter string Search Filter of ldap service + --ldap-password string search password of the ldap service + --ldap-scope int search scope of ldap service default 0 base, 1 OneLevel, 2 Subtree. + --ldap-search-dn string User's dn who has the permission to search the ldap server + --ldap-uid string attribute used in search to match the user. It could be cn, uid based on your LDAP/AD. + --ldap-url string URL of the ldap service + --ldap-verify Verify Ldap server certificate +``` + +### 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 + -v, --verbose verbose output +``` + +### SEE ALSO + +* [harbor ldap](harbor-ldap.md) - Manage ldap users and groups + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap-search.md new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap-search.md --- old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap-search.md 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap-search.md 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,32 @@ +--- +title: harbor ldap search +weight: 70 +--- +## harbor ldap search + +### Description + +##### search ldap user by registered userid + +```sh +harbor ldap search [userID] [flags] +``` + +### Options + +```sh + -h, --help help for search +``` + +### 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 + -v, --verbose verbose output +``` + +### SEE ALSO + +* [harbor ldap](harbor-ldap.md) - Manage ldap users and groups + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap.md new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap.md --- old/harbor-cli-0.0.12/doc/cli-docs/harbor-ldap.md 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/cli-docs/harbor-ldap.md 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,37 @@ +--- +title: harbor ldap +weight: 20 +--- +## harbor ldap + +### Description + +##### Manage ldap users and groups + +### Examples + +```sh + harbor ldap ping +``` + +### Options + +```sh + -h, --help help for ldap +``` + +### 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 + -v, --verbose verbose output +``` + +### SEE ALSO + +* [harbor](harbor.md) - Official Harbor CLI +* [harbor ldap import](harbor-ldap-import.md) - import ldap user by registered userid +* [harbor ldap ping](harbor-ldap-ping.md) - ping ldap server +* [harbor ldap search](harbor-ldap-search.md) - search ldap user by registered userid + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/cli-docs/harbor.md new/harbor-cli-0.0.13/doc/cli-docs/harbor.md --- old/harbor-cli-0.0.12/doc/cli-docs/harbor.md 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/doc/cli-docs/harbor.md 2025-10-15 06:17:01.000000000 +0200 @@ -43,6 +43,7 @@ * [harbor info](harbor-info.md) - Display detailed Harbor system, statistics, and CLI environment information * [harbor instance](harbor-instance.md) - Manage preheat provider instances in Harbor * [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 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap-import.1 new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap-import.1 --- old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap-import.1 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap-import.1 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,39 @@ +.nh +.TH "HARBOR" "1" "Harbor Community" "Harbor User Manuals" + +.SH NAME +harbor-ldap-import - import ldap user by registered userid + + +.SH SYNOPSIS +\fBharbor ldap import [userID] [flags]\fP + + +.SH DESCRIPTION +import ldap user by registered userid + + +.SH OPTIONS +\fB-h\fP, \fB--help\fP[=false] + help for import + +.PP +\fB-u\fP, \fB--uid\fP=[] + add more users to import + + +.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 + +.PP +\fB-v\fP, \fB--verbose\fP[=false] + verbose output + + +.SH SEE ALSO +\fBharbor-ldap(1)\fP \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap-ping.1 new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap-ping.1 --- old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap-ping.1 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap-ping.1 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,67 @@ +.nh +.TH "HARBOR" "1" "Harbor Community" "Harbor User Manuals" + +.SH NAME +harbor-ldap-ping - ping ldap server + + +.SH SYNOPSIS +\fBharbor ldap ping [flags]\fP + + +.SH DESCRIPTION +ping ldap server + + +.SH OPTIONS +\fB-h\fP, \fB--help\fP[=false] + help for ping + +.PP +\fB--ldap-base-dn\fP="" + The base dn from which to lookup the user + +.PP +\fB--ldap-filter\fP="" + Search Filter of ldap service + +.PP +\fB--ldap-password\fP="" + search password of the ldap service + +.PP +\fB--ldap-scope\fP=0 + search scope of ldap service default 0 base, 1 OneLevel, 2 Subtree. + +.PP +\fB--ldap-search-dn\fP="" + User's dn who has the permission to search the ldap server + +.PP +\fB--ldap-uid\fP="" + attribute used in search to match the user. It could be cn, uid based on your LDAP/AD. + +.PP +\fB--ldap-url\fP="" + URL of the ldap service + +.PP +\fB--ldap-verify\fP[=false] + Verify Ldap server certificate + + +.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 + +.PP +\fB-v\fP, \fB--verbose\fP[=false] + verbose output + + +.SH SEE ALSO +\fBharbor-ldap(1)\fP \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap-search.1 new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap-search.1 --- old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap-search.1 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap-search.1 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,35 @@ +.nh +.TH "HARBOR" "1" "Harbor Community" "Harbor User Manuals" + +.SH NAME +harbor-ldap-search - search ldap user by registered userid + + +.SH SYNOPSIS +\fBharbor ldap search [userID] [flags]\fP + + +.SH DESCRIPTION +search ldap user by registered userid + + +.SH OPTIONS +\fB-h\fP, \fB--help\fP[=false] + help for search + + +.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 + +.PP +\fB-v\fP, \fB--verbose\fP[=false] + verbose output + + +.SH SEE ALSO +\fBharbor-ldap(1)\fP \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap.1 new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap.1 --- old/harbor-cli-0.0.12/doc/man-docs/man1/harbor-ldap.1 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/doc/man-docs/man1/harbor-ldap.1 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,41 @@ +.nh +.TH "HARBOR" "1" "Harbor Community" "Harbor User Manuals" + +.SH NAME +harbor-ldap - Manage ldap users and groups + + +.SH SYNOPSIS +\fBharbor ldap [flags]\fP + + +.SH DESCRIPTION +Manage ldap users and groups + + +.SH OPTIONS +\fB-h\fP, \fB--help\fP[=false] + help for ldap + + +.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 + +.PP +\fB-v\fP, \fB--verbose\fP[=false] + verbose output + + +.SH EXAMPLE +.EX + harbor ldap ping +.EE + + +.SH SEE ALSO +\fBharbor(1)\fP, \fBharbor-ldap-import(1)\fP, \fBharbor-ldap-ping(1)\fP, \fBharbor-ldap-search(1)\fP \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/doc/man-docs/man1/harbor.1 new/harbor-cli-0.0.13/doc/man-docs/man1/harbor.1 --- old/harbor-cli-0.0.12/doc/man-docs/man1/harbor.1 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/doc/man-docs/man1/harbor.1 2025-10-15 06:17:01.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-label(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-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-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-webhook(1)\fP \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/go.mod new/harbor-cli-0.0.13/go.mod --- old/harbor-cli-0.0.12/go.mod 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/go.mod 2025-10-15 06:17:01.000000000 +0200 @@ -1,19 +1,20 @@ module github.com/goharbor/harbor-cli -go 1.24.0 +go 1.24.8 require ( github.com/atotto/clipboard v0.1.4 github.com/charmbracelet/bubbles v0.21.0 - github.com/charmbracelet/bubbletea v1.3.9 + github.com/charmbracelet/bubbletea v1.3.10 github.com/charmbracelet/huh v0.7.0 github.com/charmbracelet/lipgloss v1.1.0 + github.com/sahilm/fuzzy v0.1.1 github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.10.1 github.com/spf13/viper v1.21.0 github.com/stretchr/testify v1.11.1 github.com/zalando/go-keyring v0.2.6 - golang.org/x/term v0.35.0 + golang.org/x/term v0.36.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -48,7 +49,6 @@ github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.11.0 // indirect - github.com/sahilm/fuzzy v0.1.1 // indirect github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.10.0 // indirect @@ -58,6 +58,7 @@ go.opentelemetry.io/otel/sdk v1.35.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect + golang.org/x/net v0.44.0 // indirect golang.org/x/sync v0.17.0 // indirect ) @@ -66,13 +67,13 @@ github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.23.0 // indirect - github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/errors v0.22.3 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/loads v0.22.0 // indirect github.com/go-openapi/runtime v0.28.0 // indirect github.com/go-openapi/spec v0.21.0 // indirect - github.com/go-openapi/strfmt v0.23.0 + github.com/go-openapi/strfmt v0.24.0 github.com/go-openapi/swag v0.23.0 // indirect github.com/go-openapi/validate v0.24.0 // indirect github.com/goharbor/go-client v0.213.1 @@ -80,16 +81,15 @@ github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/mailru/easyjson v0.9.0 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - go.mongodb.org/mongo-driver v1.17.1 // indirect + go.mongodb.org/mongo-driver v1.17.4 // indirect go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/metric v1.35.0 // indirect go.opentelemetry.io/otel/trace v1.35.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/text v0.29.0 + golang.org/x/sys v0.37.0 // indirect + golang.org/x/text v0.30.0 ) replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/go.sum new/harbor-cli-0.0.13/go.sum --- old/harbor-cli-0.0.12/go.sum 2025-09-16 15:35:22.000000000 +0200 +++ new/harbor-cli-0.0.13/go.sum 2025-10-15 06:17:01.000000000 +0200 @@ -14,8 +14,8 @@ github.com/catppuccin/go v0.3.0/go.mod h1:8IHJuMGaUUjQM82qBrGNBv7LFq6JI3NnQCF6MOlZjpc= github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= -github.com/charmbracelet/bubbletea v1.3.9 h1:OBYdfRo6QnlIcXNmcoI2n1NNS65Nk6kI2L2FO1puS/4= -github.com/charmbracelet/bubbletea v1.3.9/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= +github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= +github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk= github.com/charmbracelet/huh v0.7.0 h1:W8S1uyGETgj9Tuda3/JdVkc3x7DBLZYPZc4c+/rnRdc= @@ -65,8 +65,8 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= -github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= -github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= +github.com/go-openapi/errors v0.22.3 h1:k6Hxa5Jg1TUyZnOwV2Lh81j8ayNw5VVYLvKrp4zFKFs= +github.com/go-openapi/errors v0.22.3/go.mod h1:+WvbaBBULWCOna//9B9TbLNGSFOfF8lY9dw4hGiEiKQ= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -77,8 +77,8 @@ github.com/go-openapi/runtime v0.28.0/go.mod h1:QN7OzcS+XuYmkQLw05akXk0jRH/eZ3kb18+1KwW9gyc= github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= -github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= -github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= +github.com/go-openapi/strfmt v0.24.0 h1:dDsopqbI3wrrlIzeXRbqMihRNnjzGC+ez4NQaAAJLuc= +github.com/go-openapi/strfmt v0.24.0/go.mod h1:Lnn1Bk9rZjXxU9VMADbEEOo7D7CDyKGLsSKekhFr7s4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= @@ -117,8 +117,6 @@ github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -173,8 +171,8 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/zalando/go-keyring v0.2.6 h1:r7Yc3+H+Ux0+M72zacZoItR3UDxeWfKTcabvkI8ua9s= github.com/zalando/go-keyring v0.2.6/go.mod h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI= -go.mongodb.org/mongo-driver v1.17.1 h1:Wic5cJIwJgSpBhe3lx3+/RybR5PiYRMpVFgO7cOHyIM= -go.mongodb.org/mongo-driver v1.17.1/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= +go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw= +go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= @@ -189,17 +187,19 @@ go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo= golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= +golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= +golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= +golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= +golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harbor-cli-0.0.12/pkg/api/ldap_handler.go new/harbor-cli-0.0.13/pkg/api/ldap_handler.go --- old/harbor-cli-0.0.12/pkg/api/ldap_handler.go 1970-01-01 01:00:00.000000000 +0100 +++ new/harbor-cli-0.0.13/pkg/api/ldap_handler.go 2025-10-15 06:17:01.000000000 +0200 @@ -0,0 +1,88 @@ +// 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 api + +import ( + "github.com/goharbor/go-client/pkg/sdk/v2.0/client/ldap" + "github.com/goharbor/go-client/pkg/sdk/v2.0/models" + "github.com/goharbor/harbor-cli/pkg/utils" +) + +func LdapSearchUser(username string) (*ldap.SearchLdapUserOK, error) { + ctx, client, err := utils.ContextWithClient() + if err != nil { + return nil, err + } + + res, err := client.Ldap.SearchLdapUser(ctx, &ldap.SearchLdapUserParams{ + Username: &username, + }) + if err != nil { + return nil, err + } + + return res, nil +} + +func LdapPingServer(ldapConf *models.LdapConf) (*ldap.PingLdapOK, error) { + ctx, client, err := utils.ContextWithClient() + if err != nil { + return nil, err + } + + res, err := client.Ldap.PingLdap(ctx, &ldap.PingLdapParams{ + Ldapconf: ldapConf, + }) + if err != nil { + return nil, err + } + + return res, nil +} + +func LdapImportUser(uids []string) error { + ctx, client, err := utils.ContextWithClient() + if err != nil { + return err + } + + _, err = client.Ldap.ImportLdapUser(ctx, &ldap.ImportLdapUserParams{ + UIDList: &models.LdapImportUsers{ + LdapUIDList: uids, + }, + }) + if err != nil { + return err + } + + return nil +} + +func LdapSearchGroup(groupName, groupDN string) (*ldap.SearchLdapGroupOK, error) { + ctx, client, err := utils.ContextWithClient() + if err != nil { + return nil, err + } + + res, err := client.Ldap.SearchLdapGroup(ctx, &ldap.SearchLdapGroupParams{ + Groupdn: &groupDN, + Groupname: &groupName, + }) + if err != nil { + return nil, err + } + + return res, nil +} ++++++ harbor-cli.obsinfo ++++++ --- /var/tmp/diff_new_pack.FkjJsF/_old 2025-10-22 12:23:18.821239428 +0200 +++ /var/tmp/diff_new_pack.FkjJsF/_new 2025-10-22 12:23:18.821239428 +0200 @@ -1,5 +1,5 @@ name: harbor-cli -version: 0.0.12 -mtime: 1758029722 -commit: f0b4514754dddc223213ed50e01eb355cc2c5d4a +version: 0.0.13 +mtime: 1760501821 +commit: 7d1568b93e59c6c67285216084fa3ecb28becd36 ++++++ vendor.tar.gz ++++++ ++++ 48745 lines of diff (skipped)
