Skip to content

Register ghcr registry provider alias#614

Merged
intel352 merged 1 commit into
mainfrom
codex/ghcr-registry-alias
May 10, 2026
Merged

Register ghcr registry provider alias#614
intel352 merged 1 commit into
mainfrom
codex/ghcr-registry-alias

Conversation

@intel352

Copy link
Copy Markdown
Contributor

Summary

  • register GHCR container registry provider under both github and validated ghcr type names
  • add coverage for wfctl registry login with ci.registries[].type: ghcr

Verification

  • GOWORK=off go test ./plugins/registry-github ./cmd/wfctl
  • GOWORK=off go test ./...

Review

  • antagonistic/security pass: keeps type: github compatibility while making the schema-accepted type: ghcr usable by wfctl; no credential handling behavior changed.

Copilot AI review requested due to automatic review settings May 10, 2026 10:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Registers the GitHub Container Registry (GHCR) provider under both github (back-compat) and ghcr (schema-validated) so wfctl registry login can use ci.registries[].type: ghcr, and adds a regression test for that alias.

Changes:

  • Register the GHCR registry provider under both github and ghcr provider names.
  • Update the GHCR provider to support a configurable provider name.
  • Add CLI test coverage for wfctl registry login using type: ghcr.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
plugins/registry-github/plugin.go Registers GHCR provider under both github and ghcr via name-aware provider instances.
cmd/wfctl/registry_login_test.go Adds a test ensuring runRegistryLogin works with ci.registries[].type: ghcr.

Comment on lines 16 to 19
func init() {
registry.Register(New())
registry.Register(&GHCRProvider{name: "github"})
registry.Register(&GHCRProvider{name: "ghcr"})
}
@github-actions

Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:262: parsing iteration count: invalid syntax
baseline-bench.txt:350729: parsing iteration count: invalid syntax
baseline-bench.txt:690417: parsing iteration count: invalid syntax
baseline-bench.txt:981937: parsing iteration count: invalid syntax
baseline-bench.txt:1307177: parsing iteration count: invalid syntax
baseline-bench.txt:1610397: parsing iteration count: invalid syntax
benchmark-results.txt:262: parsing iteration count: invalid syntax
benchmark-results.txt:323441: parsing iteration count: invalid syntax
benchmark-results.txt:670689: parsing iteration count: invalid syntax
benchmark-results.txt:955357: parsing iteration count: invalid syntax
benchmark-results.txt:1258703: parsing iteration count: invalid syntax
benchmark-results.txt:1574109: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ baseline-bench.txt │
                            │       sec/op       │
InterpreterCreation-4               6.896m ± 64%
ComponentLoad-4                     3.583m ±  1%
ComponentExecute-4                  1.907µ ±  0%
PoolContention/workers-1-4          1.079µ ±  3%
PoolContention/workers-2-4          1.074µ ±  5%
PoolContention/workers-4-4          1.076µ ±  2%
PoolContention/workers-8-4          1.078µ ±  1%
PoolContention/workers-16-4         1.077µ ±  1%
ComponentLifecycle-4                3.578m ±  0%
SourceValidation-4                  2.289µ ±  1%
RegistryConcurrent-4                777.2n ±  3%
LoaderLoadFromString-4              3.609m ±  0%
geomean                             18.46µ

                            │ baseline-bench.txt │
                            │        B/op        │
InterpreterCreation-4               2.027Mi ± 0%
ComponentLoad-4                     2.180Mi ± 0%
ComponentExecute-4                  1.203Ki ± 0%
PoolContention/workers-1-4          1.203Ki ± 0%
PoolContention/workers-2-4          1.203Ki ± 0%
PoolContention/workers-4-4          1.203Ki ± 0%
PoolContention/workers-8-4          1.203Ki ± 0%
PoolContention/workers-16-4         1.203Ki ± 0%
ComponentLifecycle-4                2.183Mi ± 0%
SourceValidation-4                  1.984Ki ± 0%
RegistryConcurrent-4                1.133Ki ± 0%
LoaderLoadFromString-4              2.182Mi ± 0%
geomean                             15.25Ki

                            │ baseline-bench.txt │
                            │     allocs/op      │
