https://github.com/sovereigncloudstack/status-page-githubprojects
status page with github projects as backend
https://github.com/sovereigncloudstack/status-page-githubprojects
Last synced: 12 months ago
JSON representation
status page with github projects as backend
- Host: GitHub
- URL: https://github.com/sovereigncloudstack/status-page-githubprojects
- Owner: SovereignCloudStack
- Created: 2023-01-06T12:43:24.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-19T11:40:25.000Z (almost 2 years ago)
- Last Synced: 2025-01-13T08:12:40.792Z (about 1 year ago)
- Language: Go
- Homepage: https://scs.community/
- Size: 43.9 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SCS Status Page - GitHub Projects Backend
This repository contains an implementation of the [SCS Status Page API](https://github.com/SovereignCloudStack/status-page-openapi) backed by GitHub Projects.
This means that all state relevant to the status page is stored in a [GitHub Project](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) and fetched via the GitHub GraphQL API.
## Mapping of attributes
| SCS Status Page API | GitHub |
| --- | --- |
| Component | Labels (`LA_***`) with "component:" prefix |
| Incident | Project Items (`PVTI_***`) of type "ISSUE" |
| Incident.phase | Project Item Field "Status" (Single select, predefined) |
| Incident.impactType | Project Item Field "Impact Type" (Single select) |
| Incident.beganAt | Project Item Field "Began At" (Text, RFC3339) |
| Incident.endedAt | Project Item Field "Ended At" (Text, RFC3339) |
On startup, the server verifies that fields are configured accordingly in GitHub. If this is not the case, it will not start.
Set `GITHUB_TOKEN` as environment variable with all required permissions (if using PAT's, use classic tokens, [as fine grained tokens are not yet supported with GraphQL](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#about-personal-access-tokens)), see `--help` for all other parameters.
Example invocation for debugging:
```
GITHUB_TOKEN=... go run *.go --github.project.number=1 --github.project.owner=$USER
```