---
# System prepended metadata

title: Github <-> Solid

---

# Github <-> Solid

🥇 means more advanced (optional) setup

```mermaid
sequenceDiagram
  participant GHUI as Github UI
  participant GH as Github API
  participant C as Connector App
  participant OP as Solid-OIDC Provider
  participant AA as Authorization Agent
  participant RS as Solid Storage
  participant P as Projectron
  
  Note over GH, C: 1. 🏢 register connector
  Note over GH, C: 2. 🧑 authorize connector
  Note over C, OP: 3. 🧑 authenticate connector
  Note over C, AA: 4. 🧑 authorize connector
  Note over GH, C: 5. fetch data
  Note over GH, C: 6. setup org github webhooks
  Note over C, RS: 7. store data
  Note over C, RS: 8. 🥇 setup solid webhooks
  Note over P, OP: 9. 🧑 authenticate projectron
  Note over P, AA: 10. 🧑 authorize projectron
  Note over P, RS: 11. fetch data
  Note over P, RS: 12. 🥇 setup solid websockets
  Note over GHUI, GH: 13. 🧑 create new issue
  Note over C, RS: 14. based on github webhooks update Solid Storage
  Note over P, RS: 15. 🥇🧑 create new issue
  Note over C, GH: 16. 🥇 based on solid webhooks update Github
```
---
* Pavlik sets up
  * github org (e.g. [@hackers4peace](https://github.com/hackers4peace/))
  * Solid-OIDC Provider (CSS - oidc.hackers4peace.net)
  * Authorization Agent (sai-js/service - auth.hackers4peace.net)
  * Solid Storage (CSS - github.hackers4peace.net)
  * Projectron (Vuejectron - projectron.hackers4peace.net)
* Justin sets up
  * Connector App
    * github app registration (1)
    * access needs (can copy from [projectron access needs](https://github.com/janeirodigital/sai-js/tree/main/packages/css-storage-fixture/acme/projectron)) (4)
    * github API and webhooks (5, 6, 14, 16*)

---

Repository = Project
Issue = Task


* [List organization repositories](https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#list-organization-repositories)
  * [List repository issues](https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#list-repository-issues)
* [Github Organization Webhooks](https://docs.github.com/en/rest/orgs/webhooks?apiVersion=2022-11-28#about-organization-webhooks)
  * [Issues events](https://docs.github.com/en/webhooks-and-events/events/github-event-types#issuesevent)
* 🥇 [Update a repository](https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#update-a-repository)& [Update an issue](https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#update-an-issue)
