-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
featureNew feature or requestNew feature or request
Description
Description
This issue is meant to house conversation on finalizing the spec for modifications to Hubcast itself.
Exit Criteria
- Consensus reached on spec by hubcast team
- Finalized spec moved to appropriate location e.g. docs/specs
Hubcast
sequenceDiagram
participant GitHub
participant RelayServer
participant SiteBoundary
participant RelayClient
participant Hubcast
participant UserMappingService
participant GitLab
Note right of SiteBoundary: Site Internal
RelayClient->>Hubcast: Forward events
Note over RelayServer: Downtime
Hubcast->>GitHub: Retrieve missed events from downtime
Hubcast->>GitHub: Validate events
Hubcast->>GitHub: Check approval
Hubcast->>UserMappingService: Map GitHub user to Site user
Hubcast->>GitLab: Git push as Site user
Description
Hubcast will operate in much of the same way as it does prior to these enhancements except for a few notable changes:
- Events are untrusted on receipt and must be validated against their source e.g.
GitHub - Events are not acted upon unless there is explicit approval via comment on
GitHub - The commenter is evaluated for trust against the
UserMappingServiceand the resulting user (if found) is used for evaluating approval and performinggitoperations (if approved). - In the event of a downtime at the
RelayServer,Hubcastcan reach out to GitHub to retrieveeventsfrom a given interval
API
eventsPOST event
- Calls
GET eventonGitHub - Calls
GET pull-requestonGitHub - Calls
GET useronUserMappingService - Calls
git fetch githubfromGitHub - Calls
git push gitlab <ref>toGitLab
Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request