← Artifacts / artifacts / examples
Git klient
S repozitáři Artifacts můžete pracovat pomocí standardního Git klienta. Tento příklad popisuje klonování, ale stejný postup funguje i pro fetch, pull, push a jakoukoli jinou operaci Gitu.
K tomu potřebujete:
- Získejte vzdálenou adresu URL repozitáře z REST API
- Vytvořte krátkodobý token vázaný na tento repozitář
Jakmile máte vzdálenou adresu URL a token, můžete je použít ke spouštění příkazů Git proti repozitáři.
Tento příklad předpokládá, že repozitář již existuje a že máte Token Cloudflare API hodnotou Artefakty > Úprava.
Načtěte vzdálený repozitář a naklonujte ho
Nahraďte zástupné hodnoty svým ID účtu, tokenem API a názvem repozitáře. Skript načte vzdálenou adresu URL repozitáře z API, vytvoří token pouze pro čtení s platností jedna hodina a naklonuje repozitář do místního adresáře.
Příklad níže používá jq k extrakci polí z odpovědí JSON.
# Set your account details
export ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
export ARTIFACTS_NAMESPACE="default"
export ARTIFACTS_REPO="starter-repo"
export CLOUDFLARE_API_TOKEN="<YOUR_API_TOKEN>"
export ARTIFACTS_BASE_URL="https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/artifacts/namespaces/$ARTIFACTS_NAMESPACE"
# Fetch the repo's remote URL
REPO_JSON=$(curl --silent "$ARTIFACTS_BASE_URL/repos/$ARTIFACTS_REPO" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN")
ARTIFACTS_REMOTE=$(printf '%s' "$REPO_JSON" | jq -r '.result.remote')
# Mint a short-lived read token
TOKEN_JSON=$(curl --silent "$ARTIFACTS_BASE_URL/tokens" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data "{\"repo\":\"$ARTIFACTS_REPO\",\"scope\":\"read\",\"ttl\":3600}")
ARTIFACTS_TOKEN=$(printf '%s' "$TOKEN_JSON" | jq -r '.result.plaintext')
# Clone the repo
git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" clone "$ARTIFACTS_REMOTE" artifacts-cloneNyní máte standardní Git checkout v ./artifacts-clone.
Tento postup se hodí, když vyhledávání repozitářů nebo řízení přístupu zajišťuje jiný systém, ale váš lokální nástroj přesto očekává běžné vzdálené úložiště git.
Ověřování
Považujte ARTIFACTS_TOKEN jako tajný údaj. Nezahrnujte ho do protokolů a upřednostněte http.extraHeader před ukládáním přihlašovacích údajů do vzdálené URL adresy.
Pokud pro krátkodobý workflow potřebujete samostatnou adresu URL vzdáleného repozitáře, získejte token secret a autentizovanou vzdálenou adresu sestavte pouze pro tento příkaz:
ARTIFACTS_TOKEN_SECRET="${ARTIFACTS_TOKEN%%\?expires=*}"
ARTIFACTS_AUTH_REMOTE="https://x:${ARTIFACTS_TOKEN_SECRET}@${ARTIFACTS_REMOTE#https://}"
git clone "$ARTIFACTS_AUTH_REMOTE" artifacts-clone