Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package arkade for openSUSE:Factory checked 
in at 2026-01-21 14:16:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/arkade (Old)
 and      /work/SRC/openSUSE:Factory/.arkade.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "arkade"

Wed Jan 21 14:16:42 2026 rev:67 rq:1328337 version:0.11.64

Changes:
--------
--- /work/SRC/openSUSE:Factory/arkade/arkade.changes    2026-01-17 
14:54:35.470776556 +0100
+++ /work/SRC/openSUSE:Factory/.arkade.new.1928/arkade.changes  2026-01-21 
14:16:49.537566217 +0100
@@ -1,0 +2,7 @@
+Tue Jan 20 15:35:35 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.11.64:
+  * Add note
+  * Add claude code with verification strategy
+
+-------------------------------------------------------------------

Old:
----
  arkade-0.11.63.obscpio

New:
----
  arkade-0.11.64.obscpio

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

Other differences:
------------------
++++++ arkade.spec ++++++
--- /var/tmp/diff_new_pack.f53ZYT/_old  2026-01-21 14:16:52.661697345 +0100
+++ /var/tmp/diff_new_pack.f53ZYT/_new  2026-01-21 14:16:52.661697345 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           arkade
-Version:        0.11.63
+Version:        0.11.64
 Release:        0
 Summary:        Open Source Kubernetes Marketplace
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.f53ZYT/_old  2026-01-21 14:16:52.785702550 +0100
+++ /var/tmp/diff_new_pack.f53ZYT/_new  2026-01-21 14:16:52.817703893 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/alexellis/arkade</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">0.11.63</param>
+    <param name="revision">0.11.64</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.f53ZYT/_old  2026-01-21 14:16:53.157718164 +0100
+++ /var/tmp/diff_new_pack.f53ZYT/_new  2026-01-21 14:16:53.201720011 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/alexellis/arkade</param>
-              <param 
name="changesrevision">260fa9dedff75b5877d9f175ec4b516619a1eb29</param></service></servicedata>
+              <param 
name="changesrevision">dd08cc5ca0a283ab0420f0a604fccb7e22e2c093</param></service></servicedata>
 (No newline at EOF)
 

++++++ arkade-0.11.63.obscpio -> arkade-0.11.64.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.63/README.md new/arkade-0.11.64/README.md
--- old/arkade-0.11.63/README.md        2026-01-15 18:33:12.000000000 +0100
+++ new/arkade-0.11.64/README.md        2026-01-20 15:35:28.000000000 +0100
@@ -762,9 +762,10 @@
 
 |                                     TOOL                                     
|                                                                            
DESCRIPTION                                                                     
       |
 
