Skip to content

feat: add digitalocean provider#734

Draft
acouvreur wants to merge 1 commit intomainfrom
add-digital-ocean-provider
Draft

feat: add digitalocean provider#734
acouvreur wants to merge 1 commit intomainfrom
add-digital-ocean-provider

Conversation

@acouvreur
Copy link
Copy Markdown
Member

Digital Ocean has sponsored this project!

An attempt to create a DigitalOcean provider and running a sablier instance on DigitalOcean will be added.

Copilot AI review requested due to automatic review settings November 20, 2025 05:16
@github-actions github-actions Bot added documentation Improvements or additions to documentation provider Issue related to a provider labels Nov 20, 2025
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
21.4% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds DigitalOcean App Platform as a new provider for Sablier, enabling automatic scaling of DigitalOcean apps based on demand. The implementation includes full provider functionality with start/stop operations, instance listing, status inspection, and event monitoring through polling.

Key Changes

  • Implemented complete DigitalOcean provider with support for App Platform services and workers
  • Added comprehensive integration tests requiring DigitalOcean API credentials
  • Fixed grammatical errors in existing provider documentation ("knows" → "know")
  • Added documentation and examples for the new provider

Reviewed Changes

Copilot reviewed 25 out of 27 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
pkg/sabliercmd/provider.go Added DigitalOcean provider initialization with token validation
pkg/provider/digitalocean/*.go Implemented core provider functionality (start, stop, list, inspect, events)
pkg/provider/digitalocean/*_test.go Added integration tests for all provider operations
pkg/config/provider.go Added DigitalOcean configuration with token and region fields
docs/providers/digitalocean.md Created comprehensive documentation for DigitalOcean provider
docs/providers/*.md Fixed grammatical errors in existing documentation
docs/_sidebar.md Added DigitalOcean to sidebar navigation (also added Nomad reference)
go.mod, go.sum Added godo SDK and dependencies
README.md Added DigitalOcean provider overview section
Makefile Added gendocs target for documentation generation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +95 to +96
ticker := time.NewTicker(5 * time.Second)
defer ticker.Stop()
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ticker is created but will continue ticking even after the function returns. Consider using defer ticker.Stop() after the ticker creation to ensure proper cleanup of resources.

Copilot uses AI. Check for mistakes.
)

func (p *Provider) InstanceStart(ctx context.Context, name string) error {
p.l.DebugContext(ctx, "starting app", "name", name)
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent logging style. Line 12 uses positional arguments "name", name while other log statements in the codebase use slog.String("name", name). For consistency, use slog.String("name", name) here as well.

Suggested change
p.l.DebugContext(ctx, "starting app", "name", name)
p.l.DebugContext(ctx, "starting app", slog.String("name", name))

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +43
// Scale up services
for i, service := range updateRequest.Spec.Services {
if service.InstanceCount == 0 {
updateRequest.Spec.Services[i].InstanceCount = 1
needsUpdate = true
}
}

// Scale up workers
for i, worker := range updateRequest.Spec.Workers {
if worker.InstanceCount == 0 {
updateRequest.Spec.Workers[i].InstanceCount = 1
needsUpdate = true
}
}
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The code iterates over services/workers twice - once to check if update is needed and once to actually scale. This could be simplified by doing both operations in a single loop, setting needsUpdate = true when scaling and only calling Apps.Update if needsUpdate is true at the end.

Suggested change
// Scale up services
for i, service := range updateRequest.Spec.Services {
if service.InstanceCount == 0 {
updateRequest.Spec.Services[i].InstanceCount = 1
needsUpdate = true
}
}
// Scale up workers
for i, worker := range updateRequest.Spec.Workers {
if worker.InstanceCount == 0 {
updateRequest.Spec.Workers[i].InstanceCount = 1
needsUpdate = true
}
}
// Helper to scale up components
scaleUp := func(components []godo.AppComponentSpec) bool {
updated := false
for i, c := range components {
if c.InstanceCount == 0 {
components[i].InstanceCount = 1
updated = true
}
}
return updated
}
if scaleUp(updateRequest.Spec.Services) {
needsUpdate = true
}
if scaleUp(updateRequest.Spec.Workers) {
needsUpdate = true
}

Copilot uses AI. Check for mistakes.
Comment thread docs/_sidebar.md
- [<img src="assets/img/docker.svg" height=24px width=24px />Docker](/providers/docker)
- [<img src="assets/img/docker_swarm.png" height=24px width=24px />Docker Swarm](/providers/docker_swarm)
- [<img src="assets/img/kubernetes.png" height=24px width=24px />Kubernetes](/providers/kubernetes)
- [<img src="assets/img/nomad.svg" height=24px width=24px />Nomad](/providers/nomad)
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sidebar references a Nomad provider on line 14, but no corresponding documentation file or implementation for Nomad is included in this PR. This appears to be an accidental addition. Either remove this line or add the corresponding Nomad documentation.

Suggested change
- [<img src="assets/img/nomad.svg" height=24px width=24px />Nomad](/providers/nomad)

Copilot uses AI. Check for mistakes.

return &Provider{
Client: client,
desiredReplicas: 1,
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The desiredReplicas field is hardcoded to 1 and never used elsewhere. Consider removing this field if it's not needed, or document why it exists if it's intended for future use.

Copilot uses AI. Check for mistakes.
Comment on lines +51 to +52
if lastCount, exists := lastState[app.ID]; exists {
if lastCount > 0 && currentCount == 0 {
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition lastCount > 0 && currentCount == 0 will only detect transitions from running to stopped. If an app was already at 0 instances when Sablier started, changes won't be detected. Consider if this is the intended behavior or if initial state tracking is needed.

Copilot uses AI. Check for mistakes.
return podman.New(connText, logger)
case "digitalocean":
if config.DigitalOcean.Token == "" {
return nil, fmt.Errorf("Digital Ocean token is required")
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error message should maintain consistent capitalization. "Digital Ocean" should be "DigitalOcean" (one word) to match the casing used throughout the codebase and the provider name.

Suggested change
return nil, fmt.Errorf("Digital Ocean token is required")
return nil, fmt.Errorf("DigitalOcean token is required")

Copilot uses AI. Check for mistakes.
Comment thread pkg/config/provider.go
Comment on lines +41 to +42
// Region is the Digital Ocean region. Defaults to "nyc1"
Region string `mapstructure:"REGION" yaml:"region,omitempty" default:"nyc1"`
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Region field is defined in the configuration but never actually used in the provider implementation. Either remove this field or implement the intended functionality. The comment on line 95 in the documentation mentions "this setting may be used for future region-specific features" suggesting it's not currently functional.

Copilot uses AI. Check for mistakes.
Comment on lines +19 to +21
p.l.DebugContext(ctx, "app inspected",
slog.String("app", name),
slog.String("phase", string(app.ActiveDeployment.Phase)),
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Potential nil pointer dereference. If app.ActiveDeployment is nil, accessing app.ActiveDeployment.Phase on line 21 will cause a panic. Add a nil check before accessing the Phase field.

Suggested change
p.l.DebugContext(ctx, "app inspected",
slog.String("app", name),
slog.String("phase", string(app.ActiveDeployment.Phase)),
phase := "N/A"
if app.ActiveDeployment != nil {
phase = string(app.ActiveDeployment.Phase)
}
p.l.DebugContext(ctx, "app inspected",
slog.String("app", name),
slog.String("phase", phase),

Copilot uses AI. Check for mistakes.
Comment on lines +43 to +48
for _, service := range app.Spec.Services {
currentReplicas += int32(service.InstanceCount)
}
for _, worker := range app.Spec.Workers {
currentReplicas += int32(worker.InstanceCount)
}
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Duplicate code: The logic for counting instances from services and workers (lines 43-48) is duplicated from lines 28-35. Consider extracting this into a helper function to reduce code duplication.

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown

❌ 6 Tests Failed:

Tests completed Failed Passed Skipped
167 6 155 6
View the top 3 failed tests by shortest run time
TestDefault
Stack Traces | 0.010s run time
Failed
TestDefault/config_file
Stack Traces | 0.010s run time
Failed
TestPrecedence/config_file
Stack Traces | 0.010s run time
Failed

📣 Thoughts on this report? Let Codecov know! | Powered by Codecov

@codecov
Copy link
Copy Markdown

codecov Bot commented Nov 20, 2025

❌ 6 Tests Failed:

Tests completed Failed Passed Skipped
161 6 155 6
View the top 3 failed test(s) by shortest run time
github.com/sablierapp/sablier/pkg/sabliercmd::TestDefault
Stack Traces | 0.01s run time
Failed
github.com/sablierapp/sablier/pkg/sabliercmd::TestDefault/config_file
Stack Traces | 0.01s run time
Failed
github.com/sablierapp/sablier/pkg/sabliercmd::TestPrecedence/config_file
Stack Traces | 0.01s run time
Failed
github.com/sablierapp/sablier/pkg/sabliercmd::TestPrecedence/env_var
Stack Traces | 0.01s run time
Failed
github.com/sablierapp/sablier/pkg/sabliercmd::TestPrecedence/flag
Stack Traces | 0.01s run time
Failed
github.com/sablierapp/sablier/pkg/sabliercmd::TestPrecedence
Stack Traces | 0.02s run time
Failed

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@github-actions
Copy link
Copy Markdown

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Diff between sablier_v1.10.1_linux-amd64 and sablier_draft_linux-amd64                                   │
├──────────┬───────────────────────────────────────────────────────────────┬──────────┬──────────┬─────────┤
│ PERCENT  │ NAME                                                          │ OLD SIZE │ NEW SIZE │ DIFF    │
├──────────┼───────────────────────────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ +100%    │ github.com/quic-go/quic-go                                    │          │ 1.0 MB   │ +1.0 MB │
│ +100%    │ github.com/goccy/go-yaml                                      │          │ 670 kB   │ +670 kB │
│ +100%    │ github.com/digitalocean/godo                                  │          │ 656 kB   │ +656 kB │
│ +3.07%   │ k8s.io/api                                                    │ 17 MB    │ 18 MB    │ +521 kB │
│ +3.96%   │ k8s.io/client-go                                              │ 12 MB    │ 13 MB    │ +488 kB │
│ +100%    │ go.yaml.in/yaml/v3                                            │          │ 298 kB   │ +298 kB │
│ +100%    │ sigs.k8s.io/structured-merge-diff/v6                          │          │ 263 kB   │ +263 kB │
│ +100%    │ go.yaml.in/yaml/v2                                            │          │ 258 kB   │ +258 kB │
│ +21.02%  │ <autogenerated>                                               │ 690 kB   │ 836 kB   │ +145 kB │
│ +21.04%  │ golang.org/x/net                                              │ 672 kB   │ 813 kB   │ +141 kB │
│ +12.55%  │ golang.org/x/crypto                                           │ 637 kB   │ 717 kB   │ +80 kB  │
│ +258.13% │ github.com/spf13/cast                                         │ 28 kB    │ 100 kB   │ +72 kB  │
│ +100%    │ github.com/hashicorp/go-retryablehttp                         │          │ 58 kB    │ +58 kB  │
│ +5.72%   │ runtime                                                       │ 848 kB   │ 896 kB   │ +48 kB  │
│ +14.10%  │ github.com/gin-gonic/gin                                      │ 260 kB   │ 296 kB   │ +37 kB  │
│ +10.42%  │ slices                                                        │ 285 kB   │ 315 kB   │ +30 kB  │
│ +1.95%   │ net                                                           │ 1.5 MB   │ 1.6 MB   │ +30 kB  │
│ +10.07%  │ math                                                          │ 268 kB   │ 295 kB   │ +27 kB  │
│ +100%    │ github.com/quic-go/qpack                                      │          │ 26 kB    │ +26 kB  │
│ +43.67%  │ github.com/cyphar/filepath-securejoin                         │ 57 kB    │ 82 kB    │ +25 kB  │
│ +9.75%   │ github.com/fxamacker/cbor/v2                                  │ 240 kB   │ 263 kB   │ +23 kB  │
│ +138.67% │ github.com/sourcegraph/conc                                   │ 16 kB    │ 37 kB    │ +22 kB  │
│ +10.06%  │ github.com/sablierapp/sablier                                 │ 205 kB   │ 226 kB   │ +21 kB  │
│ +1.06%   │ google.golang.org/protobuf                                    │ 1.7 MB   │ 1.7 MB   │ +18 kB  │
│ +100%    │ github.com/pmezard/go-difflib                                 │          │ 16 kB    │ +16 kB  │
│ +26.95%  │ golang.org/x/sys                                              │ 60 kB    │ 76 kB    │ +16 kB  │
│ +100%    │ internal/runtime/cgroup                                       │          │ 14 kB    │ +14 kB  │
│ +100%    │ github.com/google/go-querystring                              │          │ 14 kB    │ +14 kB  │
│ +81.09%  │ github.com/samber/slog-gin                                    │ 17 kB    │ 31 kB    │ +14 kB  │
│ +14.98%  │ sync                                                          │ 70 kB    │ 80 kB    │ +10 kB  │
│ +0.66%   │ github.com/containers/storage                                 │ 1.5 MB   │ 1.5 MB   │ +10 kB  │
│ +5.95%   │ sigs.k8s.io/json                                              │ 148 kB   │ 157 kB   │ +8.8 kB │
│ +2.68%   │ github.com/go-playground/validator/v10                        │ 302 kB   │ 310 kB   │ +8.1 kB │
│ +19.74%  │ internal/runtime/maps                                         │ 33 kB    │ 40 kB    │ +6.6 kB │
│ +0.44%   │ github.com/containers/image/v5                                │ 1.3 MB   │ 1.3 MB   │ +5.8 kB │
│ +2.74%   │ os                                                            │ 203 kB   │ 208 kB   │ +5.6 kB │
│ +156.49% │ golang.org/x/oauth2                                           │ 3.0 kB   │ 7.8 kB   │ +4.7 kB │
│ +4.04%   │ log                                                           │ 115 kB   │ 119 kB   │ +4.6 kB │
│ +186.42% │ weak                                                          │ 2.4 kB   │ 6.9 kB   │ +4.5 kB │
│ +565.03% │ github.com/opencontainers/runtime-tools                       │ 735 B    │ 4.9 kB   │ +4.2 kB │
│ +9.56%   │ context                                                       │ 40 kB    │ 44 kB    │ +3.8 kB │
│ +1.37%   │ github.com/spf13/pflag                                        │ 278 kB   │ 282 kB   │ +3.8 kB │
│ +1.76%   │ encoding/json                                                 │ 158 kB   │ 161 kB   │ +2.8 kB │
│ +5.19%   │ github.com/davecgh/go-spew                                    │ 49 kB    │ 52 kB    │ +2.6 kB │
│ +0.16%   │ github.com/google/gnostic-models                              │ 1.5 MB   │ 1.5 MB   │ +2.5 kB │
│ +0.22%   │ google.golang.org/grpc                                        │ 1.0 MB   │ 1.0 MB   │ +2.3 kB │
│ +2.97%   │ github.com/spf13/viper                                        │ 64 kB    │ 66 kB    │ +1.9 kB │
│ +13.00%  │ unique                                                        │ 13 kB    │ 15 kB    │ +1.7 kB │
│ +2.96%   │ github.com/containers/libtrust                                │ 56 kB    │ 58 kB    │ +1.7 kB │
│ +0.74%   │ github.com/spf13/cobra                                        │ 226 kB   │ 228 kB   │ +1.7 kB │
│ +0.85%   │ regexp                                                        │ 176 kB   │ 177 kB   │ +1.5 kB │
│ +0.53%   │ text/template                                                 │ 264 kB   │ 265 kB   │ +1.4 kB │
│ +5.10%   │ k8s.io/utils                                                  │ 27 kB    │ 29 kB    │ +1.4 kB │
│ +13.27%  │ internal/runtime/atomic                                       │ 10 kB    │ 12 kB    │ +1.4 kB │
│ +1.42%   │ syscall                                                       │ 94 kB    │ 95 kB    │ +1.3 kB │
│ +1.54%   │ archive/tar                                                   │ 79 kB    │ 80 kB    │ +1.2 kB │
│ +16.17%  │ github.com/sagikazarmark/locafero                             │ 6.0 kB   │ 7.0 kB   │ +977 B  │
│ +0.45%   │ github.com/gabriel-vasile/mimetype                            │ 217 kB   │ 218 kB   │ +975 B  │
│ +2.08%   │ io                                                            │ 46 kB    │ 47 kB    │ +962 B  │
│ +1.09%   │ github.com/go-viper/mapstructure/v2                           │ 83 kB    │ 84 kB    │ +898 B  │
│ +0.21%   │ github.com/json-iterator/go                                   │ 420 kB   │ 421 kB   │ +894 B  │
│ +168.49% │ internal/runtime/syscall                                      │ 530 B    │ 1.4 kB   │ +893 B  │
│ +1.00%   │ github.com/containers/podman/v5                               │ 84 kB    │ 84 kB    │ +839 B  │
│ +100%    │ internal/synctest                                             │          │ 834 B    │ +834 B  │
│ +0.51%   │ github.com/ulikunitz/xz                                       │ 160 kB   │ 161 kB   │ +815 B  │
│ +0.51%   │ time                                                          │ 154 kB   │ 155 kB   │ +790 B  │
│ +0.17%   │ k8s.io/kube-openapi                                           │ 447 kB   │ 448 kB   │ +740 B  │
│ +0.29%   │ github.com/go-jose/go-jose/v4                                 │ 252 kB   │ 253 kB   │ +727 B  │
│ +2.66%   │ unicode                                                       │ 27 kB    │ 27 kB    │ +708 B  │
│ +0.85%   │ github.com/coreos/go-systemd/v22                              │ 83 kB    │ 84 kB    │ +702 B  │
│ +18.07%  │ internal/syscall/unix                                         │ 3.5 kB   │ 4.1 kB   │ +627 B  │
│ +4.77%   │ compress/bzip2                                                │ 13 kB    │ 14 kB    │ +622 B  │
│ +0.36%   │ golang.org/x/text                                             │ 153 kB   │ 154 kB   │ +551 B  │
│ +100%    │ github.com/hashicorp/go-cleanhttp                             │          │ 546 B    │ +546 B  │
│ +1.62%   │ gopkg.in/inf.v0                                               │ 33 kB    │ 33 kB    │ +533 B  │
│ +5.61%   │ internal/godebug                                              │ 9.1 kB   │ 9.6 kB   │ +509 B  │
│ +0.72%   │ internal/abi                                                  │ 70 kB    │ 71 kB    │ +503 B  │
│ +0.59%   │ github.com/smallstep/pkcs7                                    │ 85 kB    │ 86 kB    │ +498 B  │
│ +0.31%   │ github.com/BurntSushi/toml                                    │ 158 kB   │ 158 kB   │ +483 B  │
│ +100%    │ internal/runtime/strconv                                      │          │ 432 B    │ +432 B  │
│ +0.15%   │ github.com/google/go-cmp                                      │ 289 kB   │ 289 kB   │ +423 B  │
│ +0.47%   │ github.com/vbauerster/mpb/v8                                  │ 90 kB    │ 91 kB    │ +422 B  │
│ +1.75%   │ vendor/golang.org/x/net/idna                                  │ 22 kB    │ 22 kB    │ +376 B  │
│ +0.50%   │ github.com/vbatts/tar-split                                   │ 75 kB    │ 76 kB    │ +375 B  │
│ +1.11%   │ github.com/lmittmann/tint                                     │ 33 kB    │ 34 kB    │ +368 B  │
│ +0.93%   │ bytes                                                         │ 39 kB    │ 39 kB    │ +359 B  │
│ +1.22%   │ github.com/mistifyio/go-zfs/v3                                │ 29 kB    │ 29 kB    │ +355 B  │
│ +1.17%   │ github.com/containerd/errdefs                                 │ 30 kB    │ 30 kB    │ +349 B  │
│ +0.59%   │ strconv                                                       │ 59 kB    │ 60 kB    │ +349 B  │
│ +1.31%   │ vendor/golang.org/x/crypto/cryptobyte                         │ 25 kB    │ 25 kB    │ +327 B  │
│ +5.56%   │ vendor/golang.org/x/sys/cpu                                   │ 5.8 kB   │ 6.1 kB   │ +322 B  │
│ +0.25%   │ encoding/xml                                                  │ 121 kB   │ 121 kB   │ +308 B  │
│ +2.04%   │ github.com/go-logr/stdr                                       │ 15 kB    │ 15 kB    │ +300 B  │
│ +3.80%   │ encoding/base32                                               │ 7.6 kB   │ 7.9 kB   │ +289 B  │
│ +2.03%   │ github.com/morikuni/aec                                       │ 14 kB    │ 14 kB    │ +284 B  │
│ +2.23%   │ github.com/docker/go-connections                              │ 12 kB    │ 12 kB    │ +263 B  │
│ +0.88%   │ github.com/klauspost/pgzip                                    │ 29 kB    │ 30 kB    │ +258 B  │
│ +0.51%   │ internal/reflectlite                                          │ 50 kB    │ 50 kB    │ +254 B  │
│ +0.68%   │ bufio                                                         │ 37 kB    │ 37 kB    │ +252 B  │
│ +1.18%   │ github.com/google/go-intervals                                │ 20 kB    │ 21 kB    │ +242 B  │
│ +6.05%   │ github.com/letsencrypt/boulder                                │ 3.8 kB   │ 4.0 kB   │ +227 B  │
│ +0.91%   │ hash                                                          │ 25 kB    │ 25 kB    │ +226 B  │
│ +1.16%   │ encoding/base64                                               │ 19 kB    │ 19 kB    │ +218 B  │
│ +0.42%   │ github.com/containers/ocicrypt                                │ 51 kB    │ 51 kB    │ +216 B  │
│ +0.19%   │ google.golang.org/genproto/googleapis/api                     │ 110 kB   │ 110 kB   │ +208 B  │
│ +0.26%   │ image                                                         │ 81 kB    │ 81 kB    │ +206 B  │
│ +3.30%   │ internal/cpu                                                  │ 6.2 kB   │ 6.4 kB   │ +205 B  │
│ +0.36%   │ strings                                                       │ 54 kB    │ 54 kB    │ +194 B  │
│ +0.06%   │ github.com/godbus/dbus/v5                                     │ 329 kB   │ 329 kB   │ +187 B  │
│ +0.21%   │ go.opentelemetry.io/auto/sdk                                  │ 82 kB    │ 82 kB    │ +173 B  │
│ +0.33%   │ github.com/go-logr/logr                                       │ 52 kB    │ 52 kB    │ +171 B  │
│ +0.96%   │ github.com/stefanberger/go-pkcs11uri                          │ 18 kB    │ 18 kB    │ +167 B  │
│ +0.36%   │ github.com/sigstore/protobuf-specs                            │ 46 kB    │ 46 kB    │ +165 B  │
│ +0.57%   │ github.com/tchap/go-patricia/v2                               │ 26 kB    │ 26 kB    │ +149 B  │
│ +0.40%   │ github.com/distribution/reference                             │ 37 kB    │ 37 kB    │ +145 B  │
│ +0.16%   │ internal/poll                                                 │ 93 kB    │ 93 kB    │ +144 B  │
│ +0.70%   │ github.com/spf13/afero                                        │ 20 kB    │ 20 kB    │ +140 B  │
│ +0.63%   │ github.com/opencontainers/go-digest                           │ 21 kB    │ 22 kB    │ +135 B  │
│ +0.92%   │ github.com/skeema/knownhosts                                  │ 14 kB    │ 14 kB    │ +125 B  │
│ +0.45%   │ github.com/rivo/uniseg                                        │ 25 kB    │ 26 kB    │ +113 B  │
│ +6.95%   │ database/sql                                                  │ 1.6 kB   │ 1.7 kB   │ +108 B  │
│ +0.31%   │ vendor/golang.org/x/net/dns/dnsmessage                        │ 34 kB    │ 34 kB    │ +104 B  │
│ +0.42%   │ path                                                          │ 24 kB    │ 24 kB    │ +99 B   │
│ +0.68%   │ internal/bisect                                               │ 14 kB    │ 14 kB    │ +98 B   │
│ +0.77%   │ compress/gzip                                                 │ 13 kB    │ 13 kB    │ +97 B   │
│ +0.21%   │ github.com/docker/distribution                                │ 44 kB    │ 44 kB    │ +91 B   │
│ +1.36%   │ github.com/modern-go/concurrent                               │ 6.2 kB   │ 6.2 kB   │ +84 B   │
│ +0.94%   │ compress/zlib                                                 │ 8.7 kB   │ 8.8 kB   │ +82 B   │
│ +22.19%  │ github.com/opencontainers/runtime-spec                        │ 365 B    │ 446 B    │ +81 B   │
│ +20.94%  │ github.com/opencontainers/image-spec                          │ 363 B    │ 439 B    │ +76 B   │
│ +1.01%   │ container/list                                                │ 7.5 kB   │ 7.6 kB   │ +76 B   │
│ +8.06%   │ github.com/nxadm/tail                                         │ 931 B    │ 1.0 kB   │ +75 B   │
│ +0.81%   │ github.com/gin-contrib/sse                                    │ 9.3 kB   │ 9.4 kB   │ +75 B   │
│ +0.74%   │ github.com/docker/docker-credential-helpers                   │ 7.3 kB   │ 7.3 kB   │ +54 B   │
│ +0.28%   │ github.com/pkg/errors                                         │ 18 kB    │ 18 kB    │ +50 B   │
│ +0.13%   │ github.com/blang/semver/v4                                    │ 36 kB    │ 36 kB    │ +45 B   │
│ +0.04%   │ github.com/emicklei/go-restful/v3                             │ 118 kB   │ 118 kB   │ +44 B   │
│ +0.39%   │ github.com/moby/sys/mountinfo                                 │ 11 kB    │ 11 kB    │ +43 B   │
│ +0.04%   │ fmt                                                           │ 98 kB    │ 98 kB    │ +40 B   │
│ +3.88%   │ gopkg.in/evanphx/json-patch.v4                                │ 1.0 kB   │ 1.1 kB   │ +40 B   │
│ +0.36%   │ expvar                                                        │ 10 kB    │ 10 kB    │ +37 B   │
│ +0.14%   │ github.com/sylabs/sif/v2                                      │ 22 kB    │ 22 kB    │ +31 B   │
│ +0.35%   │ github.com/mattn/go-runewidth                                 │ 6.8 kB   │ 6.9 kB   │ +24 B   │
│ +0.39%   │ github.com/munnerz/goautoneg                                  │ 6.2 kB   │ 6.2 kB   │ +24 B   │
│ +0.66%   │ golang.org/x/term                                             │ 3.5 kB   │ 3.5 kB   │ +23 B   │
│ +0.10%   │ dario.cat/mergo                                               │ 23 kB    │ 23 kB    │ +22 B   │
│ +5.28%   │ github.com/opencontainers/runc                                │ 398 B    │ 419 B    │ +21 B   │
│ +0.82%   │ vendor/golang.org/x/text/secure/bidirule                      │ 2.1 kB   │ 2.1 kB   │ +17 B   │
│ +0.86%   │ internal/runtime/exithook                                     │ 1.9 kB   │ 1.9 kB   │ +16 B   │
│ +4.01%   │ github.com/acarl005/stripansi                                 │ 349 B    │ 363 B    │ +14 B   │
│ +0.31%   │ text/scanner                                                  │ 4.6 kB   │ 4.6 kB   │ +14 B   │
│ +0.62%   │ github.com/mattn/go-sqlite3                                   │ 2.1 kB   │ 2.1 kB   │ +13 B   │
│ +0.53%   │ container/heap                                                │ 2.3 kB   │ 2.3 kB   │ +12 B   │
│ +0.16%   │ internal/chacha8rand                                          │ 4.4 kB   │ 4.4 kB   │ +7 B    │
│ +3.12%   │ maps                                                          │ 224 B    │ 231 B    │ +7 B    │
│ +0.38%   │ internal/testlog                                              │ 1.8 kB   │ 1.8 kB   │ +7 B    │
│ +0.01%   │ vendor/golang.org/x/crypto/chacha20poly1305                   │ 70 kB    │ 70 kB    │ +5 B    │
│ +1.07%   │ github.com/go-openapi/jsonreference                           │ 375 B    │ 379 B    │ +4 B    │
│ +0.11%   │ github.com/docker/go-units                                    │ 3.8 kB   │ 3.8 kB   │ +4 B    │
│ +0.50%   │ github.com/containers/buildah                                 │ 598 B    │ 601 B    │ +3 B    │
│ +0.04%   │ internal/singleflight                                         │ 4.5 kB   │ 4.5 kB   │ +2 B    │
│ -0.02%   │ internal/bytealg                                              │ 6.3 kB   │ 6.3 kB   │ -1 B    │
│ -0.01%   │ encoding/csv                                                  │ 12 kB    │ 12 kB    │ -1 B    │
│ -0.52%   │ github.com/containers/psgo                                    │ 194 B    │ 193 B    │ -1 B    │
│ -0.28%   │ github.com/go-playground/locales                              │ 1.1 kB   │ 1.1 kB   │ -3 B    │
│ -0.04%   │ github.com/go-openapi/swag                                    │ 10 kB    │ 10 kB    │ -4 B    │
│ -0.14%   │ vendor/golang.org/x/crypto/internal/poly1305                  │ 2.8 kB   │ 2.8 kB   │ -4 B    │
│ -0.03%   │ vendor/golang.org/x/net/http/httpproxy                        │ 12 kB    │ 12 kB    │ -4 B    │
│ -0.53%   │ github.com/mailru/easyjson                                    │ 1.3 kB   │ 1.3 kB   │ -7 B    │
│ -0.36%   │ golang.org/x/sync                                             │ 2.2 kB   │ 2.2 kB   │ -8 B    │
│ -1.50%   │ github.com/pkg/sftp                                           │ 533 B    │ 525 B    │ -8 B    │
│ -0.16%   │ github.com/moby/sys/user                                      │ 5.6 kB   │ 5.6 kB   │ -9 B    │
│ -3.88%   │ github.com/fsnotify/fsnotify                                  │ 309 B    │ 297 B    │ -12 B   │
│ -0.03%   │ github.com/kevinburke/ssh_config                              │ 64 kB    │ 64 kB    │ -20 B   │
│ -0.52%   │ google.golang.org/genproto/googleapis/rpc                     │ 4.2 kB   │ 4.2 kB   │ -22 B   │
│ -0.25%   │ github.com/subosito/gotenv                                    │ 8.8 kB   │ 8.8 kB   │ -22 B   │
│ -2.79%   │ github.com/sigstore/sigstore                                  │ 931 B    │ 905 B    │ -26 B   │
│ -2.03%   │ internal/lazyregexp                                           │ 1.4 kB   │ 1.4 kB   │ -28 B   │
│ -0.27%   │ embed                                                         │ 11 kB    │ 11 kB    │ -30 B   │
│ -0.69%   │ encoding/hex                                                  │ 4.8 kB   │ 4.7 kB   │ -33 B   │
│ -0.68%   │ internal/filepathlite                                         │ 5.4 kB   │ 5.4 kB   │ -37 B   │
│ -2.20%   │ github.com/titanous/rocacheck                                 │ 1.7 kB   │ 1.7 kB   │ -38 B   │
│ -0.51%   │ vendor/golang.org/x/crypto/chacha20                           │ 7.5 kB   │ 7.4 kB   │ -38 B   │
│ -5.66%   │ internal/itoa                                                 │ 777 B    │ 733 B    │ -44 B   │
│ -1.24%   │ vendor/golang.org/x/net/http/httpguts                         │ 4.2 kB   │ 4.1 kB   │ -52 B   │
│ -0.32%   │ golang.org/x/time                                             │ 17 kB    │ 17 kB    │ -53 B   │
│ -0.55%   │ text/tabwriter                                                │ 13 kB    │ 13 kB    │ -72 B   │
│ -0.21%   │ github.com/opencontainers/selinux                             │ 34 kB    │ 34 kB    │ -72 B   │
│ -0.92%   │ internal/fmtsort                                              │ 7.9 kB   │ 7.8 kB   │ -73 B   │
│ -0.26%   │ github.com/golang/protobuf                                    │ 33 kB    │ 33 kB    │ -86 B   │
│ -0.16%   │ github.com/leodido/go-urn                                     │ 56 kB    │ 56 kB    │ -88 B   │
│ -0.32%   │ sort                                                          │ 29 kB    │ 29 kB    │ -93 B   │
│ -0.22%   │ flag                                                          │ 42 kB    │ 42 kB    │ -93 B   │
│ -0.46%   │ github.com/google/uuid                                        │ 22 kB    │ 22 kB    │ -101 B  │
│ -0.24%   │ vendor/golang.org/x/text/unicode/norm                         │ 45 kB    │ 45 kB    │ -109 B  │
│ -0.16%   │ github.com/sirupsen/logrus                                    │ 82 kB    │ 82 kB    │ -133 B  │
│ -27.17%  │ github.com/go-openapi/jsonpointer                             │ 530 B    │ 386 B    │ -144 B  │
│ -0.41%   │ encoding/binary                                               │ 41 kB    │ 41 kB    │ -170 B  │
│ -0.62%   │ vendor/golang.org/x/net/http2/hpack                           │ 32 kB    │ 32 kB    │ -198 B  │
│ -0.39%   │ compress/flate                                                │ 65 kB    │ 65 kB    │ -252 B  │
│ -5.77%   │ internal/sysinfo                                              │ 4.4 kB   │ 4.2 kB   │ -256 B  │
│ -7.54%   │ github.com/moby/sys/userns                                    │ 3.7 kB   │ 3.4 kB   │ -279 B  │
│ -0.24%   │ github.com/opencontainers/cgroups                             │ 122 kB   │ 121 kB   │ -290 B  │
│ -0.06%   │ github.com/klauspost/compress                                 │ 490 kB   │ 490 kB   │ -300 B  │
│ -0.86%   │ sigs.k8s.io/randfill                                          │ 35 kB    │ 35 kB    │ -304 B  │
│ -0.11%   │ go.opentelemetry.io/otel                                      │ 336 kB   │ 335 kB   │ -384 B  │
│ -0.81%   │ encoding/asn1                                                 │ 69 kB    │ 69 kB    │ -557 B  │
│ -1.08%   │ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp │ 70 kB    │ 69 kB    │ -753 B  │
│ -8.19%   │ github.com/tniswong/go.rfcx                                   │ 9.2 kB   │ 8.5 kB   │ -756 B  │
│ -3.96%   │ github.com/moby/sys/capability                                │ 19 kB    │ 19 kB    │ -765 B  │
│ -13.31%  │ errors                                                        │ 6.3 kB   │ 5.5 kB   │ -841 B  │
│ -0.82%   │ k8s.io/klog/v2                                                │ 114 kB   │ 113 kB   │ -934 B  │
│ -1.33%   │ mime                                                          │ 77 kB    │ 76 kB    │ -1.0 kB │
│ -0.81%   │ html                                                          │ 140 kB   │ 139 kB   │ -1.1 kB │
│ -0.65%   │ github.com/pelletier/go-toml/v2                               │ 207 kB   │ 206 kB   │ -1.3 kB │
│ -57.18%  │ testing                                                       │ 2.7 kB   │ 1.1 kB   │ -1.5 kB │
│ -1.97%   │ github.com/containers/common                                  │ 79 kB    │ 77 kB    │ -1.6 kB │
│ -0.42%   │ github.com/gogo/protobuf                                      │ 500 kB   │ 498 kB   │ -2.1 kB │
│ -43.20%  │ encoding/pem                                                  │ 8.4 kB   │ 4.8 kB   │ -3.6 kB │
│ -100%    │ github.com/syndtr/gocapability                                │ 3.8 kB   │          │ -3.8 kB │
│ -0.35%   │ k8s.io/apimachinery                                           │ 1.7 MB   │ 1.7 MB   │ -6.0 kB │
│ -2.28%   │ gopkg.in/yaml.v3                                              │ 299 kB   │ 293 kB   │ -6.8 kB │
│ -0.63%   │ crypto                                                        │ 1.7 MB   │ 1.7 MB   │ -11 kB  │
│ -4.99%   │ reflect                                                       │ 318 kB   │ 302 kB   │ -16 kB  │
│ -99.18%  │ main                                                          │ 24 kB    │ 199 B    │ -24 kB  │
│ -5.86%   │ github.com/docker/docker                                      │ 417 kB   │ 392 kB   │ -24 kB  │
│ -42.68%  │ internal/sync                                                 │ 100 kB   │ 57 kB    │ -43 kB  │
│ -100%    │ sigs.k8s.io/structured-merge-diff/v4                          │ 258 kB   │          │ -258 kB │
│ -91.47%  │ sigs.k8s.io/yaml                                              │ 285 kB   │ 24 kB    │ -261 kB │
│ -74.99%  │ github.com/modern-go/reflect2                                 │ 545 kB   │ 136 kB   │ -408 kB │
├──────────┼───────────────────────────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ +9.58%   │ .rodata                                                       │ 11 MB    │ 12 MB    │ +1.1 MB │
│ +2.26%   │ .noptrdata                                                    │ 900 kB   │ 920 kB   │ +20 kB  │
│ +6.40%   │ .data                                                         │ 248 kB   │ 264 kB   │ +16 kB  │
│ +11.40%  │ .typelink                                                     │ 104 kB   │ 115 kB   │ +12 kB  │
│ +7.09%   │ .itablink                                                     │ 35 kB    │ 37 kB    │ +2.5 kB │
│ +6.16%   │ .go.buildinfo                                                 │ 14 kB    │ 15 kB    │ +864 B  │
├──────────┼───────────────────────────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ +7.46%   │ sablier_v1.10.1_linux-amd64                                   │ 64 MB    │ 69 MB    │ +4.8 MB │
│          │ sablier_draft_linux-amd64                                     │          │          │         │
└──────────┴───────────────────────────────────────────────────────────────┴──────────┴──────────┴─────────┘

@acouvreur acouvreur marked this pull request as draft November 27, 2025 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation provider Issue related to a provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants