oras-project / oras

OCI registry client - managing content like artifacts, images, packages
https://oras.land
Apache License 2.0
1.33k stars 161 forks source link

pushing with multiple tags will corrupt `--format xxx` output #1300

Closed qweeah closed 2 months ago

qweeah commented 3 months ago

What happened in your environment?

I want to 1) push an artifact to localhost:5000/test with tag v1.1 2) tag the pushed artifact with latest and v1

$ oras push localhost:5000/test:v1.1,v1,latest --format {{.Ref}} --no-tty 
Tagged latest
Tagged v1
localhost:5000/test@sha256:0e0e404fe40f2409b1964272434fbe3b9293f262fd62f90ab9df49d54579818e

The output contains both tagging log and digest reference of pushed artifact.

What did you expect to happen?

The output should only contain digest reference of pushed artifact.

$ oras push localhost:5000/test:v1.1,v1,latest --format {{.Ref}} --no-tty 
localhost:5000/test@sha256:0e0e404fe40f2409b1964272434fbe3b9293f262fd62f90ab9df49d54579818e

How can we reproduce it?

Run below command with oras v1.2.0-beta.1 registry running at port 5000:

oras push localhost:5000/test:v1.1,v1,latest --format {{.Ref}} --no-tty 

What is the version of your ORAS CLI?

v1.2.0-beta.1

What is your OS environment?

ubuntu 20.04

Are you willing to submit PRs to fix it?

sajayantony commented 3 months ago

This also appears when --no-tty is specified

❯ oras push localhost:5000/test:v1.1,v1,latest --format json  --no-tty
Tagged latest
Tagged v1
{
  "Ref": "localhost:5000/test@sha256:66155c4c560fde88581530eb81bd7e38ca8ceb9217b19931337a1526f8af24a3",
  "MediaType": "application/vnd.oci.image.manifest.v1+json",
  "Digest": "sha256:66155c4c560fde88581530eb81bd7e38ca8ceb9217b19931337a1526f8af24a3",
  "Size": 535,
  "Annotations": {
    "org.opencontainers.image.created": "2024-03-21T01:42:33Z"
  },
  "ArtifactType": "application/vnd.unknown.artifact.v1"
}
qweeah commented 3 months ago

@sajayantony Tagged xxx is not part of terminal output and is expected to appear even with --no-tty.