Взаимосвязь ресурсов SourceCraft

Примечание

Сервис находится на стадии Preview. Для сервиса не действует соглашение об уровне обслуживания SLA, и его использование не тарифицируется.

SourceCraft — платформа, с помощью которой вы можете разрабатывать исходный код, управлять версиями, тестировать, собирать, развертывать и сопровождать программные продукты. Сервис представляет собой систему управления репозиториями кода для git с отслеживанием ошибок и пайплайном CI/CD.

Условия использования сервиса SourceCraft

В сервисе доступен публичный REST API.

Организации

Организация — это пространство пользователя в SourceCraft.

Организации не взаимодействуют друг с другом. Ресурсы одной организации не могут взаимодействовать с ресурсами другой организации.

По умолчанию новый участник организации не имеет доступа к репозиториям организации. Права доступа ему необходимо выдать явно: назначить роль непосредственно на репозиторий или целиком на организацию.

Каждой организации в SourceCraft соответствует организация в сервисе Yandex Identity Hub.

Для авторизации корпоративных аккаунтов в SourceCraft с помощью системы единого входа (Single Sign-On, SSO) вы можете использовать SAML-совместимые федерации удостоверений Yandex Cloud.

Репозитории

Репозиторий — это хранилище, в котором находится весь код проекта и связанная с ним информация. Репозиторий включает в себя:

  • исходный код — все файлы проекта;
  • историю изменений — лог коммитов;
  • ветки — независимые линии разработки;
  • теги — маркировка важных точек в истории проекта.

Репозиторий позволяет отслеживать развитие проекта, управлять разными ветками разработки и возвращаться к предыдущим версиям кода.

Чтобы контролировать процесс внесения изменений, обеспечивать ревью кода, соблюдать правильность именования и условия создания веток и тегов, а также защищать ветки от случайных коммитов или прямого пуша в SourceCraft, предусмотрены политики веток.

Подробнее см. на странице Создать репозиторий в SourceCraft.

В SourceCraft вы можете настроить приватность репозитория:

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

  • Публичный — доступ к просмотру репозитория будут иметь все пользователи интернета без аутентификации. Доступ к изменению репозитория будут иметь только приглашенные пользователи.

    Важно

    SourceCraft публично доступен для всех на стадии стадии Preview. Соответственно, просмотр публичных репозиториев доступен всем пользователям интернета без аутентификации.

В любой момент вы можете изменить тип доступа к репозиторию.

Репозитории в SourceCraft поддерживают спецификацию Git Large File Storage (LFS) для хранения больших файлов. Рекомендуем использовать LFS для размещения в репозитории объектов размером более 100 МБ.

Подробнее см. на странице Настроить поддержку Git Large File Storage (LFS) в репозиторий SourceCraft.

Импорт и зеркалирование репозитория из другой системы

Вы можете импортировать или зеркалировать в SourceCraft репозиторий с исходным кодом, размещенный в другой системе управления IT-проектами для git.

Зеркалирование позволяет автоматически синхронизировать содержимое определенных веток исходного репозитория и репозитория в SourceCraft.

Примечание

Сейчас поддерживаются только репозитории, которые размещены на GitHub.

В составе репозитория импортируются следующие компоненты:

  • История коммитов.
  • Все существующие ветки.
  • Открытые и закрытые пул-реквесты.
  • Задачи (issues).
  • Комментарии.
  • Теги.

Важно

Пул-реквесты, задачи, комментарии и теги переносятся только при первой синхронизации и далее не обновляются. Зеркалируются только определенные ветки исходного репозитория.

На зеркалируемые ветки в репозитории SourceCraft накладываются защитные правила политики веток. Их нельзя изменить в SourceCraft, они обновляются только при синхронизации с исходным репозиторием.

Если политика веток будет отключена, или пользователь с ролью Администратор репозитория обойдет ее, то при очередной синхронизации репозиториев история коммитов в SourceCraft будет переписана (force push).

Подробнее см. на странице Импортировать или зеркалировать репозиторий в SourceCraft.

Ответвления (forks)

Ответвления (forks) — это механизм, с помощью которого вы можете создавать собственную изолированную копию другого репозитория. Ответвление включает весь код, историю коммитов и основную ветку или все ветки и теги оригинального репозитория.