InterpreterCreation-4                15.68k ± 0%
ComponentLoad-4                      18.02k ± 0%
ComponentExecute-4                    25.00 ± 0%
PoolContention/workers-1-4            25.00 ± 0%
PoolContention/workers-2-4            25.00 ± 0%
PoolContention/workers-4-4            25.00 ± 0%
PoolContention/workers-8-4            25.00 ± 0%
PoolContention/workers-16-4           25.00 ± 0%
ComponentLifecycle-4                 18.07k ± 0%
SourceValidation-4                    32.00 ± 0%
RegistryConcurrent-4                  2.000 ± 0%
LoaderLoadFromString-4               18.06k ± 0%
geomean                               183.3

cpu: AMD EPYC 9V74 80-Core Processor                
                            │ benchmark-results.txt │
                            │        sec/op         │
InterpreterCreation-4                 3.015m ± 234%
ComponentLoad-4                       3.497m ±  16%
ComponentExecute-4                    1.842µ ±   2%
PoolContention/workers-1-4            1.020µ ±   1%
PoolContention/workers-2-4            1.014µ ±   4%
PoolContention/workers-4-4            1.015µ ±   2%
PoolContention/workers-8-4            1.016µ ±   1%
PoolContention/workers-16-4           1.024µ ±   2%
ComponentLifecycle-4                  3.533m ±   1%
SourceValidation-4                    2.129µ ±   2%
RegistryConcurrent-4                  752.0n ±   4%
LoaderLoadFromString-4                3.643m ±   4%
geomean                               16.59µ

                            │ benchmark-results.txt │
                            │         B/op          │
InterpreterCreation-4                  2.027Mi ± 0%
ComponentLoad-4                        2.180Mi ± 0%
ComponentExecute-4                     1.203Ki ± 0%
PoolContention/workers-1-4             1.203Ki ± 0%
PoolContention/workers-2-4             1.203Ki ± 0%
PoolContention/workers-4-4             1.203Ki ± 0%
PoolContention/workers-8-4             1.203Ki ± 0%
PoolContention/workers-16-4            1.203Ki ± 0%
ComponentLifecycle-4                   2.183Mi ± 0%
SourceValidation-4                     1.984Ki ± 0%
RegistryConcurrent-4                   1.133Ki ± 0%
LoaderLoadFromString-4                 2.182Mi ± 0%
geomean                                15.25Ki

                            │ benchmark-results.txt │
                            │       allocs/op       │
InterpreterCreation-4                   15.68k ± 0%
ComponentLoad-4                         18.02k ± 0%
ComponentExecute-4                       25.00 ± 0%
PoolContention/workers-1-4               25.00 ± 0%
PoolContention/workers-2-4               25.00 ± 0%
PoolContention/workers-4-4               25.00 ± 0%
PoolContention/workers-8-4               25.00 ± 0%
PoolContention/workers-16-4              25.00 ± 0%
ComponentLifecycle-4                    18.07k ± 0%
SourceValidation-4                       32.00 ± 0%
RegistryConcurrent-4                     2.000 ± 0%
LoaderLoadFromString-4                  18.06k ± 0%
geomean                                  183.3

pkg: github.com/GoCodeAlone/workflow/middleware
cpu: AMD EPYC 7763 64-Core Processor                
                                  │ baseline-bench.txt │
                                  │       sec/op       │
CircuitBreakerDetection-4                  284.6n ± 5%
CircuitBreakerExecution_Success-4          21.53n ± 0%
CircuitBreakerExecution_Failure-4          66.38n ± 1%
geomean                                    74.09n

                                  │ baseline-bench.txt │
                                  │        B/op        │
CircuitBreakerDetection-4                 144.0 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │
                                  │     allocs/op      │
CircuitBreakerDetection-4                 1.000 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                  │ benchmark-results.txt │
                                  │        sec/op         │
CircuitBreakerDetection-4                     301.1n ± 2%
CircuitBreakerExecution_Success-4             22.66n ± 0%
CircuitBreakerExecution_Failure-4             70.96n ± 1%
geomean                                       78.53n

                                  │ benchmark-results.txt │
                                  │         B/op          │
CircuitBreakerDetection-4                    144.0 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

                                  │ benchmark-results.txt │
                                  │       allocs/op       │
CircuitBreakerDetection-4                    1.000 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
cpu: AMD EPYC 7763 64-Core Processor                
                                 │ baseline-bench.txt │
                                 │       sec/op       │
JQTransform_Simple-4                     873.9n ± 25%
JQTransform_ObjectConstruction-4         1.457µ ±  1%
JQTransform_ArraySelect-4                3.288µ ±  1%
JQTransform_Complex-4                    37.64µ ±  0%
JQTransform_Throughput-4                 1.769µ ±  1%
SSEPublishDelivery-4                     63.40n ±  0%
geomean                                  1.614µ

                                 │ baseline-bench.txt │
                                 │        B/op        │
