В сообществах разработчиков FOSS forge представляет собой веб- платформу для совместной работы, предназначенную как для разработки, так и для совместного использования компьютерных приложений.
Для разработчиков программного обеспечения это онлайн-сервис, в котором размещаются инструменты, необходимые для работы и общения с коллегами. Он обеспечивает рабочий процесс для предложения изменений и участия в обсуждениях. Цель состоит в том, чтобы достичь соглашения, которое позволит объединить эти модификации в репозиторий программного обеспечения.
Для пользователей кузница — это хранилище компьютерных приложений , место, куда можно сообщить об ошибках , канал информирования о проблемах безопасности и т. д.
Сам исходный код хранится в системе контроля версий и связан с широким спектром сервисов, таких как проверка кода , база данных ошибок , непрерывная интеграция и т. д. Когда сообщество разработчиков FOSS разветвляется , оно дублирует содержимое кузницы, а затем возможность изменить его, не спрашивая разрешения. Сообщество может полагаться на сервисы, разбросанные по нескольким форжам: они не обязательно размещаются в одном домене.
Термин « кузница» относится к общему префиксу или суффиксу, принятому на различных платформах, созданному по примеру SourceForge в 2001 году . [1] Такое использование слова происходит от металлообрабатывающей кузницы , используемой для придания формы металлическим деталям .
В 2023 году две наиболее широко используемые платформы совместной разработки не будут рекламироваться как подделки . Слоган GitHub [2] — « Полноценная платформа для разработчиков для создания, масштабирования и доставки безопасного программного обеспечения». Слоган GitLab [3] — это наиболее полная платформа DevSecOps на базе искусственного интеллекта. Хотя они разделяют все технические аспекты того, что представляет собой кузница, в документации и маркетинговых материалах термин «кузница» не используется .
Однако в сообществах разработчиков FOSS и с момента создания первого форка SourceForge в 2001 году термин forge по-прежнему широко используется для обозначения программных онлайн- платформ для совместной работы.
Некоторые онлайн-сервисы не квалифицируются как подделки, даже если они разделяют некоторые из его основных аспектов. Например, автономная служба проверки кода, такая как Gerrit , иногда интегрируется в систему, в которой отсутствует встроенная проверка кода, но ее нельзя использовать для распространения программного обеспечения конечным пользователям.
Аналогичным образом, онлайн-сервисы, ориентированные на управление проектами или отслеживание проблем, такие как Trac , Redmine или OpenProject , не предоставляют рабочий процесс, который разработчики программного обеспечения могли бы использовать для обсуждения предлагаемых ими изменений и объединения результатов в репозитории программного обеспечения. Эти службы могут включать ограниченную интеграцию с рядом систем контроля версий для визуализации и цитирования содержащегося в них кода, но это само по себе является скорее функцией, чем рабочим процессом, который может использовать разработчик.
Термином « кузница» обычно обозначаются два разных типа концепций :
Все эти платформы предоставляют схожие инструменты, полезные разработчикам программного обеспечения, работающим над размещенными проектами:
Некоторые предоставляют и другие функции:
В дополнение к веб- интерфейсу пользователя Forge обычно предоставляет REST API с документацией ( GitHub , [4] GitLab , [5] Gitea , [6] и т. д.), чтобы обеспечить взаимодействие с другими продуктами. Пользователи Forge также могут устанавливать веб-перехватчики , чтобы уведомлять сторонние онлайн-сервисы о событиях, происходящих в их программном проекте (например, веб-перехватчик может вызываться при создании новой проблемы [7] ).
Федерация и связанный с ней протокол ActivityPub (представленный в 2018 году) позволяют подделкам сообщать друг другу о своей деятельности (например, когда создаются проблемы [8] или отправляется фиксация [9] ). Хотя поддержка встроенной федерации иногда обсуждается [10] или находится в разработке [11], она пока недоступна. Чтобы устранить этот пробел, появились сторонние проекты, такие как плагин для pagure forge [12] или прокси-сервер, поддерживающий ActivityPub и переводящий его в вызовы REST API к назначенному forge. [13]
Не существует единого входа , на который могли бы рассчитывать приложения и пользователи для аутентификации во всех форжах. Вместо этого форж обычно поддерживает несколько провайдеров аутентификации: если у пользователя уже есть учетная запись, он может использовать ее для аутентификации в форже, и ему не нужно создавать новую учетную запись (например, GitLab поддерживает провайдеров OAuth2 , таких как GitHub [14] ). Некоторые форжи могут выступать в качестве провайдера аутентификации (например, Gitea является провайдером OAuth2 [15] , а также GitLab [16] ).
Чтобы улучшить работу пользователя и системного администратора при использовании нескольких онлайн-сервисов, некоторые форжи интегрируются с популярным сторонним программным обеспечением и сервисами, такими как онлайн-чат (например , у Mattermost есть плагин для GitHub [17] и он изначально поддерживается GitLab [ 18] ).