Основное предназначение ответвлений — упрощение процесса внесения изменений в чужие проекты, в том числе Open Source. Вы можете свободно экспериментировать, добавлять новые функции или исправлять ошибки, а затем предлагать свои изменения в основной проект с помощью пул-реквестов.

Ответвление содержит только объекты, которые были созданы при работе с ним, например коммиты и LFS-объекты, а данные репозитория-оригинала подключаются динамически.

При удалении репозитория-оригинала новым оригиналом становится ответвление, которое было создано первым. Все данные переносятся в это ответвление.

Поддерживаются последовательные цепочки ответвлений глубиной до 10 уровней.

Примечание

Для создания ответвления требуются права на чтение репозитория-оригинала. Если вы создаете ответвление от ответвления, то у вас должны быть права на чтение для всех репозиториев из цепочки. Подробнее см. на странице Управление доступом в SourceCraft.

CI/CD-процессы в пул-реквесте из ветки репозитория-ответвления в ветку репозитория-оригинала могут быть запущены только пользователем с ролью Владелец организации в организации, которой принадлежит репозиторий-оригинал. Автоматический запуск CI/CD в таких пул-реквестах отключен.

Подробнее см. на странице Работа с ответвлениями (forks) в SourceCraft.

Пул-реквесты

Пул-реквест — это предложение интегрировать изменения из одной ветки в другую, обычно в основную ветку проекта. Пул-реквест содержит описание изменений, сравнение веток, обсуждение для ревью, а также может интегрироваться с CI/CD-процессами. Это облегчает командную работу и позволяет проверять и утверждать изменения по заданным правилам перед тем, как они будут добавлены в основной проект.

Подробнее см. на странице Создать пул-реквест в репозитории SourceCraft.

Для работы с пул-реквестами в SourceCraft, в том числе для ревью, не требуется специально переходить в IDE на локальном компьютере, все действия можно выполнять в интерфейсе SourceCraft. Доступны поиск и навигация по коду проекта, а также возможность редактировать код.

Подробнее см. на странице Работа в пул-реквесте в SourceCraft.

Задачи (issues)

Задачи (issues) — это инструмент для отслеживания ошибок, улучшений и запросов на добавление новых возможностей в проекте. В задаче вы можете организовать обсуждение в комментариях, установить статус работы, приоритет и ответственного.

Подробнее см. на странице Создать задачу (issue) в репозитории SourceCraft.

Для организации работы с задачами предусмотрены доски. На досках вы можете отслеживать прогресс работы и управлять статусами задач.

Задачи на доске распределены по столбцам и упорядочены по дате создания. Столбцы соответствуют статусам задач:

  • Открыто
  • В процессе
  • На паузе
  • Отклонено
  • Закрыто

Карточка задачи содержит:

  • Аватар исполнителя. Чтобы увидеть имя пользователя и перейти на его страницу, наведите указатель на аватар.
  • Значок приоритета задачи. Чтобы увидеть название приоритета, наведите указатель на значок.
  • Номер задачи.
  • Значок для копирования ссылки на задачу — . Чтобы увидеть значок, наведите указатель на карточку.
  • Название задачи.
  • Список меток.
  • Название цели (milestone). Чтобы увидеть сроки и открыть цель, наведите указатель на название цели.

Подробнее см. на странице Работа с доской задач в репозитории SourceCraft.

С помощью задач можно поддерживать активность пользователей в проекте. Пользователи голосуют за задачу, обсуждают проблему или идею в комментариях, делятся своими предложениями и уточняют детали.

С помощью реакций, например лайков, дизлайков и других эмодзи, оценивается важность или полезность комментария. Пользователей можно упоминать в сообщении с помощью символа @, а ссылки на другие задачи, цели и пул-реквесты помогают объединять связанные обсуждения и ускоряют совместное решение задач.

В SourceCraft поддерживается обновление страницы с задачей в режиме реального времени. Вам не нужно обновлять страницу вручную, чтобы увидеть новые комментарии, реакции и другие изменения.

