docs/getting-started/how/index.html

246 lines
6.4 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://docs.forgeflux.org/main.css">
<link rel="icon" href="https://www.getzola.org/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<title> Docs | How does it work? </title>
</head>
<body>
<script>
fetch('https://api.github.com/repos/getzola/zola/releases/latest')
.then((response) => {
return response.json();
})
.then((data) => {
let release_name = data.name;
let html_url = data.html_url;
release.innerHTML = `<a href='${html_url}'>${release_name}</a>`;
});
</script>
<main>
<nav>
<a href="https:&#x2F;&#x2F;docs.forgeflux.org">
<img src="/logo.svg" alt="" />
</a>
<div id="release"></div>
<a href="javascript:void(0);" onclick="burger()" id="mobile" class="ms-Icon--GlobalNavButton"></a>
<div id="trees">
<input class="tree-toggle" type="checkbox" id="services"
/>
<label class="tree-toggle-label" for="services">Services</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/services/interface/">Interface</a>
</li>
<li >
<a href="https://docs.forgeflux.org/services/northstar/">Northstar</a>
</li>
</ul>
<input class="tree-toggle" type="checkbox" id="getting-started"
checked />
<label class="tree-toggle-label" for="getting-started">Getting Started</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/getting-started/services/">Services</a>
</li>
<li >
<a href="https://docs.forgeflux.org/getting-started/events/">Events</a>
</li>
<li class="active">
<a href="https://docs.forgeflux.org/getting-started/how/">How does it work?</a>
</li>
</ul>
<input class="tree-toggle" type="checkbox" id="updates"
/>
<label class="tree-toggle-label" for="updates">Updates</label>
<ul class="subtree">
<li >
<a href="https://docs.forgeflux.org/updates/december2020/">December 2020</a>
</li>
<li >
<a href="https://docs.forgeflux.org/updates/november2020/">November 2020</a>
</li>
<li >
<a href="https://docs.forgeflux.org/updates/october2020/">October 2020</a>
</li>
<li >
<a href="https://docs.forgeflux.org/updates/september2020/">September 2020</a>
</li>
</ul>
</div>
</nav>
<article>
<div id="on_right">
<span id="search-ico" class="ms-Icon--Search"></span>
</div>
<div class="search-container">
<input id="search" type="search" placeholder="Search as you type...">
<div class="search-results">
<div class="search-results__header"></div>
<ul class="search-results__items"></ul>
</div>
</div>
<div id="wrap">
<h1 id="how-does-it-work">How does it work?</h1>
<p>Bridges connect people, and so does ForgeFlux!</p>
<h2 id="interface">Interface</h2>
<p>The bridging component in ForgeFlux is called Interface.</p>
<p><a href="https://docs.forgeflux.org/services/interface/">Interfaces</a> are programs that run on either
side of the bridge, i.e, a bridge requires the participation of two
interfaces. Currently, Interfaces bridge the following operations:</p>
<ul>
<li>Pull Requests</li>
<li>Issues</li>
<li>Comments</li>
</ul>
<p>An Interface implementation for a software forge is able to
talk to the forge's API and speak <a href="https://activitypub.rocks/">ActivityPub
protocol</a> for server-to-server
communications. This architecture makes it possible to implement an
Interface for any forge setup.</p>
<h2 id="northstar">Northstar</h2>
<p>Since Interfaces run external to the forges, a method to find Interfaces
that service forges was required.</p>
<p><a href="https://docs.forgeflux.org/services/northstar/">Northstar</a> is a discovery service that maps an
Interface and the forge that it services. It acts very similar to DNS,
except instead of querying host names with intent to find corresponding
IP address, Northstar is queried with the forge's host name to discover
the Interfaces that service it.</p>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="https://github.com/forgeflux-org/spec/blob/master/rfc/1-ecosystem-architecture/1-ecosystem-architecture.md">ecosystem-architecture</a>:
describes basic architecture and terminology used in ForgeFlux</li>
</ul>
</div>
</article>
</main>
<script type="text/javascript" src="https://docs.forgeflux.org/elasticlunr.min.js" defer></script>
<script type="text/javascript" src="https://docs.forgeflux.org/search_index.en.js" defer></script>
<script type="text/javascript" src="https://docs.forgeflux.org/js.js" defer></script>
</body>
</html>