···5050 ids:
5151 - credential-helper
5252 repository:
5353- # DID-based owner keeps this stable across Tangled handle renames.
5454- # Replace TAP_REPO_DID with the did:plc of the tap repo once created.
5555- owner: 'did:plc:TAP_REPO_DID'
5656- name: homebrew-tap
5353+ # Tap lives inside the main repo under Formula/. DID-based URL keeps
5454+ # this stable across any future Tangled handle/domain rename.
5555+ owner: 'did:plc:pddp4xt5lgnv2qsegbzzs4xg'
5656+ name: at-container-registry
5757 branch: main
5858 git:
5959- url: 'git@knot1.tangled.sh:did:plc:TAP_REPO_DID/homebrew-tap'
5959+ url: 'git@knot1.tangled.sh:did:plc:pddp4xt5lgnv2qsegbzzs4xg/at-container-registry'
6060 private_key: '{{ .Env.TAP_SSH_KEY }}'
6161 directory: Formula
6262 url_template: "https://tangled.org/evan.jarrett.net/at-container-registry/tags/v{{ .Version }}/download/{{ .ArtifactName }}"
+59
Formula/docker-credential-atcr.rb
···11+# typed: false
22+# frozen_string_literal: true
33+44+class DockerCredentialAtcr < Formula
55+ desc "Docker credential helper for ATCR (ATProto Container Registry)"
66+ homepage "https://atcr.io"
77+ version "0.1.2"
88+ license "MIT"
99+1010+ on_macos do
1111+ on_arm do
1212+ url "https://tangled.org/evan.jarrett.net/at-container-registry/tags/v#{version}/download/docker-credential-atcr_#{version}_Darwin_arm64.tar.gz"
1313+ sha256 "938f7de369c1a93f8275b91f238ae6ffca2f304f5bd236208b3398574c853b52"
1414+ end
1515+ on_intel do
1616+ url "https://tangled.org/evan.jarrett.net/at-container-registry/tags/v#{version}/download/docker-credential-atcr_#{version}_Darwin_x86_64.tar.gz"
1717+ sha256 "3ce955317f52b049ee6c6348c0f758d36a0ed4d52f60f96b20d68798b5830c88"
1818+ end
1919+ end
2020+2121+ on_linux do
2222+ on_arm do
2323+ url "https://tangled.org/evan.jarrett.net/at-container-registry/tags/v#{version}/download/docker-credential-atcr_#{version}_Linux_arm64.tar.gz"
2424+ sha256 "be951a136a79be39935ff57f561cfc8f714fa6abfa1b0f81f9ef383e37e6278f"
2525+ end
2626+ on_intel do
2727+ url "https://tangled.org/evan.jarrett.net/at-container-registry/tags/v#{version}/download/docker-credential-atcr_#{version}_Linux_x86_64.tar.gz"
2828+ sha256 "08965d9177ab993c229e20c1c3a9675caa20bae795c57b37eb9c72127360d4c7"
2929+ end
3030+ end
3131+3232+ def install
3333+ bin.install "docker-credential-atcr"
3434+ end
3535+3636+ test do
3737+ assert_match version.to_s, shell_output("#{bin}/docker-credential-atcr version 2>&1")
3838+ end
3939+4040+ def caveats
4141+ <<~EOS
4242+ To finish setup, run:
4343+ docker-credential-atcr configure-docker
4444+4545+ This writes the credential helper entry to ~/.docker/config.json. Or
4646+ add manually:
4747+ {
4848+ "credHelpers": {
4949+ "atcr.io": "atcr"
5050+ }
5151+ }
5252+5353+ Then push an image to trigger device authorization:
5454+ docker push atcr.io/<your-handle>/<image>:latest
5555+5656+ Credentials live in ~/.atcr/device.json (0600).
5757+ EOS
5858+ end
5959+end
+2-2
INSTALLATION.md
···4040### Using Homebrew (macOS and Linux)
41414242```bash
4343-# Add the ATCR tap (hosted on Tangled, so pass the URL explicitly).
4343+# Add the ATCR tap (the main repo itself serves as the tap).
4444# DID-based URL is stable across any future handle rename.
4545-brew tap atcr/tap https://tangled.org/did:plc:TAP_REPO_DID/homebrew-tap
4545+brew tap atcr/tap https://tangled.org/did:plc:pddp4xt5lgnv2qsegbzzs4xg/at-container-registry
46464747# Install the credential helper
4848brew install docker-credential-atcr