This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Forge" software – news ·newspapers ·books ·scholar ·JSTOR(August 2015) (Learn how and when to remove this message) |

Infree and open-source software (FOSS) development communities, aforge is a web-basedcollaborative software platform for both developing and sharing computer applications.
Forsoftware developers it is an online service to host the tools they need to work and communicate with their coworkers. It provides a workflow to propose modifications and engage in discussions. The goal is to reach an agreement that will allow these modifications to be merged into the software repository.
The source code itself is stored in arevision control system and linked to a wide range of services such as acode review,bug database,continuous integration, etc. When a development communityforks, it duplicates the content of the forge and is then able to modify it without asking permission. A community may rely on services scattered on multiple forges: they are not necessarily hosted under the same domain.
The termforge refers to a common prefix or suffix adopted by various platforms created after the example ofSourceForge in 2001.[1] This usage of the word stems from the metalworkingforge, used forshaping metal parts.
In 2023 the two most widely used collaborative development platforms are not advertised as beingforges. The GitHub tagline[2] is "The complete developer platform to build, scale, and deliver secure software". The GitLab tagline[3] is "the most comprehensive AI-powered DevSecOps Platform". Although they share all the technical aspects of what constitutes a forge, the documentation and marketing material does not make use of the termforges.
However, in FOSS development communities and since the inception of the first SourceForge fork in 2001, the termforge is still commonly used to designate onlinecollaborative software platforms.
Some online services do not qualify as a forge, even when they share some of its essential aspects. For instance a standalone code review service such asGerrit is sometimes integrated in a forge that lacks integrated code review but cannot be used to distribute the software to end users.
Similarly, online services that focus on project management or issue tracking such asTrac,Redmine orOpenProject do not provide a workflow to be used by software developers to discuss the changes they propose and merge the outcome in the software repository. These services may include limited integration with a range of version control system, for visualization and citing code it contains, but that alone is more of a feature than a workflow a developer can use.
Two different kinds of concepts are commonly referred to by the termforge:
All these platforms provide similar tools helpful to software developers working in the hosted projects:
Some provide other features as well:
In addition to the webuser interface, it is common for a forge to provide aRESTAPI with documentation (GitHub,[4]GitLab,[5]Gitea,[6] etc.) to enableinteroperability with other products. Forge users can also installwebhooks to notify a third party online service when an event happens on their software project (for instance the webhook can be called when a new issue is created[7]).
Federation and the associated protocolActivityPub (introduced in 2018) allows forges to communicate with each other about their activities (for instance when issues are created[8] or a commit is pushed[9]). Although native federation support is sometime discussed[10] or in progress[11] it is not yet available. Third party projects emerged to bridge the gap such as a plugin for the pagure forge[12] or a proxy supporting ActivityPub and translating it toRESTAPI calls to the designated forge.[13]
There is noSSO that applications and users could rely on to authenticate with all forges. Instead it is common for a forge to support a number of authentication providers: if a user already has an account they can use it to authenticate on the forge and do not need to create a new account (for instanceGitLab supportsOAuth2 providers such asGitHub[14]). Some forges can act as an authentication provider (for instanceGitea is an OAuth2 provider[15] as well as GitLab[16]).
To improve the user and the system administrator experience when using multiple online services, some forges are integrated with popular third-party software and services such asonline chat (for instancemattermost has a plugin for GitHub[17] and is natively support by GitLab[18]).