oras-project / oras-dotnet Goto Github PK
View Code? Open in Web Editor NEWORAS .NET library
Home Page: https://oras.land
License: Apache License 2.0
ORAS .NET library
Home Page: https://oras.land
License: Apache License 2.0
Reference: https://github.com/oras-project/oras-go/blob/main/target.go
Calling FetchReferenceAsync with a tag as a reference, e.g., registryhost.com/myrepository/test:latest
, erroneously throws a System.InvalidOperationException: 'The given header was not found.'
if the registry server fails to include the Docker-Content-Digest
in the response.
Per the OCI Distribution spec (link) this is a legacy header and is optional. Container services, such as AWS's Elastic Container Registry, do not supply this header and thus fail with the .NET version of the Oras library. NOTE: the Go version of this library functions correctly and does not exhibit this error.
The issue stems from an unhandled except in Oras.Remote.ManifestStore.GenerateDescriptor here. The call to GetValues
on line 642 will throw an exception of the specified header is cannot be found (reference). Additionally, the call to First
in the subsequence line will also throw an exception if serverHeaderDigest
is null.
A workaround is to change this call to used TryGetValues
instead and check for call prior to calling First
, as in the following:
With this change, the code executes in a manner consistent with the Go version of the Oras library.
Tasks:
References:
At least 2 approvals are needed from the 3 maintainers for tagging c2c560c as v0.2.0
.
The changes compared to v0.1.0
include:
See the full changelog for more details.
Please respond LGTM or REJECT (with reasoning).
Support the Copy function without options.
Reference: https://github.com/oras-project/oras-go/blob/main/copy.go
The registry client should be conforming distribution spec v1.0.1 and Docker V2 API.
API list: https://github.com/opencontainers/distribution-spec/blob/v1.0.0/spec.md#endpoints
Reference: https://github.com/oras-project/oras-go/blob/main/registry/remote/repository.go
Local registry for testing: https://docs.docker.com/registry/
We should add a workflow to automatically generate a local nuget package on release.
Like what we have in the oras-go
repository: https://github.com/oras-project/oras-go/blob/main/.github/workflows/build.yml
There should also be a local nuget package
We should use docfx to generate documentation and publish to GitHub page.
v0.16.0
ORAS has Python and Golang SDK that allow developers to build their own clients on top of one of the libraries. Similarly, developing a .NET SDK will enable .Net developers to use ORAS API and enhance the ORAS ecosystem.
This issue is open for the CNCF LFX Mentorship 2023 program. If you are interested in implementing this issue, please let us know.
Enable .Net developers to use ORAS API and enhance the ORAS ecosystem.
The current API documentation is for the main
branch.
It is better to have versioned API documentation and URL links.
Here's the roadmap of basic functionalities for oras-dotnet
to be involved for production use.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.