← Artifacts / artifacts / concepts
Репозитории
Artifacts хранит рабочие данные в репозиториях. Репозиторий представляет собой один изолированный Git-сервис с собственной историей, ссылками, URL-адресом удалённого репозитория, токенами и устойчивым состоянием.
Каждый репозиторий находится внутри одного пространства имён. Если пространство имён ещё не существует, Artifacts создаёт его при создании первого репозитория в нём.
Пространство имён объединяет связанные репозитории, а имя репозитория определяет конкретный репозиторий внутри этой группы.
Понять идентификацию репозитория
У репозитория есть три идентификатора:
- имя пространства имён
- имя репозитория
- ID репозитория, возвращаемый API
Пространство имён и имя репозитория образуют постоянный адрес, который вы используете в привязке Workers, REST API и Git-удалённом репозитории. Идентификатор репозитория пригодится, когда в ответах API или журналах нужен непрозрачный идентификатор.
Каждый репозиторий изолирован от остальных репозиториев. Токены, жизненный цикл, refs и мутации применяются только к этому репозиторию.
Понять API репозитория
Artifacts предоставляет доступ к одному и тому же репозиторию через три интерфейса:
| Интерфейс | Для чего это используется | Что возвращается |
|---|---|---|
| привязка Workers | Создание, получение списка, импорт, просмотр, форк, удаление и выпуск токенов из Worker | Метаданные репозитория, дескрипторы репозитория и результаты токенов, привязанных к репозиторию |
| REST API | Создание, получение списка, импорт, просмотр, форк, удаление и выпуск токенов из внешних систем | Ответы Cloudflare API с метаданными репозитория и результатами по токенам |
| Протокол Git | Clone, fetch, pull и push содержимого репозитория | Стандартное поведение Git по HTTPS |
Эти интерфейсы указывают на один и тот же репозиторий.
Например, вы можете создать репозиторий из привязка Workers или REST API, затем передайте возвращённое remote URL стандартному клиенту Git. Создавать отдельные репозитории для каждого интерфейса не нужно.
Понять, как связаны интерфейсы
Привязка Workers и REST API представляют собой интерфейсы уровня управления. Используйте их для управления репозиториями и токенами.
Протокол Git представляет собой интерфейс уровня данных. Используйте его для чтения и записи коммитов, деревьев и ссылок в рамках обычного процесса работы с Git.
Такое разделение приводит к распространённому шаблону:
- Используйте binding для Workers или REST API, чтобы создать репозиторий.
- Считайте репозиторий обратно
remoteURL. - Создайте токен, привязанный к репозиторию.
- Используйте
remoteи токен сgit clone,git fetch,git pull, илиgit push.
Понять область действия репозитория
Область действия репозитория имеет значение в двух случаях: при именовании и при доступе.
Имя внутри пространства имён
Имена репозиториев уникальны в пределах пространства имён, а не всего аккаунта. Короткое имя репозитория можно повторно использовать в разных пространствах имён, если это удобно для структуры ваших окружений или арендаторов.
Например, репозиторий с именем app может существовать одновременно в prod пространство имён и staging пространство имён.
Токен внутри репозитория
Токены Artifacts привязаны к конкретному репозиторию. Токен, выпущенный для одного репозитория, не даёт доступа к другому репозиторию, даже если оба репозитория находятся в одном пространстве имён.
Используйте read токены для clone, fetch и pull. Используйте write токены только когда клиенту нужно отправлять изменения.
Используйте репозитории как единицы работы
Artifacts работает наиболее эффективно, когда каждый репозиторий рассматривается как отдельная единица работы.
Используйте отдельный репозиторий для каждого агента, сессии, задачи пользователя, базового состояния или цели форка, если этим единицам нужна отдельная история, очистка и контроль доступа. Используйте пространства имен, чтобы группировать эти репозитории по окружению, тенанту или шарду.
Подробнее см. в Пространства имён, Как работает Artifacts, а также Рекомендации по использованию Artifacts.