JQTransform_Simple-4                   1.273Ki ± 0%
JQTransform_ObjectConstruction-4       1.773Ki ± 0%
JQTransform_ArraySelect-4              2.625Ki ± 0%
JQTransform_Complex-4                  16.22Ki ± 0%
JQTransform_Throughput-4               1.984Ki ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │
                                 │     allocs/op      │
JQTransform_Simple-4                     10.00 ± 0%
JQTransform_ObjectConstruction-4         15.00 ± 0%
JQTransform_ArraySelect-4                30.00 ± 0%
JQTransform_Complex-4                    324.0 ± 0%
JQTransform_Throughput-4                 17.00 ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                 │ benchmark-results.txt │
                                 │        sec/op         │
JQTransform_Simple-4                        835.3n ± 29%
JQTransform_ObjectConstruction-4            1.434µ ±  2%
JQTransform_ArraySelect-4                   3.426µ ±  2%
JQTransform_Complex-4                       41.57µ ±  2%
JQTransform_Throughput-4                    1.726µ ±  1%
SSEPublishDelivery-4                        64.89n ±  1%
geomean                                     1.635µ

                                 │ benchmark-results.txt │
                                 │         B/op          │
JQTransform_Simple-4                      1.273Ki ± 0%
JQTransform_ObjectConstruction-4          1.773Ki ± 0%
JQTransform_ArraySelect-4                 2.625Ki ± 0%
JQTransform_Complex-4                     16.22Ki ± 0%
JQTransform_Throughput-4                  1.984Ki ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                 │ benchmark-results.txt │
                                 │       allocs/op       │
JQTransform_Simple-4                        10.00 ± 0%
JQTransform_ObjectConstruction-4            15.00 ± 0%
JQTransform_ArraySelect-4                   30.00 ± 0%
JQTransform_Complex-4                       324.0 ± 0%
JQTransform_Throughput-4                    17.00 ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ baseline-bench.txt │
                                    │       sec/op       │
SchemaValidation_Simple-4                   1.109µ ± 10%
SchemaValidation_AllFields-4                1.636µ ±  7%
SchemaValidation_FormatValidation-4         1.579µ ±  2%
SchemaValidation_ManySchemas-4              1.812µ ±  4%
geomean                                     1.509µ

                                    │ baseline-bench.txt │
                                    │        B/op        │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │
                                    │     allocs/op      │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                    │ benchmark-results.txt │
                                    │        sec/op         │
SchemaValidation_Simple-4                       1.075µ ± 2%
SchemaValidation_AllFields-4                    1.625µ ± 7%
SchemaValidation_FormatValidation-4             1.574µ ± 3%
SchemaValidation_ManySchemas-4                  1.591µ ± 2%
geomean                                         1.446µ

                                    │ benchmark-results.txt │
                                    │         B/op          │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

                                    │ benchmark-results.txt │
                                    │       allocs/op       │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
cpu: AMD EPYC 7763 64-Core Processor                
                                   │ baseline-bench.txt │
                                   │       sec/op       │
EventStoreAppend_InMemory-4                1.177µ ± 26%
EventStoreAppend_SQLite-4                  1.292m ±  6%
GetTimeline_InMemory/events-10-4           13.58µ ±  3%
GetTimeline_InMemory/events-50-4           75.57µ ± 21%
GetTimeline_InMemory/events-100-4          120.9µ ±  0%
GetTimeline_InMemory/events-500-4          623.8µ ±  1%
GetTimeline_InMemory/events-1000-4         1.275m ±  1%
GetTimeline_SQLite/events-10-4             103.4µ ±  1%
GetTimeline_SQLite/events-50-4             242.6µ ±  2%
GetTimeline_SQLite/events-100-4            414.0µ ±  1%
GetTimeline_SQLite/events-500-4            1.760m ±  1%
GetTimeline_SQLite/events-1000-4           3.424m ±  0%
geomean                                    214.3µ

                                   │ baseline-bench.txt │
                                   │        B/op        │
