# typed: false # frozen_string_literal: true class DockerCredentialAtcr < Formula desc "Docker credential helper for ATCR (ATProto Container Registry)" homepage "https://atcr.io" url "https://github.com/atcr-io/atcr/archive/refs/tags/v0.0.1.tar.gz" sha256 "REPLACE_WITH_TARBALL_SHA256" license "MIT" head "https://github.com/atcr-io/atcr.git", branch: "main" depends_on "go" => :build def install # Build the credential helper binary # Use ldflags to inject version information ldflags = %W[ -s -w -X main.version=#{version} -X main.commit=#{tap.user} -X main.date=#{time.iso8601} ] system "go", "build", *std_go_args(ldflags:, output: bin/"docker-credential-atcr"), "./cmd/credential-helper" end test do # Test that the binary exists and is executable assert_match version.to_s, shell_output("#{bin}/docker-credential-atcr version 2>&1") end def caveats <<~EOS To configure Docker to use ATCR credential helper, add the following to your ~/.docker/config.json: { "credHelpers": { "atcr.io": "atcr" } } Note: The credential helper name is "atcr" (Docker automatically prefixes with "docker-credential-" when looking for the binary). To authenticate with ATCR: docker push atcr.io//:latest This will open your browser to complete the OAuth device flow. Configuration is stored in: ~/.atcr/device.json EOS end end