Взаимосвязь ресурсов 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.
В SourceCraft вы можете хранить, распространять и управлять пакетами (packages) программного обеспечения. Это могут быть сторонние библиотеки, зависимости или собственные сборки программ.
С помощью пакетов разработчики могут легко делиться результатами сборки, переиспользовать код и внедрять его в свои проекты.
Пакеты хранятся в реестрах (registries) — хранилищах, куда пакеты публикуются и откуда их могут скачивать другие участники или автоматизированные системы. Реестр обеспечивает управление версиями, контроль доступа, аудит и связывает процессы публикации и внедрения пакетов в системе управления исходным кодом.
Поддерживаются следующие типы пакетов:
- Docker — Docker-образы.
- Maven — Java-артефакты.
- npm — Node.js-артефакты.
Важно
Для создания и добавления реестров, а также подключения реестров к репозиториям требуется роль Администратор организации
.
Доступ к чтению пакетов из реестров имеют все пользователи в организации.
Поддерживается подключение локальных реестров Yandex Cloud Registry, размещенных в той же организации.
Реестры, созданные в SourceCraft, также будут отображаться в консоли управления Yandex Cloud.
Примечание
При подключении репозитория к реестру все пользователи, имеющие в репозитории роль Разработчик репозитория
, роль Ответственный за репозиторий
или роль Администратор репозитория
, получают возможность загрузки пакетов в этот реестр.
Подробнее см. в инструкциях Работа с пакетами (packages).