EventStoreAppend_InMemory-4                 780.0 ± 11%
EventStoreAppend_SQLite-4                 1.981Ki ±  3%
GetTimeline_InMemory/events-10-4          7.953Ki ±  0%
GetTimeline_InMemory/events-50-4          46.62Ki ±  0%
GetTimeline_InMemory/events-100-4         94.48Ki ±  0%
GetTimeline_InMemory/events-500-4         472.8Ki ±  0%
GetTimeline_InMemory/events-1000-4        944.3Ki ±  0%
GetTimeline_SQLite/events-10-4            16.74Ki ±  0%
GetTimeline_SQLite/events-50-4            87.14Ki ±  0%
GetTimeline_SQLite/events-100-4           175.4Ki ±  0%
GetTimeline_SQLite/events-500-4           846.1Ki ±  0%
GetTimeline_SQLite/events-1000-4          1.639Mi ±  0%
geomean                                   67.26Ki

                                   │ baseline-bench.txt │
                                   │     allocs/op      │
EventStoreAppend_InMemory-4                  7.000 ± 0%
EventStoreAppend_SQLite-4                    53.00 ± 0%
GetTimeline_InMemory/events-10-4             125.0 ± 0%
GetTimeline_InMemory/events-50-4             653.0 ± 0%
GetTimeline_InMemory/events-100-4           1.306k ± 0%
GetTimeline_InMemory/events-500-4           6.514k ± 0%
GetTimeline_InMemory/events-1000-4          13.02k ± 0%
GetTimeline_SQLite/events-10-4               382.0 ± 0%
GetTimeline_SQLite/events-50-4              1.852k ± 0%
GetTimeline_SQLite/events-100-4             3.681k ± 0%
GetTimeline_SQLite/events-500-4             18.54k ± 0%
GetTimeline_SQLite/events-1000-4            37.29k ± 0%
geomean                                     1.162k

cpu: AMD EPYC 9V74 80-Core Processor                
                                   │ benchmark-results.txt │
                                   │        sec/op         │
EventStoreAppend_InMemory-4                   1.098µ ± 17%
EventStoreAppend_SQLite-4                     990.3µ ±  2%
GetTimeline_InMemory/events-10-4              13.23µ ±  2%
GetTimeline_InMemory/events-50-4              74.78µ ± 21%
GetTimeline_InMemory/events-100-4             119.9µ ±  1%
GetTimeline_InMemory/events-500-4             615.6µ ±  1%
GetTimeline_InMemory/events-1000-4            1.247m ±  1%
GetTimeline_SQLite/events-10-4                89.46µ ±  1%
GetTimeline_SQLite/events-50-4                236.8µ ±  0%
GetTimeline_SQLite/events-100-4               415.4µ ±  1%
GetTimeline_SQLite/events-500-4               1.763m ±  1%
GetTimeline_SQLite/events-1000-4              3.440m ±  1%
geomean                                       204.3µ

                                   │ benchmark-results.txt │
                                   │         B/op          │
EventStoreAppend_InMemory-4                     774.5 ± 6%
EventStoreAppend_SQLite-4                     1.985Ki ± 2%
GetTimeline_InMemory/events-10-4              7.953Ki ± 0%
GetTimeline_InMemory/events-50-4              46.62Ki ± 0%
GetTimeline_InMemory/events-100-4             94.48Ki ± 0%
GetTimeline_InMemory/events-500-4             472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4            944.3Ki ± 0%
GetTimeline_SQLite/events-10-4                16.74Ki ± 0%
GetTimeline_SQLite/events-50-4                87.14Ki ± 0%
GetTimeline_SQLite/events-100-4               175.4Ki ± 0%
GetTimeline_SQLite/events-500-4               846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4              1.639Mi ± 0%
geomean                                       67.23Ki

                                   │ benchmark-results.txt │
                                   │       allocs/op       │
EventStoreAppend_InMemory-4                     7.000 ± 0%
EventStoreAppend_SQLite-4                       53.00 ± 0%
GetTimeline_InMemory/events-10-4                125.0 ± 0%
GetTimeline_InMemory/events-50-4                653.0 ± 0%
GetTimeline_InMemory/events-100-4              1.306k ± 0%
GetTimeline_InMemory/events-500-4              6.514k ± 0%
GetTimeline_InMemory/events-1000-4             13.02k ± 0%
GetTimeline_SQLite/events-10-4                  382.0 ± 0%
GetTimeline_SQLite/events-50-4                 1.852k ± 0%
GetTimeline_SQLite/events-100-4                3.681k ± 0%
GetTimeline_SQLite/events-500-4                18.54k ± 0%
GetTimeline_SQLite/events-1000-4               37.29k ± 0%
geomean                                        1.162k

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

@intel352 intel352 merged commit 0ef3b5d into main May 10, 2026
22 checks passed
@intel352 intel352 deleted the codex/ghcr-registry-alias branch May 10, 2026 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants