123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <!doctype html>
- <html class="default light">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>ForgeFed</title>
- <link rel="stylesheet" type="text/css" href="/theme.css" />
- </head>
- <body class="body">
- <header class="header">
- <h1 class="header-title">
- <a class="header-title__link" href="/">
- <img src="/logo-with-name.svg" alt="ForgeFed" title="ForgeFed" />
- </a>
- </h1>
- <nav class="nav">
- <a class="nav__link"
- href="/forgefed.html">🗲 behavior</a>
- <a class="nav__link"
- href="/forgefed-vocabulary.html">📓 vocabulary</a>
- <a class="nav__link"
- href="https://notabug.org/peers/forgefed/issues">🐞 issues</a>
- <a class="nav__link"
- href="https://talk.feneas.org/c/forgefed">🗪 forum</a>
- <a class="nav__link"
- href="/index/dark.html">🌑</a>
- </nav>
- </header>
- <main class="main">
- <h1 class="main-title">
- ForgeFed - draft - 2019-10-05 master
- <a href="https://notabug.org/peers/forgefed/commit/743855aa55c134dcafa391d84f31024b5e3921b3">
- 743855a
- </a>
- </h1>
-
- <nav class="toc">
- <header class="toc-title">Table of Contents</header>
- <ul>
- <li><a href="#abstract"><span class="toc-section-number">1</span> Abstract</a></li>
- <li><a href="#status-of-this-document"><span class="toc-section-number">2</span> Status of This Document</a></li>
- <li><a href="#overview"><span class="toc-section-number">3</span> Overview</a></li>
- <li><a href="#conformance"><span class="toc-section-number">4</span> Conformance</a></li>
- <li><a href="#objects"><span class="toc-section-number">5</span> Objects</a></li>
- <li><a href="#actors"><span class="toc-section-number">6</span> Actors</a></li>
- <li><a href="#client-to-server-interactions"><span class="toc-section-number">7</span> Client to Server Interactions</a><ul>
- <li><a href="#follow-activity"><span class="toc-section-number">7.1</span> Follow Activity</a></li>
- <li><a href="#push-activity"><span class="toc-section-number">7.2</span> Push Activity</a></li>
- </ul></li>
- <li><a href="#server-to-server-interactions"><span class="toc-section-number">8</span> Server to Server Interactions</a><ul>
- <li><a href="#follow-activity-1"><span class="toc-section-number">8.1</span> Follow Activity</a></li>
- </ul></li>
- <li><a href="#acknowledgements"><span class="toc-section-number">9</span> Acknowledgements</a></li>
- </ul>
- </nav>
-
- <p><strong>Editors:</strong></p>
- <ul>
- <li>fr33domlover</li>
- <li>zPlus</li>
- <li>... add other editors</li>
- </ul>
- <p><strong>Repository:</strong></p>
- <ul>
- <li><a href="https://notabug.org/peers/forgefed">NotABug</a></li>
- </ul>
- <p><strong>Copyright:</strong></p>
- <p>2019 ...</p>
- <h1 id="abstract"><span class="header-section-number">1</span> Abstract</h1>
- <p>This document describes the ForgeFed protocol. ForgeFed is an extension of the <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> protocol for delivering notifications and content for federation of version control systems. The purpose of this specification is to describe a protocol that can be integrated into source code management for enabling collaboration across different platforms.</p>
- <h1 id="status-of-this-document"><span class="header-section-number">2</span> Status of This Document</h1>
- <h1 id="overview"><span class="header-section-number">3</span> Overview</h1>
- <p>ForgeFed is an extension of <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> and follows the same "actors" model, with a client-to-server protocol and a server-to-server protocol.</p>
- <h1 id="conformance"><span class="header-section-number">4</span> Conformance</h1>
- <p>The key words MAY, MUST, MUST NOT, SHOULD, and SHOULD NOT are to be interpreted as described in [RFC2119].</p>
- <h1 id="objects"><span class="header-section-number">5</span> Objects</h1>
- <p>Objects are the core concept around which both ActivityPub and ForgeFed are built. Examples of Objects are Note, Ticket, or Image. Objects are wrapped in Activities, a subtype of Object that describes some form of action that may happen, is currently happening, or has already happened. Examples of Activities are Create, Delete, or Follow.</p>
- <h1 id="actors"><span class="header-section-number">6</span> Actors</h1>
- <p>A ForgeFed implementation MUST provide an Actor of type <code>Repository</code> for every repository that should support federation.</p>
- <p>A ForgeFed implementation SHOULD provide an Actor of type <code>Person</code> for every user of the platform.</p>
- <h1 id="client-to-server-interactions"><span class="header-section-number">7</span> Client to Server Interactions</h1>
- <p>ForgeFed uses Activities for client to server interactions, as described by ActivityPub. A client will send objects (eg. a Ticket) wrapped in a Activity (eg. Create) to an actor's outbox, and in turn the server will take care of delivery.</p>
- <h2 id="follow-activity"><span class="header-section-number">7.1</span> Follow Activity</h2>
- <p>The Follow activity is used to subscribe to the activities of a Repository. The client MUST send a Follow activity the a Person's outbox. The server in turn delivers the message to the destination inbox.</p>
- <h2 id="push-activity"><span class="header-section-number">7.2</span> Push Activity</h2>
- <p>The Push activity is used to notify followers when somebody has pushed changes to a Repository. The client MUST send a Push activity the a Repository's outbox. The server in turn delivers the message to the Repository followers.</p>
- <h1 id="server-to-server-interactions"><span class="header-section-number">8</span> Server to Server Interactions</h1>
- <h2 id="follow-activity-1"><span class="header-section-number">8.1</span> Follow Activity</h2>
- <p>The server receiving a Follow activity in a Repository's inbox SHOULD add the sender actor to the Repository's followers collection.</p>
- <h1 id="acknowledgements"><span class="header-section-number">9</span> Acknowledgements</h1>
- </main>
- <footer class="footer">
- <p xmlns:dct="http://purl.org/dc/terms/">
- <a rel="license"
- href="http://creativecommons.org/publicdomain/zero/1.0/">
- <img src="https://licensebuttons.net/p/zero/1.0/88x31.png"
- style="border-style: none;"
- alt="CC0" />
- </a>
- <br />
- <a rel="dct:publisher" href="https://peers.community">
- <span property="dct:title">The ForgeFed team</span>
- </a>
- has dedicated all copyright and related and neighboring
- rights to
- <span property="dct:title">ForgeFed</span> to the public domain
- worldwide.
- </p>
- <p>❤ Copying is an act of love. Please copy, reuse and share!</p>
- <p>
- Site generated by
- <a class="footer__link" href="https://pandoc.org">pandoc</a>.
- </p>
- </footer>
- </body>
- </html>
|