|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [age](https://github.com/FiloSottile/age)                                    
| A simple, modern and secure file encryption tool.                      |
 | [actions-usage](https://github.com/self-actuated/actions-usage)              
| Get usage insights from GitHub Actions.                                       
                                                                                
    |
 | [actuated-cli](https://github.com/self-actuated/actuated-cli)                
| Official CLI for actuated.dev                                                 
                                                                                
    |
+| [age](https://github.com/FiloSottile/age)                                    
| A simple, modern, and secure file encryption tool.                            
                                                                                
    |
+| [age-keygen](https://github.com/FiloSottile/age)                             
| Key generation tool for age encryption.                                       
                                                                                
    |
 | [alloy](https://github.com/grafana/alloy)                                    
| OpenTelemetry Collector distribution with programmable pipelines              
                                                                                
    |
 | [argocd](https://github.com/argoproj/argo-cd)                                
| Declarative, GitOps continuous delivery tool for Kubernetes.                  
                                                                                
    |
 | [argocd-autopilot](https://github.com/argoproj-labs/argocd-autopilot)        
| An opinionated way of installing Argo-CD and managing GitOps repositories.    
                                                                                
    |
@@ -778,6 +779,7 @@
 | [ch-remote](https://github.com/cloud-hypervisor/cloud-hypervisor)            
| The ch-remote binary is used for controlling an running Virtual Machine.      
                                                                                
    |
 | [cilium](https://github.com/cilium/cilium-cli)                               
| CLI to install, manage & troubleshoot Kubernetes clusters running Cilium.     
                                                                                
    |
 | [civo](https://github.com/civo/cli)                                          
| CLI for interacting with your Civo resources.                                 
                                                                                
    |
+| [claude](https://github.com/anthropic/claude)                                
| Claude Code.                                                                  
                                                                                
    |
 | [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)     
| Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) that runs on 
top of the KVM hypervisor and the Microsoft Hypervisor (MSHV).                  
    |
 | [clusterawsadm](https://github.com/kubernetes-sigs/cluster-api-provider-aws) 
| Kubernetes Cluster API Provider AWS Management Utility                        
                                                                                
    |
 | [clusterctl](https://github.com/kubernetes-sigs/cluster-api)                 
| The clusterctl CLI tool handles the lifecycle of a Cluster API management 
cluster                                                                         
        |
@@ -895,7 +897,7 @@
 | [oh-my-posh](https://github.com/jandedobbeleer/oh-my-posh)                   
| A prompt theme engine for any shell that can display kubernetes information.  
                                                                                
    |
 | [op](https://github.com/1password/)                                          
| 1Password CLI enables you to automate administrative tasks and securely 
provision secrets across development environments.                              
          |
 | [opa](https://github.com/open-policy-agent/opa)                              
| General-purpose policy engine that enables unified, context-aware policy 
enforcement across the entire stack.                                            
         |
-| [opencode](https://github.com/anomalyco/opencode)                            
      | The opencode CLI for running AI agents and tools.                       
                                                                                
          |
+| [opencode](https://github.com/anomalyco/opencode)                            
| The opencode CLI for running AI agents and tools.                             
                                                                                
    |
 | [openshift-install](https://github.com/openshift/installer)                  
| CLI to install an OpenShift 4.x cluster.                                      
                                                                                
    |
 | [operator-sdk](https://github.com/operator-framework/operator-sdk)           
| Operator SDK is a tool for scaffolding and generating code for building 
Kubernetes operators                                                            
          |
 | [opkssh](https://github.com/openpubkey/opkssh)                               
| A new type of shell that can handle structured data like YAML really well     
                                                                                
    |
@@ -946,6 +948,6 @@
 | [waypoint](https://github.com/hashicorp/waypoint)                            
| Easy application deployment for Kubernetes and Amazon ECS                     
                                                                                
    |
 | [yq](https://github.com/mikefarah/yq)                                        
| Portable command-line YAML processor.                                         
                                                                                
    |
 | [yt-dlp](https://github.com/yt-dlp/yt-dlp)                                   
| Fork of youtube-dl with additional features and fixes                         
                                                                                
    |
-There are 183 tools, use `arkade get NAME` to download one.                    
                                                                                
                                                                                
     
+There are 186 tools, use `arkade get NAME` to download one.                    
                                                                  
 
 > Note to contributors, run `go build && ./arkade get --format markdown` to 
 > generate this list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.63/pkg/get/download.go 
new/arkade-0.11.64/pkg/get/download.go
--- old/arkade-0.11.63/pkg/get/download.go      2026-01-15 18:33:12.000000000 
+0100
+++ new/arkade-0.11.64/pkg/get/download.go      2026-01-20 15:35:28.000000000 
+0100
@@ -3,6 +3,7 @@
 import (
        "bytes"
        "crypto/sha256"
+       "encoding/json"
        "fmt"
        "io"
        "log"
@@ -57,7 +58,78 @@
        }
 
        if verify {
-               if tool.VerifyStrategy == HashicorpShasumStrategy {
+               if tool.VerifyStrategy == ClaudeShasumStrategy {
+                       st := time.Now()
+                       tmpl := template.New(tool.Name + "sha")
+                       tmpl = tmpl.Funcs(templateFuncs)
+                       t, err := tmpl.Parse(tool.VerifyTemplate)
+                       if err != nil {
+                               return "", "", err
+                       }
+
+                       var buf bytes.Buffer
+                       inputs := map[string]string{
+                               "Name":          tool.Name,
+                               "Owner":         tool.Owner,
+                               "Repo":          tool.Repo,
+                               "Version":       resolvedVersion,
+                               "VersionNumber": 
strings.TrimPrefix(resolvedVersion, "v"),
+                               "Arch":          arch,
+                               "OS":            operatingSystem,
+                       }
+
+                       if err = t.Execute(&buf, inputs); err != nil {
+                               return "", "", err
+                       }
+
+                       verifyURL := strings.TrimSpace(buf.String())
+                       log.Printf("Downloading SHA sum from: %s", verifyURL)
+                       shaSumManifest, err := fetchText(verifyURL)
+                       if err != nil {
+                               return "", "", err
+                       }
+                       // {
+                       //   "version": "2.1.12",
+                       //   "buildDate": "2026-01-17T15:42:38Z",
+                       //   "platforms": {
+                       //     "darwin-arm64": {
+                       //       "checksum": 
"40be59519a84bd35eb1111aa46f72aa6b3443866d3f6336252a198fdcaefbbe5",
+                       //       "size": 177846896
+                       //     },
+
+                       var manifest struct {
+                               Version   string `json:"version"`
+                               BuildDate string `json:"buildDate"`
+                               Platforms map[string]struct {
+                                       Checksum string `json:"checksum"`
+                                       Size     int64  `json:"size"`
+                               } `json:"platforms"`
+                       }
+                       if err := json.Unmarshal([]byte(shaSumManifest), 
&manifest); err != nil {
+                               return "", "", err
+                       }
+
+                       var archMappingForClaude = map[string]string{
+                               "amd64":   "amd64",
+                               "x86_64":  "x64",
+                               "arm64":   "arm64",
+                               "aarch64": "arm64",
+                       }
+
+                       platformKey := fmt.Sprintf("%s-%s", 
strings.ToLower(operatingSystem), archMappingForClaude[arch])
+
+                       platformInfo, found := manifest.Platforms[platformKey]
+                       if !found {
+                               return "", "", fmt.Errorf("no checksum info 
found for platform: %s", platformKey)
+                       }
+
+                       if err := verifySHA(platformInfo.Checksum, 
outFilePath); err != nil {
+                               return "", "", err
+                       } else {
+                               log.Printf("SHA sum verified in %s.", 
time.Since(st).Round(time.Millisecond))
+                       }
+
+               } else if tool.VerifyStrategy == HashicorpShasumStrategy {
                        st := time.Now()
                        tmpl := template.New(tool.Name + "sha")
                        tmpl = tmpl.Funcs(templateFuncs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.63/pkg/get/get.go 
new/arkade-0.11.64/pkg/get/get.go
--- old/arkade-0.11.63/pkg/get/get.go   2026-01-15 18:33:12.000000000 +0100
+++ new/arkade-0.11.64/pkg/get/get.go   2026-01-20 15:35:28.000000000 +0100
@@ -20,8 +20,10 @@
 const GitHubVersionStrategy = "github"
 const GitLabVersionStrategy = "gitlab"
 const k8sVersionStrategy = "k8s"
+const ClaudeStrategy = `claude`
 
 const HashicorpShasumStrategy = `hashicorp-sha`
+const ClaudeShasumStrategy = `claude-sha`
 
 var supportedOS = [...]string{"linux", "darwin", "ming"}
 var supportedArchitectures = [...]string{"x86_64", "arm", "amd64", "armv6l", 
"armv7l", "arm64", "aarch64"}
@@ -92,6 +94,11 @@
                Timeout: time.Second * 10,
                Method:  http.MethodGet,
        },
+       ClaudeStrategy: {
+               Url:     
"https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/latest";,
+               Timeout: time.Second * 5,
+               Method:  http.MethodGet,
+       },
 }
 
 type ToolLocal struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.63/pkg/get/get_test.go 
new/arkade-0.11.64/pkg/get/get_test.go
--- old/arkade-0.11.63/pkg/get/get_test.go      2026-01-15 18:33:12.000000000 
+0100
+++ new/arkade-0.11.64/pkg/get/get_test.go      2026-01-20 15:35:28.000000000 
+0100
@@ -9239,6 +9239,59 @@
        }
 }
 
+func Test_DownloadClaude(t *testing.T) {
+       tools := MakeTools()
+       name := "claude"
+
+       tool := getTool(name, tools)
+
+       const toolVersion = "2.1.12"
+
+       tests := []test{
+               {
+                       os:      "darwin",
+                       arch:    arch64bit,
+                       version: toolVersion,
+                       url:     
"https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.12/darwin-x64/claude";,
+               },
+               {
+                       os:      "darwin",
+                       arch:    archDarwinARM64,
+                       version: toolVersion,
+                       url:     
"https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.12/darwin-arm64/claude";,
+               },
+               {
+                       os:      "linux",
+                       arch:    arch64bit,
+                       version: toolVersion,
+                       url:     
"https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.12/linux-x64/claude";,
+               },
+               {
+                       os:      "linux",
+                       arch:    archARM64,
+                       version: toolVersion,
+                       url:     
"https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.12/linux-arm64/claude";,
+               },
+               {
+                       // Windows is not supported, but should resolve to a 
URL to get a 404.
+                       os:      "mingw64_nt-10.0-18362",
+                       arch:    arch64bit,
+                       version: toolVersion,
+                       url:     
"https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.12/windows-x64/claude";,
+               },
+       }
+
+       for _, tc := range tests {
+               got, _, err := tool.GetURL(tc.os, tc.arch, tc.version, false)
+               if err != nil {
+                       t.Fatal(err)
+               }
+               if got != tc.url {
+                       t.Errorf("\nwant: %s\ngot:  %s", tc.url, got)
+               }
+       }
+}
+
 func Test_LogCLI(t *testing.T) {
        tools := MakeTools()
        name := "logcli"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.63/pkg/get/tools.go 
new/arkade-0.11.64/pkg/get/tools.go
--- old/arkade-0.11.63/pkg/get/tools.go 2026-01-15 18:33:12.000000000 +0100
+++ new/arkade-0.11.64/pkg/get/tools.go 2026-01-20 15:35:28.000000000 +0100
@@ -70,6 +70,36 @@
 {{- end -}}`,
                })
 
+       // Claude Code CLI
+       tools = append(tools,
+               Tool{
+                       Owner:          "anthropic",
+                       Repo:           "claude",
+                       Name:           "claude",
+                       Description:    "Claude Code.",
+                       VerifyStrategy: ClaudeShasumStrategy,
+                       VerifyTemplate: 
`https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/{{.Version}}/manifest.json`,
 VersionStrategy: ClaudeStrategy,
+                       URLTemplate: `
+{{$os := .OS}}
+{{$arch := .Arch}}
+
+{{ if or (eq .Arch "x86_64") (eq .Arch "amd64") -}}
+{{ $arch = "x64" }}
+{{- else if or (eq .Arch "arm64") (eq .Arch "aarch64") -}}
+{{ $arch = "arm64" }}
+{{- end}}
+
+{{ if HasPrefix .OS "ming" -}}
+{{ $os = "windows" }}
+{{- else if eq .OS "darwin" -}}
+{{ $os = "darwin" }}
+{{- else -}}
+{{ $os = "linux" }}
+{{- end -}}
+
+https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/{{.Version}}/{{$os}}-{{$arch}}/claude
+`})
+
        tools = append(tools,
                Tool{
                        Owner:           "helm",

++++++ arkade.obsinfo ++++++
--- /var/tmp/diff_new_pack.f53ZYT/_old  2026-01-21 14:16:56.389853825 +0100
+++ /var/tmp/diff_new_pack.f53ZYT/_new  2026-01-21 14:16:56.425855337 +0100
@@ -1,5 +1,5 @@
 name: arkade
-version: 0.11.63
-mtime: 1768498392
-commit: 260fa9dedff75b5877d9f175ec4b516619a1eb29
+version: 0.11.64
+mtime: 1768919728
+commit: dd08cc5ca0a283ab0420f0a604fccb7e22e2c093
 

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

Reply via email to