INTEGRITY Документация

Импорт репозиториев

Импортируйте существующий репозиторий, если у вас уже есть базовая версия за пределами Artifacts и вы хотите начать использовать её как репозиторий Artifacts.

Это хорошо подходит для:

Artifacts импортирует публичные удалённые репозитории по HTTPS через REST API или привязка Workers. После импорта у репозитория появляется обычный удалённый URL Artifacts, и его можно клонировать, форкать или выпускать для него токены с областью действия репозитория, как для любого другого репозитория.

Проверьте Пространства имён сначала, затем используйте одно и то же имя пространства имён на протяжении всего процесса импорта.

Импортировать публичный репозиторий по HTTPS

В этом примере публичный репозиторий GitHub импортируется в default пространство имён. Тот же процесс можно использовать и с другими публичными удалёнными репозиториями Git по HTTPS.

Используйте API-токен Cloudflare с Артефакты > Изменить.

В этом примере используется jq для извлечения возвращённых полей.

export ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
export ARTIFACTS_NAMESPACE="default"
export ARTIFACTS_REPO="workers-sdk-baseline"
export CLOUDFLARE_API_TOKEN="<YOUR_API_TOKEN>"
export ARTIFACTS_BASE_URL="https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/artifacts/namespaces/$ARTIFACTS_NAMESPACE"
IMPORT_RESPONSE=$(curl --silent --request POST "$ARTIFACTS_BASE_URL/repos/$ARTIFACTS_REPO/import" \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
     "url": "https://github.com/cloudflare/workers-sdk",
     "branch": "main",
     "depth": 100
   }')

if ! printf '%s' "$IMPORT_RESPONSE" | jq -e '.success == true' > /dev/null; then
  printf '%s\n' "$IMPORT_RESPONSE" | jq .
  exit 1
fi

export ARTIFACTS_REMOTE=$(printf '%s' "$IMPORT_RESPONSE" | jq -r '.result.remote')
export ARTIFACTS_TOKEN=$(printf '%s' "$IMPORT_RESPONSE" | jq -r '.result.token')

В ответе содержатся метаданные нового репозитория Artifacts, включая result.remote и result.token.

Если запрос завершается ошибкой, эта проверка выводит ответ API и завершает работу до экспорта пустых значений.

Токен кодирует срок действия непосредственно в ?expires= суффикс.

Обрабатывать result.token как секрет. Не выводите его в журналы и не сохраняйте в долгоживущем URL удалённого репозитория, если это не требуется для вашего рабочего процесса.

Импорт может всё ещё выполняться после того, как этот запрос вернёт ответ. Если последующие вызовы REST API возвращают 409 Conflict, повторите попытку через небольшую задержку.

Используйте импортированный репозиторий

После завершения импорта используйте репозиторий как любой другой репозиторий Artifacts.

Подробности об эндпоинте см. в REST API. Подробнее об аутентификации см. Аутентификация.