Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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**.

Expand All @@ -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

Expand Down
4 changes: 2 additions & 2 deletions internal/blobmanager/oci/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 == "" {
Expand All @@ -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
Expand Down