Decide: repo topics are append-only #815
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#815
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Decision
Repo topics are append-only on the first-class surfaces. There is no per-topic remove.
repo edit --add-topic <t>, andadd_topicsonmadt_repos action=edit, append each topic through the per-topic endpoint, so the rest of the list is never sent and never replaced. A repeat add is a no-op with a notice.repo topics set/topics_setrefuses a set that would drop an existing topic. An additive set still works.Accepted tradeoff
The raw API passthrough still reaches
PUT /repos/{owner}/{repo}/topics, so a full-list replace that drops a topic stays possible there. I accept this: the passthrough is the deliberate escape hatch, and the append-only guarantee lives on the first-class surfaces.Record
Tracked by a proposed ADR in
docs/decisions. Implemented in #813.ADR-ACCEPT 0057
Decided in ADR 0057, docs/decisions/0057-append-only-repo-topics.md, now accepted: repo topics are append-only on the first-class surfaces.
repo edit --add-topicandadd_topicsappend through the per-topic endpoint,repo topics setrefuses a set that drops a topic, and no first-class surface removes a topic. The raw API passthrough can still replace the full list, and I accept that as the deliberate escape hatch. The implementation landed with #813.