new deploy: 2023-10-01T17:44:58+00:00
This commit is contained in:
commit
9007fec1e5
22 changed files with 2876 additions and 0 deletions
3
404.html
Normal file
3
404.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>404 Not Found</title>
|
||||||
|
<h1>404 Not Found</h1>
|
10
elasticlunr.min.js
vendored
Normal file
10
elasticlunr.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
fabric-icons-inline.css
Normal file
1
fabric-icons-inline.css
Normal file
|
@ -0,0 +1 @@
|
||||||
|
@font-face{font-family:'FabricMDL2Icons';src:url("data:application/octet-stream;base64,d09GRgABAAAAAAusAA4AAAAAFLgABDXDAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEgAAABgMUZ1H2NtYXAAAAGMAAAAWgAAAYKg2Y81Y3Z0IAAAAegAAAAgAAAAKgnZCa9mcGdtAAACCAAAAPAAAAFZ/J7mjmdhc3AAAAL4AAAADAAAAAwACAAbZ2x5ZgAAAwQAAANyAAAEuLnx29VoZWFkAAAGeAAAADIAAAA2A3zu4GhoZWEAAAasAAAAFQAAACQQAQgDaG10eAAABsQAAAAYAAAAGA+HAaZsb2NhAAAG3AAAABYAAAAWBoYE+m1heHAAAAb0AAAAHQAAACAAJAHEbmFtZQAABxQAAAP3AAAJ+o6N8lFwb3N0AAALDAAAABQAAAAg/1EAgXByZXAAAAsgAAAAiQAAANN4vfIOeJxjYGHfzjiBgZWBgXUWqzEDA6M0hGa+yJDGJMTBysrFyMQIBgxAIMCAAL7BCgoMDs8Z3ulxgPkQkgGsjgXCU2BgAADc3QgGeJxjYGBgZoBgGQZGBhCoAfIYwXwWhgQgLcIgABRhec7wXPG50XO/54df7H5x4mXBO73//xkYsIlKMko8lLgqsVXCUdxL3E5shuBtqMkYgJENu/hIAgCdyyInAAB4nGPQYghlKGBoYFjFyMDYwOzAeIDBAYsIEAAAqhwHlXicXY+/TsNADMZzJLSEJ0A6IZ11KkOViJ3phksk1CUlDOelgNRKpO+AlIXFA8/ibhnzYgjMEf4utr/P+ny/c6f5yXx2nKVHKilWnDfhoNQLDurtmf35IU/vNmVhTNV5VvdlwWoJomtOF/VNsGjI0PWWTG0eH7acLWKXxY7w0nDShk7qbQB2qL/HHeJVPJLFI4QS30/xfYxL+rUsVobTiyasA/des/OoAUzFYxN49BoQf8ikP3VnE+NsOWXbwE5zgkSfygL3RJqE+0uPf/Wgkv+G+23Iv6tB9U3c9Bb0h2HBgrChl2fbUAkaYPkOhPxkxgABAAIACAAK//8AD3icXVNNaBtXEJ55b1dPsl0165UqUOJ1dze7mx+quFrJilwQwgQ3P8UpOGCKUhNfSnrqJb/Q4BcoGAr9CfSUGHpyLr2VJCT0klsv7SVXQ29uySmJCbQr7646byWnpjvsm583b+bNN/OAwX0A7Sv9GnAQAC3DNjzbsO/zP+JH7FFyFvRr/a9/0BaBPg6AMg85OgAFKMJR+CWzctCOPwY48ATegtzrJzAGnNZ8Juskz7yPdtMuG2+WPPwD//26lDIGKRmurQFTifJE4EKL8tUtrVwqaq7jB5ijtdloYQ2bjY5m1jus2agx1ymycslienf1wcbti/X6xdsbD1ZvbV+KX5jVqm/yA+cvDG3Xn230ehvPro94Hobm4bEL5+OXpl+tmty4tH1raNuFfe4Zp8olSEFE9U9CFYLsjozqCoxGh4VI4NEfEtnoEpquUSHRsAUcrLmlaHu75NYOIsWJCbeESkfJQO6CvPsZJ1lItR/JP/W7yj8BJndlKhEGhHtCR/r37jFIYdgPCdS0vOqHIOwBVSLTLmTcEBBJreehl26hTCGW+lbfy9NZ9KKeTkhHFAPf4D0OUEBRwKCArQJWtDv8izsxEfFsIZUuvV+NlQtAhgkImgwKMw4GVEY3IQRCMww8ewSKQoEqTYH3UEpvczOWzBtAQppGNSZSA21r10OZIy2Vm1sIfckIlL5Us6fCMwnvwTn4fIR6qchc26mxwC7yTGiqHti0VbE7PEQakVY2NLMfYE15DEeFPEazoywirL9TLuWOo8XD3NP5K8thuHxlfgDty0tzE+nribmly+0BzF9drteXr87j0I4TmT2WVnvm8NjDqu9XH44dnmlbAziy0LCsxsIRXe5JA/i/F5Mqh4rpn1o5eXLllK9iq9x7egqTzokpGkh/6oQzqaLsRVN8/x4gfgoi96GI1NMsMNVAtsijWLziIo5eCZJiscMFFzv0HiWwPIhf4W0wqVM+1FW3iAQaNDg50VS8hUYL9SHGOYG6iR2szDYbvuuQKlqcusXenU7WeJd3F+YSme6w038n371MHqd/6c+PnZmdtg4lYbq+wn6fOt0rH50uVseSj5x1HLBPsBt/n75Yw672Mf6YrqY7485P6dM00JbSn7/EdvLtDVz8JpVW88yx4CxFWcGb7LepQ1HZmg4KFGXdgX8Bg/8uhAAAeJxjYGRgYGAxPVwnx6UQz2/zlYGbgwEE9v892ACi78Sumg+iORjA4pwMTCAKAB/CCRAAAHicY2BkYOBgAAE4yciACpgAAsoAHQAAAAUqAKYIAAAAAAAAgACAAAAAgAAAAV0AgAAAABYASACYAN4BAAEiAVQB4gH4AlwAAHicY2BkYGDgYshiYGUAAUYwyQXCjJEgJgAOogDqAAAAeJy1VE+LGzcUf1472S1plhIo5KhDKZvFjLNuIDQ5LUlzyl42YSGXgjySZ0TGIyFpMkzpoccc+jF6CfRTlBZ67LmfoOeeeux7bzReb+yGbaEeRvPT0/v7e08GgLujz2EE/e8LfHs8gju46/Ee7MNXCY9R/jzhCeKvE74BH4NL+CZ8At8mvA9fwvcJH8Cn8EvCt+AYfk/49ujn0SThQzje+xWjjCYf4U7t/ZnwCD4bXyS8B4fjbxIeo/xtwhPEPyZ8A+6Of0v4JojxHwnvg58cJHwAx5PBzy14Ofkh4dvjt5O/Ej6Elwff/fROzO+fPBRnJvc22GUUT6x31stobJ2J06oS56YoYxDnOmj/RqvsmVx4k4uzp8/n4jQEHcO5LppK+u2DbcmF9gE9iwfZ/KQ/pcP+7IUurBYmCCmil0qvpH8t7FLEUm/kV3jbOBLnduVkbXTIdiZfxugezWZt22ar4TxDm1nsnC28dGU3W9o6htmleWicq4xWgg4y8co2YiU70QSNSWBiJBbRitxrGfVUKBNcJbupkLUSzhs8zVFF41cG4bRfmRjR3aLjIiqT65p84UEQ1g9gSRGm26U6b1WTx6kg5tF2SjZDAFOLtjR5uZFZi0FNnVeNwjats7d11Ykjc0/o1QJzuVRHDx/KltWVqQvhdYjYKWL1MgCZr309ZgaODEaJekUt8AajKtvWlZXqKnuyp0p7KsdiKFyb6JoolKYySafUlbvKKA5j3SV1agg6RH5KszCYc3b9bsM7EDCH+3ACDxGdgYEcPFgI+C4houwJIo93nlaJEoOohgxPTqHCR8A5ygoo8SzwTuNXo/YbXBVqPkO7Be7JN8V4iv8sc7YPrEl2ZFVAg/4kal7H4jo6F5xHSDkLeIDZzLHWTdvBctPuBWdjcRWoQ1VJfCMzoFC64ixfo4xYopOSdXfxV/C+QQYH7Ry/K9xLzMkwW9m/YJ54jih9BDN8Wn4y9Pe+fZbizBB37KVgPw49dChdsjeqdrYzeuCcHXbEcB/F2oJ6/4prEsxEh9+GueuZ6BkbtElmuWqPGlSHhinuFes57njHEuKD4jjuTG+bJy867SX7dtxXqjnyGVktOI+hExVXRFZDXr1F4C74LclyXcP0Wl11vFdok+N+ynz1M9/Hna7jvF+B4Ulsmacc192ctalS0s6xmobnTu3knmwqRkeofw+/NKGLxMsu730O/5XbS++KPRUo8zzHMd2pYVZ3VTBE387r8cYMUCV9LZHjDbeA/Pe1KpS0XLnlW/mh2ZNXpkpzX2xa+6p63PDNatiSsh26OfghzYpv8j/PaP/PWKfOXHofbohJLNP8UL4LZrrv7f9wt/8GD0U4iAB4nGNgZgCD/34M5QyYgAsAKTQB0nic28CgzbCJkZNJm3ETF4jcztWaG2qrysChvZ07NdhBTwbE4onwsNCQBLF4nc215YVBLD4dFRkRHhCLX05CmI8DxBLg4+FkZwGxBMEAxBLaMKEgwADIYtjOCDeaCW40M9xoFrjRrHCj2eQkoUazw43mgBvNCTd6kzAju/YGBgXX2kwJFwDEASgaAAAA") format("truetype")}.ms-Icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-family:'FabricMDL2Icons';font-style:normal;font-weight:normal;speak:none}.ms-Icon--ChevronRightSmall:before{content:"\E970"}.ms-Icon--ChromeClose:before{content:"\E8BB"}.ms-Icon--Copy:before{content:"\E8C8"}.ms-Icon--GlobalNavButton:before{content:"\E700"}.ms-Icon--MiniLink:before{content:"\E732"}.ms-Icon--Page:before{content:"\E7C3"}.ms-Icon--ProductRelease:before{content:"\EE2E"}.ms-Icon--Save:before{content:"\E74E"}.ms-Icon--Search:before{content:"\E721"}
|
225
getting-started/events/index.html
Normal file
225
getting-started/events/index.html
Normal file
|
@ -0,0 +1,225 @@
|
||||||
|
<!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 | Events </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://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 class="active">
|
||||||
|
<a href="https://docs.forgeflux.org/getting-started/events/">Events</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li >
|
||||||
|
<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="events">Events</h1>
|
||||||
|
<p>Events are those operations that are performed on the Forge side,
|
||||||
|
such as Pull Requests, and Issues.</p>
|
||||||
|
<p>These events are operations of their own, and are handled within Interface
|
||||||
|
through Notifications.</p>
|
||||||
|
<p>The flow of processing an operation in the forge is done as follows,</p>
|
||||||
|
<ol>
|
||||||
|
<li>We poll for Notifications through the <a href="https://github.com/forgeflux-org/interface/blob/master/interface/runner/runner.py">Job Runner</a>.</li>
|
||||||
|
<li>Proceed to send over this Notification to the Events Endpoint, where the Notification is parsed, and processed.</li>
|
||||||
|
<li>After identification, it is converted into a event, PR or Issue.</li>
|
||||||
|
</ol>
|
||||||
|
<h2 id="references">References</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Events Endpoint :: <a href="https://github.com/forgeflux-org/interface/blob/master/interface/runner/events.py">Info</a></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>
|
246
getting-started/how/index.html
Normal file
246
getting-started/how/index.html
Normal file
|
@ -0,0 +1,246 @@
|
||||||
|
<!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://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>
|
43
getting-started/index.html
Normal file
43
getting-started/index.html
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Zola</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Welcome to Zola!</h1>
|
||||||
|
<p>
|
||||||
|
You're seeing this page because we couldn't find a template to render.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To modify this page, create a <b>section.html</b> file in the templates directory or
|
||||||
|
<a href="https://www.getzola.org/documentation/themes/installing-and-using-themes/" target="_blank">install a theme</a>.
|
||||||
|
<br>
|
||||||
|
You can find what variables are available in this template in the <a href="https://www.getzola.org/documentation/templates/pages-sections/#section-variables" target="_blank">documentation</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<a href="https://www.getzola.org/documentation/getting-started/cli-usage/" target="_blank">Get started with Zola</a>
|
||||||
|
</footer>
|
||||||
|
<style>
|
||||||
|
html {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
font-family: "sans-serif";
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20vh;
|
||||||
|
padding: 2rem;
|
||||||
|
background: #e9e9e9;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
bottom: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</body>
|
||||||
|
</html>
|
238
getting-started/services/index.html
Normal file
238
getting-started/services/index.html
Normal file
|
@ -0,0 +1,238 @@
|
||||||
|
<!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 | Services </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://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 class="active">
|
||||||
|
<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 >
|
||||||
|
<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="services">Services</h1>
|
||||||
|
<p>The services that are currently in active development are Northstar, and Interface.
|
||||||
|
However, here's a few more details about them.</p>
|
||||||
|
<h2 id="northstar">Northstar</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Repository :: <a href="https://github.com/forgeflux-org/northstar">Source Code</a></li>
|
||||||
|
<li>OpenAPI :: <a href="https://northstar.forgeflux.org/docs/openapi/">OpenAPI Specification</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>ForgeFlux allows for multiple interfaces to be run against a single software forge.
|
||||||
|
Also, the protocol is flexible enough to support multiple types of software forges(GitLab, GitHub, etc).
|
||||||
|
The protocol's decentralised nature makes it impossible to create a constant record of which interfaces service forges.</p>
|
||||||
|
<p>So we created a discovery service which stores records of interfaces and the forges they service.
|
||||||
|
This is very similar to the way DNS works.
|
||||||
|
In DNS, hostname is resolved to IP address.</p>
|
||||||
|
<p>Here, software forge URL is resolved to URLs of <a href="https://github.com/forgeflux-org/interface">interfaces</a> that service the queried forge.</p>
|
||||||
|
<p>For an extensive view on Northstar, please check <a href="https://docs.forgeflux.org/services/northstar/">Northstar::Detailed</a></p>
|
||||||
|
<h2 id="interface">Interface</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Repository :: <a href="https://github.com/forgeflux-org/interface">Source Code</a></li>
|
||||||
|
<li>OpenAPI :: <a href="https://github.com/forgeflux-org/interface/tree/master/docs/openapi">OpenAPI Specification</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>Developing Free Software is about liberating users and giving them total control over how the programs they run should work.
|
||||||
|
It's only fair that developers of such software enjoy the same levels of liberty.</p>
|
||||||
|
<p>ForgeFlux is an attempt to enable federation for major software forges (GitLab, GitHub, Gitea, Source Hut, etc) entirely in API-space.
|
||||||
|
We believe our API-space implementation will allow for more organic growth as it will not require any involvement from the forge developers.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
275
index.html
Normal file
275
index.html
Normal file
|
@ -0,0 +1,275 @@
|
||||||
|
<!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</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>
|
||||||
|
|
||||||
|
|
||||||
|
<img src="/logo.svg" alt="" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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"
|
||||||
|
/>
|
||||||
|
<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 >
|
||||||
|
<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">
|
||||||
|
|
||||||
|
<h2 id="status">Status <a class="anchor" href="#status"></a></h2>
|
||||||
|
<p>This site is Work-in-Progress, and as such, everything is in an
|
||||||
|
incomplete-state.</p>
|
||||||
|
<h2 id="source-code">Source code <a class="anchor" href="#source-code"></a></h2>
|
||||||
|
<p>Split between two forges, slowly migrating to self-hosted
|
||||||
|
<a href="https://forgejo.org">Forgejo</a> instance at
|
||||||
|
<a href="https://git.batsense.net">git.batsense.net</a></p>
|
||||||
|
<ol>
|
||||||
|
<li><a href="https://git.batsense.net/ForgeFlux">git.batsense.net</a></li>
|
||||||
|
<li><a href="https://github.com/forgeflux-org">GitHub</a></li>
|
||||||
|
</ol>
|
||||||
|
<h2 id="projects-overview">Projects Overview <a class="anchor" href="#projects-overview"></a></h2>
|
||||||
|
<h3 id="project-status-what-does-it-mean">Project Status: what does it mean? <a class="anchor" href="#project-status-what-does-it-mean"></a></h3>
|
||||||
|
<ol>
|
||||||
|
<li>WIP: Code isn't usable.</li>
|
||||||
|
<li>Usable: Code works, but user experience isn't polished. Can be used
|
||||||
|
with a bit of patience ;)</li>
|
||||||
|
<li>Production: Ready for use</li>
|
||||||
|
</ol>
|
||||||
|
<h3 id="1-interface">1. Interface <a class="anchor" href="#1-interface"></a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com/forgeflux-org/interface">Source code</a></li>
|
||||||
|
<li>Status: WIP</li>
|
||||||
|
<li>Description: API-space software forge federation implementation.</li>
|
||||||
|
</ul>
|
||||||
|
<p>Federation will take time to implement in most, popular software forge
|
||||||
|
implementations. Interface aims to use the forge's REST API or similar
|
||||||
|
and create a federation layer on top of it.</p>
|
||||||
|
<p>Currently, implementation has minimal support for Forgejo and Gitea. A
|
||||||
|
Forgejo user can be exposed to Fediverse through WebFinger using
|
||||||
|
Interface.</p>
|
||||||
|
<h3 id="2-northstar">2. Northstar <a class="anchor" href="#2-northstar"></a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com/forgeflux-org/northstar">Source code</a></li>
|
||||||
|
<li>Status: Production</li>
|
||||||
|
<li>Description: A lookup service for federating software forges</li>
|
||||||
|
<li>Flagship instance: <a href="https://northstar.forgeflux.org">northstar.forgeflux.org</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>Interface's API-based, external, third-party approach introduces a
|
||||||
|
unique problem: how to locate the internet address (hostname) of the
|
||||||
|
Interface that services a forgege? Enter Northstar. It is a simple
|
||||||
|
Key-Value search server that maps forges and internfaces</p>
|
||||||
|
<h3 id="3-starchart">3. Starchart <a class="anchor" href="#3-starchart"></a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com/forgeflux-org/starchart">Source code</a></li>
|
||||||
|
<li>Status: Usable</li>
|
||||||
|
<li>Description: Spider and search engine for federating forges</li>
|
||||||
|
<li>Flagship instance:
|
||||||
|
<a href="https://starchart.forgeflux.org">starchart.forgeflux.org</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>Projects on centralized forges like GitHub and GitLab enjoy good
|
||||||
|
visibility through network effect, good search engine indexing and
|
||||||
|
through third-party tools like
|
||||||
|
<a href="https://awesomeopensource.com/">awesomeopensource.com/</a>.</p>
|
||||||
|
<p>Starchart aims to provide high-visibility for projects on independently
|
||||||
|
hosted forges by indexing them and exposing the index with a searchable
|
||||||
|
index. The index is designed to be replicated, so that new Starchart
|
||||||
|
instances can be bootstrapped from an existing Starchart instance's
|
||||||
|
data.</p>
|
||||||
|
<h3 id="4-f3-rs">4. f3-rs <a class="anchor" href="#4-f3-rs"></a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://git.batsense.net/ForgeFlux/f3-rs">Source code</a></li>
|
||||||
|
<li>Status: WIP</li>
|
||||||
|
<li>Description: Rust port of the <a href="https://f3.forgefriends.org/">Friendly Forge Format</a> library</li>
|
||||||
|
<li>Documentation link: <a href="https://forgeflux.org">f3.forgeflux.org</a></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="4-ftest">4. ftest <a class="anchor" href="#4-ftest"></a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://git.batsense.net/ForgeFlux/ftest">Source code</a></li>
|
||||||
|
<li>Status: Usable</li>
|
||||||
|
<li>Description: Compliance checker/test runner for <a href="https://activitypub.rocks">ActivityPub</a> and by
|
||||||
|
extension, <a href="https://forgefed.org">ForgeFed</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>The idea is to create something similar to
|
||||||
|
<a href="https://github.com/matrix-org/sytest">matrix-org/sytest</a>, but for
|
||||||
|
ActivityPub and ForgeFed. This way, we'll be able to measure how
|
||||||
|
compliant an implementation is to the specifications, which we hope will
|
||||||
|
improve interoperability between instances.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
295
js.js
Normal file
295
js.js
Normal file
|
@ -0,0 +1,295 @@
|
||||||
|
// search script, borrowed from book theme
|
||||||
|
|
||||||
|
function debounce(func, wait) {
|
||||||
|
var timeout;
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
var context = this;
|
||||||
|
var args = arguments;
|
||||||
|
clearTimeout(timeout);
|
||||||
|
|
||||||
|
timeout = setTimeout(function () {
|
||||||
|
timeout = null;
|
||||||
|
func.apply(context, args);
|
||||||
|
}, wait);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Taken from mdbook
|
||||||
|
// The strategy is as follows:
|
||||||
|
// First, assign a value to each word in the document:
|
||||||
|
// Words that correspond to search terms (stemmer aware): 40
|
||||||
|
// Normal words: 2
|
||||||
|
// First word in a sentence: 8
|
||||||
|
// Then use a sliding window with a constant number of words and count the
|
||||||
|
// sum of the values of the words within the window. Then use the window that got the
|
||||||
|
// maximum sum. If there are multiple maximas, then get the last one.
|
||||||
|
// Enclose the terms in <b>.
|
||||||
|
function makeTeaser(body, terms) {
|
||||||
|
var TERM_WEIGHT = 40;
|
||||||
|
var NORMAL_WORD_WEIGHT = 2;
|
||||||
|
var FIRST_WORD_WEIGHT = 8;
|
||||||
|
var TEASER_MAX_WORDS = 30;
|
||||||
|
|
||||||
|
var stemmedTerms = terms.map(function (w) {
|
||||||
|
return elasticlunr.stemmer(w.toLowerCase());
|
||||||
|
});
|
||||||
|
var termFound = false;
|
||||||
|
var index = 0;
|
||||||
|
var weighted = []; // contains elements of ["word", weight, index_in_document]
|
||||||
|
|
||||||
|
// split in sentences, then words
|
||||||
|
var sentences = body.toLowerCase().split(". ");
|
||||||
|
|
||||||
|
for (var i in sentences) {
|
||||||
|
var words = sentences[i].split(" ");
|
||||||
|
var value = FIRST_WORD_WEIGHT;
|
||||||
|
|
||||||
|
for (var j in words) {
|
||||||
|
var word = words[j];
|
||||||
|
|
||||||
|
if (word.length > 0) {
|
||||||
|
for (var k in stemmedTerms) {
|
||||||
|
if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) {
|
||||||
|
value = TERM_WEIGHT;
|
||||||
|
termFound = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
weighted.push([word, value, index]);
|
||||||
|
value = NORMAL_WORD_WEIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
index += word.length;
|
||||||
|
index += 1; // ' ' or '.' if last word in sentence
|
||||||
|
}
|
||||||
|
|
||||||
|
index += 1; // because we split at a two-char boundary '. '
|
||||||
|
}
|
||||||
|
|
||||||
|
if (weighted.length === 0) {
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
|
||||||
|
var windowWeights = [];
|
||||||
|
var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS);
|
||||||
|
// We add a window with all the weights first
|
||||||
|
var curSum = 0;
|
||||||
|
for (var i = 0; i < windowSize; i++) {
|
||||||
|
curSum += weighted[i][1];
|
||||||
|
}
|
||||||
|
windowWeights.push(curSum);
|
||||||
|
|
||||||
|
for (var i = 0; i < weighted.length - windowSize; i++) {
|
||||||
|
curSum -= weighted[i][1];
|
||||||
|
curSum += weighted[i + windowSize][1];
|
||||||
|
windowWeights.push(curSum);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we didn't find the term, just pick the first window
|
||||||
|
var maxSumIndex = 0;
|
||||||
|
if (termFound) {
|
||||||
|
var maxFound = 0;
|
||||||
|
// backwards
|
||||||
|
for (var i = windowWeights.length - 1; i >= 0; i--) {
|
||||||
|
if (windowWeights[i] > maxFound) {
|
||||||
|
maxFound = windowWeights[i];
|
||||||
|
maxSumIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var teaser = [];
|
||||||
|
var startIndex = weighted[maxSumIndex][2];
|
||||||
|
for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) {
|
||||||
|
var word = weighted[i];
|
||||||
|
if (startIndex < word[2]) {
|
||||||
|
// missing text from index to start of `word`
|
||||||
|
teaser.push(body.substring(startIndex, word[2]));
|
||||||
|
startIndex = word[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
// add <em/> around search terms
|
||||||
|
if (word[1] === TERM_WEIGHT) {
|
||||||
|
teaser.push("<b>");
|
||||||
|
}
|
||||||
|
startIndex = word[2] + word[0].length;
|
||||||
|
teaser.push(body.substring(word[2], startIndex));
|
||||||
|
|
||||||
|
if (word[1] === TERM_WEIGHT) {
|
||||||
|
teaser.push("</b>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
teaser.push("…");
|
||||||
|
return teaser.join("");
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatSearchResultItem(item, terms) {
|
||||||
|
var li = document.createElement("li");
|
||||||
|
li.classList.add("search-results__item");
|
||||||
|
li.innerHTML = `<a href="${item.ref}">${item.doc.title}</a>`;
|
||||||
|
li.innerHTML += `<div class="search-results__teaser">${makeTeaser(item.doc.body, terms)}</div>`;
|
||||||
|
return li;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Go from the book view to the search view
|
||||||
|
function toggleSearchMode() {
|
||||||
|
var $wrapContent = document.querySelector("#wrap");
|
||||||
|
var $searchIcon = document.querySelector("#search-ico");
|
||||||
|
var $searchContainer = document.querySelector(".search-container");
|
||||||
|
if ($searchContainer.classList.contains("search-container--is-visible")) {
|
||||||
|
$searchContainer.classList.remove("search-container--is-visible");
|
||||||
|
$wrapContent.style.display = "";
|
||||||
|
$searchIcon.className = "ms-Icon--Search";
|
||||||
|
} else {
|
||||||
|
$searchContainer.classList.add("search-container--is-visible");
|
||||||
|
$wrapContent.style.display = "none";
|
||||||
|
$searchIcon.className = "ms-Icon--ChromeClose";
|
||||||
|
document.getElementById("search").focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initSearch() {
|
||||||
|
var $searchInput = document.getElementById("search");
|
||||||
|
if (!$searchInput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var $searchIcon = document.querySelector("#search-ico");
|
||||||
|
$searchIcon.addEventListener("click", toggleSearchMode);
|
||||||
|
|
||||||
|
var $searchResults = document.querySelector(".search-results");
|
||||||
|
var $searchResultsHeader = document.querySelector(".search-results__header");
|
||||||
|
var $searchResultsItems = document.querySelector(".search-results__items");
|
||||||
|
var MAX_ITEMS = 100;
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
bool: "AND",
|
||||||
|
fields: {
|
||||||
|
title: {boost: 2},
|
||||||
|
body: {boost: 1},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var currentTerm = "";
|
||||||
|
var index = elasticlunr.Index.load(window.searchIndex);
|
||||||
|
|
||||||
|
$searchInput.addEventListener("keyup", debounce(function() {
|
||||||
|
var term = $searchInput.value.trim();
|
||||||
|
if (term === currentTerm || !index) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$searchResults.style.display = term === "" ? "none" : "block";
|
||||||
|
$searchResultsItems.innerHTML = "";
|
||||||
|
if (term === "") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var results = index.search(term, options).filter(function (r) {
|
||||||
|
return r.doc.body !== "";
|
||||||
|
});
|
||||||
|
if (results.length === 0) {
|
||||||
|
$searchResultsHeader.innerText = `Nothing like «${term}»`;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentTerm = term;
|
||||||
|
$searchResultsHeader.innerText = `${results.length} found for «${term}»:`;
|
||||||
|
for (var i = 0; i < Math.min(results.length, MAX_ITEMS); i++) {
|
||||||
|
if (!results[i].doc.body) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// var item = document.createElement("li");
|
||||||
|
// item.innerHTML = formatSearchResultItem(results[i], term.split(" "));
|
||||||
|
console.log(results[i]);
|
||||||
|
$searchResultsItems.appendChild(formatSearchResultItem(results[i], term.split(" ")));
|
||||||
|
}
|
||||||
|
}, 150));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.readyState === "complete" ||
|
||||||
|
(document.readyState !== "loading" && !document.documentElement.doScroll)
|
||||||
|
) {
|
||||||
|
initSearch();
|
||||||
|
} else {
|
||||||
|
document.addEventListener("DOMContentLoaded", initSearch);
|
||||||
|
}
|
||||||
|
|
||||||
|
// mobile
|
||||||
|
|
||||||
|
function burger() {
|
||||||
|
let x = document.querySelector("#trees");
|
||||||
|
let y = document.querySelector("#mobile");
|
||||||
|
|
||||||
|
if (x.style.display === "block") {
|
||||||
|
x.style.display = "none";
|
||||||
|
y.className = "ms-Icon--GlobalNavButton";
|
||||||
|
} else {
|
||||||
|
x.style.display = "block";
|
||||||
|
y.className = "ms-Icon--ChromeClose";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://aaronluna.dev/blog/add-copy-button-to-code-blocks-hugo-chroma/
|
||||||
|
|
||||||
|
function createCopyButton(highlightDiv) {
|
||||||
|
const button = document.createElement("button");
|
||||||
|
button.className = "copy-code-button ";
|
||||||
|
button.type = "button";
|
||||||
|
button.innerHTML = "";
|
||||||
|
button.addEventListener("click", () =>
|
||||||
|
copyCodeToClipboard(button, highlightDiv)
|
||||||
|
);
|
||||||
|
addCopyButtonToDom(button, highlightDiv);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function copyCodeToClipboard(button, highlightDiv) {
|
||||||
|
const codeToCopy = highlightDiv.querySelector(":last-child > code")
|
||||||
|
.innerText;
|
||||||
|
try {
|
||||||
|
result = await navigator.permissions.query({ name: "clipboard-write" });
|
||||||
|
if (result.state == "granted" || result.state == "prompt") {
|
||||||
|
await navigator.clipboard.writeText(codeToCopy);
|
||||||
|
} else {
|
||||||
|
copyCodeBlockExecCommand(codeToCopy, highlightDiv);
|
||||||
|
}
|
||||||
|
} catch (_) {
|
||||||
|
copyCodeBlockExecCommand(codeToCopy, highlightDiv);
|
||||||
|
} finally {
|
||||||
|
codeWasCopied(button);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyCodeBlockExecCommand(codeToCopy, highlightDiv) {
|
||||||
|
const textArea = document.createElement("textArea");
|
||||||
|
textArea.contentEditable = "true";
|
||||||
|
textArea.readOnly = "false";
|
||||||
|
textArea.className = "copyable-text-area";
|
||||||
|
textArea.value = codeToCopy;
|
||||||
|
highlightDiv.insertBefore(textArea, highlightDiv.firstChild);
|
||||||
|
const range = document.createRange();
|
||||||
|
range.selectNodeContents(textArea);
|
||||||
|
const sel = window.getSelection();
|
||||||
|
sel.removeAllRanges();
|
||||||
|
sel.addRange(range);
|
||||||
|
textArea.setSelectionRange(0, 999999);
|
||||||
|
document.execCommand("copy");
|
||||||
|
highlightDiv.removeChild(textArea);
|
||||||
|
}
|
||||||
|
|
||||||
|
function codeWasCopied(button) {
|
||||||
|
button.blur();
|
||||||
|
button.innerHTML = "";
|
||||||
|
setTimeout(function () {
|
||||||
|
button.innerHTML = "";
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addCopyButtonToDom(button, highlightDiv) {
|
||||||
|
highlightDiv.insertBefore(button, highlightDiv.firstChild);
|
||||||
|
const wrapper = document.createElement("div");
|
||||||
|
wrapper.className = "highlight-wrapper";
|
||||||
|
highlightDiv.parentNode.insertBefore(wrapper, highlightDiv);
|
||||||
|
wrapper.appendChild(highlightDiv);
|
||||||
|
}
|
||||||
|
|
||||||
|
document
|
||||||
|
.querySelectorAll("pre")
|
||||||
|
.forEach((highlightDiv) => createCopyButton(highlightDiv));
|
1
logo.svg
Normal file
1
logo.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg id="a45af197-b8b6-4c91-9128-4abb56b81e95" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 372.66 53.32"><defs><style>.a95b92e2-21b6-4941-aebf-1e24593560e5{fill:#ee362d;}.b31c35f1-b68c-4767-9b42-fc6f08b15844{fill:#6d6f6e;}.b010529f-8534-4670-9bfc-0c669400821a{fill:#6d6e70;}</style></defs><rect class="a95b92e2-21b6-4941-aebf-1e24593560e5" x="5.74" y="2.85" width="38.79" height="10.38" rx="1.94"/><rect class="a95b92e2-21b6-4941-aebf-1e24593560e5" x="5.74" y="21.55" width="24.59" height="10.38" rx="1.94"/><rect class="b31c35f1-b68c-4767-9b42-fc6f08b15844" x="40.61" y="21.55" width="24.59" height="10.38" rx="1.94"/><rect class="a95b92e2-21b6-4941-aebf-1e24593560e5" x="5.74" y="40.09" width="10.38" height="10.38" rx="1.94"/><rect class="b31c35f1-b68c-4767-9b42-fc6f08b15844" x="54.83" y="2.85" width="10.38" height="10.38" rx="1.94"/><rect class="b31c35f1-b68c-4767-9b42-fc6f08b15844" x="26.42" y="40.09" width="38.79" height="10.38" rx="1.94"/><path class="a95b92e2-21b6-4941-aebf-1e24593560e5" d="M89.68,14.18V27.41h19v4.66h-19V47.42H84.26v-38h26.79v4.72Z"/><path class="a95b92e2-21b6-4941-aebf-1e24593560e5" d="M115.75,33.22c0-8.4,6.6-14.6,15.45-14.6s15.45,6.2,15.45,14.6-6.55,14.6-15.45,14.6S115.75,41.62,115.75,33.22Zm26,0a10.55,10.55,0,0,0-21.1,0,10.55,10.55,0,0,0,21.1,0Z"/><path class="a95b92e2-21b6-4941-aebf-1e24593560e5" d="M173.2,47.42l-6.1-8.5a10.87,10.87,0,0,1-1.3,0h-6.75v8.45H154.2V19h11.6C173.25,19,178,22.67,178,29a9.09,9.09,0,0,1-6.25,9l6.75,9.4ZM173.05,29c0-3.85-2.6-6-7.55-6h-6.45V35h6.45C170.45,35,173.05,32.87,173.05,29Z"/><path class="a95b92e2-21b6-4941-aebf-1e24593560e5" d="M205.46,33.07h4.7v11.1a17.2,17.2,0,0,1-10.95,3.65c-9.05,0-15.65-6.2-15.65-14.6s6.6-14.6,15.45-14.6c5,0,8.8,1.45,11.45,4.45l-3.1,3.15a10.87,10.87,0,0,0-8.25-3.4c-6.15,0-10.65,4.35-10.65,10.4s4.5,10.4,10.8,10.4a11.58,11.58,0,0,0,6.2-1.6Z"/><path class="a95b92e2-21b6-4941-aebf-1e24593560e5" d="M240.71,43.37v4.05h-21.3V19h20.75v4h-15.9v8h14.15V35H224.26v8.4Z"/><path class="b010529f-8534-4670-9bfc-0c669400821a" d="M254.69,14.18V27.41h19v4.66h-19V47.42h-5.43v-38h26.79v4.72Z"/><path class="b010529f-8534-4670-9bfc-0c669400821a" d="M283.4,19h4.85V43.37H303.5v4.05H283.4Z"/><path class="b010529f-8534-4670-9bfc-0c669400821a" d="M308.35,35.27V19h4.85V35.17c0,5.55,2.7,8.45,7.65,8.45s7.65-2.85,7.65-8.45V19h4.76V35.27c0,7.95-4.66,12.55-12.46,12.55S308.35,43.22,308.35,35.27Z"/><path class="b010529f-8534-4670-9bfc-0c669400821a" d="M360.16,47.42l-8.05-11-8.15,11h-5.55l11-14.55L339.06,19h5.45l7.65,10.3,7.6-10.3h5.4l-10.35,13.8,10.95,14.6Z"/></svg>
|
After Width: | Height: | Size: 2.5 KiB |
1
main.css
Normal file
1
main.css
Normal file
File diff suppressed because one or more lines are too long
3
robots.txt
Normal file
3
robots.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
User-agent: *
|
||||||
|
Allow: /
|
||||||
|
Sitemap: https://docs.forgeflux.org/sitemap.xml
|
1
search_index.en.js
Normal file
1
search_index.en.js
Normal file
File diff suppressed because one or more lines are too long
43
services/index.html
Normal file
43
services/index.html
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Zola</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Welcome to Zola!</h1>
|
||||||
|
<p>
|
||||||
|
You're seeing this page because we couldn't find a template to render.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To modify this page, create a <b>section.html</b> file in the templates directory or
|
||||||
|
<a href="https://www.getzola.org/documentation/themes/installing-and-using-themes/" target="_blank">install a theme</a>.
|
||||||
|
<br>
|
||||||
|
You can find what variables are available in this template in the <a href="https://www.getzola.org/documentation/templates/pages-sections/#section-variables" target="_blank">documentation</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<a href="https://www.getzola.org/documentation/getting-started/cli-usage/" target="_blank">Get started with Zola</a>
|
||||||
|
</footer>
|
||||||
|
<style>
|
||||||
|
html {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
font-family: "sans-serif";
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20vh;
|
||||||
|
padding: 2rem;
|
||||||
|
background: #e9e9e9;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
bottom: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</body>
|
||||||
|
</html>
|
265
services/interface/index.html
Normal file
265
services/interface/index.html
Normal file
|
@ -0,0 +1,265 @@
|
||||||
|
<!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 | Interface </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://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"
|
||||||
|
checked />
|
||||||
|
<label class="tree-toggle-label" for="services">Services</label>
|
||||||
|
|
||||||
|
<ul class="subtree">
|
||||||
|
|
||||||
|
<li class="active">
|
||||||
|
<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"
|
||||||
|
/>
|
||||||
|
<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 >
|
||||||
|
<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="interface">Interface <a class="anchor" href="#interface"></a></h1>
|
||||||
|
<p>Interface is a service that acts as a connecting end of the bridge, listening
|
||||||
|
in for Notifications from a particular forge repository.</p>
|
||||||
|
<p>These notifications, which may be in the form of a Comment, Issue, or Pull Request,
|
||||||
|
are then further defined into <a href="https://docs.forgeflux.org/getting-started/events/">Events</a> to create
|
||||||
|
a workable unit set, that the interface can use to translate operations from
|
||||||
|
one forge to another forge.</p>
|
||||||
|
<p>The procedure of the Notification-Event Translation System, works as follows,</p>
|
||||||
|
<ol>
|
||||||
|
<li>Upon creation of the Interface, and set up of a forge repository to look for, the interface subscribes to the forge's notifications.</li>
|
||||||
|
<li>Every notification received by the interface from the forges, is then identified and translated into it's respective <code>Event</code> model, be it an Issue or PR.</li>
|
||||||
|
<li>Upon conversion into the respective model, Interface processes these <code>Events</code>, and converts them into the model required for the destination forge.</li>
|
||||||
|
</ol>
|
||||||
|
<h2 id="setting-up-the-development-environment">Setting up the Development Environment <a class="anchor" href="#setting-up-the-development-environment"></a></h2>
|
||||||
|
<p>In order to test out and utilise the Northstar lookup service, we will need to set
|
||||||
|
up an interface to be run on the local machine. There are a few configuration
|
||||||
|
changes that must be made for the interface to be recognized by the lookup service.</p>
|
||||||
|
<p>Changes to the <code>config/settings.toml</code>,</p>
|
||||||
|
<pre data-lang="toml" style="background-color:#eff1f5;color:#4f5b66;" class="language-toml "><code class="language-toml" data-lang="toml"><span>[default.system]
|
||||||
|
</span><span style="color:#bf616a;">northstar </span><span>= "</span><span style="color:#a3be8c;">http://computer.domain.com:port</span><span>"
|
||||||
|
</span><span>
|
||||||
|
</span><span>[default.server]
|
||||||
|
</span><span style="color:#bf616a;">url </span><span>= "</span><span style="color:#a3be8c;">http://computer.domain.com:port</span><span>"
|
||||||
|
</span></code></pre>
|
||||||
|
<p>Note that the port assigned to the interface and northstar must not already be in
|
||||||
|
use by another application/service, and that you can find out the hostname for
|
||||||
|
your system through the following command,</p>
|
||||||
|
<pre data-lang="sh" style="background-color:#eff1f5;color:#4f5b66;" class="language-sh "><code class="language-sh" data-lang="sh"><span style="color:#bf616a;">hostname --fqdn
|
||||||
|
</span></code></pre>
|
||||||
|
<p>There are a few more settings to add in, as a means to validate the user who hosts
|
||||||
|
the interface, this also depends on the forge of your choosing. As of right now,
|
||||||
|
<code>interface</code> supports only gitea, and we can fill up the <code>config/settings.toml</code>,
|
||||||
|
with the same.</p>
|
||||||
|
<pre data-lang="toml" style="background-color:#eff1f5;color:#4f5b66;" class="language-toml "><code class="language-toml" data-lang="toml"><span>[default]
|
||||||
|
</span><span style="color:#bf616a;">forge </span><span>= "</span><span style="color:#a3be8c;">gitea</span><span>"
|
||||||
|
</span><span>
|
||||||
|
</span><span>[default.gitea]
|
||||||
|
</span><span style="color:#bf616a;">host </span><span>= "</span><span style="color:#a3be8c;">https://gitea.com</span><span>"
|
||||||
|
</span><span style="color:#bf616a;">api_key </span><span>= "</span><span style="color:#a3be8c;">generate-the-api-key-from-gitea-and-paste-here</span><span>"
|
||||||
|
</span><span style="color:#bf616a;">username </span><span>= "</span><span style="color:#a3be8c;">fluxer101</span><span>"
|
||||||
|
</span><span style="color:#bf616a;">password </span><span>= "</span><span style="color:#a3be8c;">flux101</span><span>"
|
||||||
|
</span></code></pre>
|
||||||
|
<p>Note that the API key in Gitea is known as an access token, one which can be
|
||||||
|
generated <a href="https://gitea.com/user/settings/applications">here</a>.</p>
|
||||||
|
<h2 id="faq">FAQ <a class="anchor" href="#faq"></a></h2>
|
||||||
|
<h3 id="why-does-an-integrity-error-show-up">Why does an integrity error show up? <a class="anchor" href="#why-does-an-integrity-error-show-up"></a></h3>
|
||||||
|
<p>As ForgeFlux's Interface is an actively developing project, there are a few
|
||||||
|
errors that are caused by an upgrade to the database, in which case integrity errors
|
||||||
|
are bound to pop up. In this case, remove the <code>instance/</code> directory where the database
|
||||||
|
for the service would be stored, to rebuild it the next time the application is run.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
217
services/northstar/index.html
Normal file
217
services/northstar/index.html
Normal file
|
@ -0,0 +1,217 @@
|
||||||
|
<!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 | Northstar </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://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"
|
||||||
|
checked />
|
||||||
|
<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 class="active">
|
||||||
|
<a href="https://docs.forgeflux.org/services/northstar/">Northstar</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input class="tree-toggle" type="checkbox" id="getting-started"
|
||||||
|
/>
|
||||||
|
<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 >
|
||||||
|
<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="northstar">Northstar <a class="anchor" href="#northstar"></a></h1>
|
||||||
|
<p>Northstar is a lookup service, which acts as a source of information
|
||||||
|
for interfaces which hold particular forge information.</p>
|
||||||
|
<p>An <a href="https://docs.forgeflux.org/services/interface/">Interface</a> connects and looks
|
||||||
|
through an instance of Northstar, to find the appropriate the forge
|
||||||
|
information that it seeks.</p>
|
||||||
|
<p>An instance of Northstar has the functionality to act as an API to
|
||||||
|
register and provide forge information.
|
||||||
|
These routes/payloads are covered in the <a href="https://northstar.forgeflux.org/docs/openapi/">OpenAPI specification</a>
|
||||||
|
for Northstar.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
42
sitemap.xml
Normal file
42
sitemap.xml
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/getting-started/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/getting-started/events/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/getting-started/how/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/getting-started/services/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/services/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/services/interface/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/services/northstar/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/updates/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/updates/december2020/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/updates/november2020/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/updates/october2020/</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://docs.forgeflux.org/updates/september2020/</loc>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
241
updates/december2020/index.html
Normal file
241
updates/december2020/index.html
Normal file
|
@ -0,0 +1,241 @@
|
||||||
|
<!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 | December 2020 </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://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"
|
||||||
|
/>
|
||||||
|
<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 >
|
||||||
|
<a href="https://docs.forgeflux.org/getting-started/how/">How does it work?</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input class="tree-toggle" type="checkbox" id="updates"
|
||||||
|
checked />
|
||||||
|
<label class="tree-toggle-label" for="updates">Updates</label>
|
||||||
|
|
||||||
|
<ul class="subtree">
|
||||||
|
|
||||||
|
<li class="active">
|
||||||
|
<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="december-2020">December 2020</h1>
|
||||||
|
<h2 id="northstar">Northstar</h2>
|
||||||
|
<p>As the development on <a href="https://docs.forgeflux.org/services/northstar/">Northstar</a> nears the completion phase,
|
||||||
|
updates on it have slowed down, and the only updates that were made during this
|
||||||
|
stage mostly comprises of configuration updates.
|
||||||
|
These updates were mostly related to bootstrapping <a href="https://www.dynaconf.com/">DynaConf</a>,
|
||||||
|
as we embraced 12-factor app configuration recommendations, allowing for better
|
||||||
|
configuration management.</p>
|
||||||
|
<h2 id="interface">Interface</h2>
|
||||||
|
<p>Realising the need for validation of a request to an actor, an authentication
|
||||||
|
mechanism was developed to implement Matrix's <a href="https://github.com/matrix-org/python-signedjson">signed JSON</a>
|
||||||
|
feature, but, was later replaced in favor of <a href="https://tools.ietf.org/html/draft-cavage-http-signatures">HTTP Signatures</a>.</p>
|
||||||
|
<p>Interface underwent major refactoring to improve test-ability and reliability in addition
|
||||||
|
to implementing authentication by a <a href="https://github.com/matrix-org/python-signedjson">signed JSON</a>
|
||||||
|
mechanism implemented by the Matrix project. Taking note of rate-limits imposed by some forges,
|
||||||
|
we figured we'd have to cache responses and so data persistence was implemented by way of
|
||||||
|
storing in a database.</p>
|
||||||
|
<h2 id="references">References</h2>
|
||||||
|
<p>These are a list of the Pull Requests where the following updates took place for the
|
||||||
|
organization.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Forking Implementation :: <a href="https://github.com/forgeflux-org/interface/commit/5c9f61d60ce069963da7abc761b9ba3d81c8883a">#34</a></li>
|
||||||
|
<li>Authentication :: <a href="https://github.com/forgeflux-org/interface/commit/5cc206cbe5be83cedac14949a537baad4c6351e3">#36</a></li>
|
||||||
|
<li>DB Refactor :: <a href="https://github.com/forgeflux-org/interface/commit/57c9a085b38f8c3bab7975e18d21e4455ad3cac9">#39</a>, <a href="https://github.com/forgeflux-org/interface/commit/d9d785ca116e9a2bb9a40cf3eaa16a8b275d1593">#40</a></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>
|
43
updates/index.html
Normal file
43
updates/index.html
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Zola</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Welcome to Zola!</h1>
|
||||||
|
<p>
|
||||||
|
You're seeing this page because we couldn't find a template to render.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To modify this page, create a <b>section.html</b> file in the templates directory or
|
||||||
|
<a href="https://www.getzola.org/documentation/themes/installing-and-using-themes/" target="_blank">install a theme</a>.
|
||||||
|
<br>
|
||||||
|
You can find what variables are available in this template in the <a href="https://www.getzola.org/documentation/templates/pages-sections/#section-variables" target="_blank">documentation</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<a href="https://www.getzola.org/documentation/getting-started/cli-usage/" target="_blank">Get started with Zola</a>
|
||||||
|
</footer>
|
||||||
|
<style>
|
||||||
|
html {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
font-family: "sans-serif";
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20vh;
|
||||||
|
padding: 2rem;
|
||||||
|
background: #e9e9e9;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
bottom: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</body>
|
||||||
|
</html>
|
230
updates/november2020/index.html
Normal file
230
updates/november2020/index.html
Normal file
|
@ -0,0 +1,230 @@
|
||||||
|
<!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 | November 2020 </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://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"
|
||||||
|
/>
|
||||||
|
<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 >
|
||||||
|
<a href="https://docs.forgeflux.org/getting-started/how/">How does it work?</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input class="tree-toggle" type="checkbox" id="updates"
|
||||||
|
checked />
|
||||||
|
<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 class="active">
|
||||||
|
<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="november-2020">November 2020</h1>
|
||||||
|
<p>Errors were modularized at the back of <a href="https://github.com/forgeflux-org/northstar/">Northstar</a>,
|
||||||
|
and A Docker CI was set up for the Northstar builds.</p>
|
||||||
|
<p>A <a href="https://github.com/forgeflux-org">GitHub organization</a> was created for ForgeFedv2,
|
||||||
|
and the repositories for the projects were transferred over to it.</p>
|
||||||
|
<p>A Notification-Event Translation Mechanism was set up.</p>
|
||||||
|
<ol>
|
||||||
|
<li>Northstar functionality was integrated into Interface, and tests were set up to ensure that it could be contacted through Interface's methods.</li>
|
||||||
|
<li>A locking mechanism was set up for concurrent operations on Git utilizing <a href="https://sled.rs/">Sled</a>.</li>
|
||||||
|
<li>Implementations of a basic job runner was set up to mimic retrieving requests from Forges, through periodically retrieving notifications.</li>
|
||||||
|
<li>The endpoints for notifications was subsequently set up, and responses to these Notifications were termed as <a href="https://docs.forgeflux.org/getting-started/events/">events</a>.</li>
|
||||||
|
<li>The endpoints for processing these events were then created.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Shifted over the configuration management to <a href="https://www.dynaconf.com/">Dynaconf</a>.</p>
|
||||||
|
<h2 id="references">References</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Integration with Northstar :: <a href="https://github.com/forgeflux-org/interface/commit/0c9d8bdff05e668d77a85fdfc89b37abe1ac86cb">Info</a></li>
|
||||||
|
<li>Locking Mechanism with Sled :: <a href="https://github.com/forgeflux-org/interface/commit/d3e7c81c95d87b612ebb9562cac31d371fe8629e">Info</a></li>
|
||||||
|
<li>Defining Events :: <a href="https://github.com/forgeflux-org/interface/commit/30547b783578a7a9548aca55b3b7c932ed8130e6">Info</a></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>
|
238
updates/october2020/index.html
Normal file
238
updates/october2020/index.html
Normal file
|
@ -0,0 +1,238 @@
|
||||||
|
<!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 | October 2020 </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://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"
|
||||||
|
/>
|
||||||
|
<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 >
|
||||||
|
<a href="https://docs.forgeflux.org/getting-started/how/">How does it work?</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input class="tree-toggle" type="checkbox" id="updates"
|
||||||
|
checked />
|
||||||
|
<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 class="active">
|
||||||
|
<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="october-2020">October 2020</h1>
|
||||||
|
<p>In the month of October, there were significant changes to the development
|
||||||
|
in ForgeFedv2, with the addition of the <a href="https://forgeflux-org.github.io/northstar/">OpenAPI Specification</a>
|
||||||
|
for Northstar.</p>
|
||||||
|
<h2 id="northstar">Northstar</h2>
|
||||||
|
<p>A database model was created to store the details of the various forge interfaces,
|
||||||
|
having these details would be a prerequisite to looking up a server.</p>
|
||||||
|
<p>Endpoints were subsequently created, following the defined OpenAPI specification.
|
||||||
|
While the Lookup service was in the process of development, terminologies and the
|
||||||
|
concept for Forge Federation was also being <a href="https://github.com/forgeflux-org/spec/tree/master/rfc">discussed</a>.</p>
|
||||||
|
<p>Docker support as part of the CI process was added into the mix, while
|
||||||
|
keeping in mind, that the test suite was the method to work with the application for
|
||||||
|
the time being.
|
||||||
|
An initial working model for the lookup service was established.</p>
|
||||||
|
<h2 id="interface">Interface</h2>
|
||||||
|
<p>Development of the <code>libgit</code> library had begun at this point.</p>
|
||||||
|
<p>[libgit] is a library that processes the contributor's changes, and generates a patch.
|
||||||
|
Details regarding the implementation and feature set of libgit will be covered in another section.</p>
|
||||||
|
<h2 id="references">References</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Database Initialization :: <a href="https://github.com/forgeflux-org/northstar/commit/6a82a1bc83d4733a5a077e33ad0c222aed496145">database init</a></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>
|
215
updates/september2020/index.html
Normal file
215
updates/september2020/index.html
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
<!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 | September 2020 </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://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"
|
||||||
|
/>
|
||||||
|
<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 >
|
||||||
|
<a href="https://docs.forgeflux.org/getting-started/how/">How does it work?</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input class="tree-toggle" type="checkbox" id="updates"
|
||||||
|
checked />
|
||||||
|
<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 class="active">
|
||||||
|
<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="september-2020">September 2020</h1>
|
||||||
|
<p>In the month of September, project "ForgeFedv2" started off by
|
||||||
|
initializing the lookup service, <a href="https://github.com/forgeflux-org/northstar/">Northstar</a>.</p>
|
||||||
|
<p>The initialization mostly comprised of setting up the CI environment,
|
||||||
|
and focused more on defining the structure of the project, and how
|
||||||
|
we were to be going about it.</p>
|
||||||
|
<p>A discussion on the terminology and the primitive method of the
|
||||||
|
project's functionality were discussed.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
Loading…
Reference in a new issue