Чтобы узнавать о новых комментариях, реакциях и других событиях, подпишитесь на уведомления о задаче. Уведомления приходят на почту, связанную с вашим аккаунтом.

Подробнее см. на странице Работа с задачами (issues) в SourceCraft.

Цели (milestones)

Цели (milestones) — это инструмент для планирования и отслеживания ключевых вех в процессе разработки программного обеспечения.

Целями могут быть, например, очередной релиз или выпуск значимого обновления.

Для каждой цели вы можете установить срок выполнения и указать задачи (issues), которые нужно выполнить для достижения цели. К задачам, в свою очередь, вы можете привязать конкретные пул-реквесты.

Таким образом, с помощью связки из целей, задач и пул-реквестов вы можете отслеживать прогресс разработки и контролировать приоритеты.

Подробнее см. на странице Работа с целями (milestones) в SourceCraft.

Секреты

С помощью секретов вы можете хранить в репозитории в зашифрованном виде конфиденциальные данные, например пароли, ключи доступа, токены и т. д.

Секрет представляет собой пару ключ-значение. Где ключ — название секрета, а значение — конфиденциальные данные.

Значения секретов можно использовать в CI/CD-процессах репозитория. Для этого в конфигурационном файле .sourcecraft/ci.yaml укажите секрет в формате ${{ secrets.<название_секрета> }}.

Подробнее см. на странице Управлять секретами в репозитории SourceCraft.

Код

В SourceCraft реализована расширенная навигация по коду проекта, в том числе в репозиториях, доступных только для чтения. Вы можете выполнить следующие виды поиска:

Навигация доступна как в режиме редактирования, так и в режиме просмотра кода.

Также доступны возможности:

Примечание

Пока поиск деклараций и мест использования элементов поддерживается для языков программирования Go, Java, JavaScript, TypeScript, С++ и Python.

Подробнее см. на странице Навигация и поиск по коду в SourceCraft.

Вы можете редактировать код своего проекта в интерфейсе SourceCraft. Изменения можно внести напрямую в ветку репозитория или в виде пул-реквеста.

В редактор кода SourceCraft встроен Code Assistant.

Code Assistant — это AI-помощник разработчика, основанный на больших языковых моделях (LLM), с помощью которого вы можете улучшить процесс написания кода и повысить производительность.

В режиме Smart autocompletion AI-помощник анализирует контекст кода и предлагает наиболее вероятные и релевантные подсказки: функции, циклы, условия и другие элементы.

Также в Code Assistant доступен режим чата, с помощью которого вы можете общаться с AI-помощником в интерфейсе IDE.

Условия использования сервиса SourceCraft Code Assistant

Документация сервиса SourceCraft Code Assistant

Подробнее см. на странице Отредактировать код с SourceCraft Code Assistant.

Пакеты (packages)

В SourceCraft вы можете хранить, распространять и управлять пакетами (packages) программного обеспечения. Это могут быть сторонние библиотеки, зависимости или собственные сборки программ.

С помощью пакетов разработчики могут легко делиться результатами сборки, переиспользовать код и внедрять его в свои проекты.

Пакеты хранятся в реестрах (registries) — хранилищах, куда пакеты публикуются и откуда их могут скачивать другие участники или автоматизированные системы. Реестр обеспечивает управление версиями, контроль доступа, аудит и связывает процессы публикации и внедрения пакетов в системе управления исходным кодом.

Поддерживаются следующие типы пакетов:

  • Docker — Docker-образы.
  • Maven — Java-артефакты.
  • npm — Node.js-артефакты.

Важно

Для создания и добавления реестров, а также подключения реестров к репозиториям требуется роль Администратор организации.

Доступ к чтению пакетов из реестров имеют все пользователи в организации.

Поддерживается подключение локальных реестров Yandex Cloud Registry, размещенных в той же организации.

Реестры, созданные в SourceCraft, также будут отображаться в консоли управления Yandex Cloud.

Примечание

При подключении репозитория к реестру все пользователи, имеющие в репозитории роль Разработчик репозитория, роль Ответственный за репозиторий или роль Администратор репозитория, получают возможность загрузки пакетов в этот реестр.

Подробнее см. в инструкциях Работа с пакетами (packages).

См. также