# shellcheck    shell=sh            disable=SC2039,3043

___x_cmd_dregistry_info(){
    # local ali_url="https://registry.cn-hangzhou.aliyuncs.com/v2"
    local repo_name="${1:?provide at least repo name}"
    local tag="${2:-"latest"}"
    ____x_cmd_docker_registry_token | (
        x jo env . token=.token
        local Authorization="\"Authorization:Bearer $token\""
        docker_header="$(x curl gencode "Accept: application/json" \
                                    "Accept: application/vnd.oci.image.index.v1+json" \
                                    "Accept: application/vnd.oci.image.manifest.v1+json" \
                                    "Accept: application/vnd.docker.distribution.manifest.v2+json" \
                                    "Accept: application/vnd.docker.distribution.manifest.list.v2+json" \
                                    "Accept: application/vnd.docker.distribution.manifest.v1+prettyjws")"
        dregistry:debug "x curl -s -X GET ${url}/${repo_name}/manifests/${tag} -H Authorization:Bearer ${token} ${docker_header}"
        eval x curl -s -X GET "${url}/${repo_name}/manifests/${tag}" -H "$Authorization" "$docker_header"
    )
}


___x_cmd_dregistry_download(){
    local repo_name="$1"
    local bin_sha="$2"
    local output="$3"

    ____x_cmd_docker_registry_token | (
        x jo env . token=.token
        dregistry:debug "curl -Lo $output.gzip -X GET ${url}/${repo_name}/blobs/$bin_sha -H Authorization: Bearer ${token}"
        curl -Lo "$output".gzip -X GET "${url}/${repo_name}/blobs/$bin_sha" -H "Authorization: Bearer ${token}"
    )
}

____x_cmd_docker_registry_token(){
    dregistry:debug "curl -s -X GET https://${token_endpoint}/token?service=${service}&scope=repository:${repo_name}:pull"
    curl -s -X GET "https://${token_endpoint}/token?service=${service}&scope=repository:${repo_name}:pull"
}
