diff --git a/README.md b/README.md index 07f86c8a0..c5560d009 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,22 @@ Developer teams, on the other hand, do not need to become security experts, the To learn more about the project motivation please look at [this blog post](https://docs.chainloop.dev/blog/introducing-chainloop) and see it in action in [this video](https://docs.chainloop.dev/blog/software-supply-chain-attestation-easy-way#see-it-in-action). +## Getting started + +See the getting started [guide](https://docs.chainloop.dev/getting-started/installation) for detailed information on downloading and configuring the Chainloop Command Line Interface (CLI) + +In a nutshell: + +```bash +$ curl -sfL https://docs.chainloop.dev/install.sh | bash -s + +$ chainloop auth login +``` + +> NOTE: You can also build and run Chainloop [from source](./CONTRIBUTING.md) + +> Once you've been logged in, follow [these instructions](https://docs.chainloop.dev/getting-started/setup) to learn how to set up your account. + ## How does it work? ### Compliant Single Source of Truth @@ -43,7 +59,7 @@ Operators can set up third-party integrations such as [Dependency-Track](https:/ Ops can mix and match with different integrations while **not requiring developers to make any changes on their side**! -## Role-tailored experience +### Role-tailored experience Chainloop makes sure to clearly define the responsibilities, experience and functional scope of the **two main personas, Security/Operation (SecOps) and Development/Application teams**. @@ -60,7 +76,8 @@ To learn more, please visit the Chainloop project's documentation website, https Chainloop is developed in the open and is constantly improved by our users, contributors and maintainers. Got a question, comment, or idea? Please don't hesitate to reach out via: - GitHub [Issues](https://github.com/chainloop-dev/chainloop/issues) -- [Discord Community Server](https://discord.gg/f7atkaZact) +- Discord [Community Server](https://discord.gg/f7atkaZact) +- Youtube [Channel](https://www.youtube.com/channel/UCISrWrPyR_AFjIQYmxAyKdg) ## Contributing diff --git a/internal/blobmanager/oci/backend.go b/internal/blobmanager/oci/backend.go index c058aadab..fdcecac75 100644 --- a/internal/blobmanager/oci/backend.go +++ b/internal/blobmanager/oci/backend.go @@ -61,7 +61,7 @@ func NewBackend(repository string, regOpts *RegistryOptions) (*Backend, error) { } // Exists check that the artifact is already present in the repository and it points to the -// same image digest, meaning it has not been repushed/replaced +// same image digest, meaning it has not been re-pushed/replaced // This method is very naive so signatures will be used in future releases func (b *Backend) Exists(ctx context.Context, digest string) (bool, error) { if digest == "" { @@ -74,7 +74,7 @@ func (b *Backend) Exists(ctx context.Context, digest string) (bool, error) { } // It's not trivial to catch if the error is a 404 (yeah I know...) so we will assume that - // any error means no and will be catched in the next stage when we try to upload the image + // any error means no and will be caught in the next stage when we try to upload the image image, err := remote.Image(ref, remote.WithAuthFromKeychain(b.keychain)) if err != nil { // Image is not there