Originally created by: athanclark
Part of [#533]. OpenChronology as an aggregator of the events that work tools already create: GitHub issue and pull request assignments first, then Microsoft Planner and kanban boards. It mirrors them read-only; it is not a time tracker.
Depends on ongoing durations (#537): an open work item is a duration that ends now.
The same pattern as the syslog receiver, the journald follower and och-import-logs: an API key, routing rules to timelines, and a live path plus a backfill path.
| Source event | On the timeline |
|---|---|
| Issue or PR opened | A duration from its creation, ongoing |
| Closed or merged | The duration gets a fixed end |
| Reopened | The end becomes ongoing again |
| Assigned or unassigned | A moment, and an assignee tag on the duration |
| Labels, milestone, repository | Tags |
| Linked issues, "closes #n" | Relationships |
Each work item keeps a stable ID derived from its source (github:owner/repo#412), so redelivered webhooks and re-runs of the backfill update rather than duplicate.
issues, pull_request and issue_comment events if wanted), checking X-Hub-Signature-256, routing by repository.--since and --dry-run like och-import-logs.Assignments name people, so this mirrors personal data from another service. The docs should say what is copied, and deleting or unassigning at the source should be reflected.
Tickets: #533
Tickets: #542
Tickets: #545
Tickets: #546
Tickets: #547