labels list shows only repo labels; org labels need a gated domain #888

Open
opened 2026-10-23 20:55:23 +00:00 by hexajon · 0 comments
Owner

madt_labels action=list and madtea labels list read only the repo's own labels (GET /repos/{owner}/{repo}/labels). An issue in an org repo can also use the org's labels, and madtea's own name resolver already reads both levels when it applies a label by name. But the only way to list the org labels is madt_orgs action=labels_list, behind madt_enable(domains=["orgs"]), or madtea org-labels list <org> on the CLI. An agent that asks which labels it can use sees half of them. It then enables a gated domain, or falls back to the raw API.

This does not change ADR 0015: the orgs domain stays gated, and org label management stays there. Only the read of the labels that a repo's issues can use moves onto the default labels surface.

Acceptance criteria

  • madt_labels action=list and madtea labels list return every label that an issue in the repo can use: the repo's labels and the owning org's labels.
  • Each row says which level the label comes from.
  • A repo owned by a user, not an org, lists its repo labels only, with no error.
  • madt_orgs keeps its labels_* actions, still behind madt_enable(domains=["orgs"]).
  • A test against a throwaway forge covers an org repo with labels at both levels.
`madt_labels action=list` and `madtea labels list` read only the repo's own labels (`GET /repos/{owner}/{repo}/labels`). An issue in an org repo can also use the org's labels, and madtea's own name resolver already reads both levels when it applies a label by name. But the only way to list the org labels is `madt_orgs action=labels_list`, behind `madt_enable(domains=["orgs"])`, or `madtea org-labels list <org>` on the CLI. An agent that asks which labels it can use sees half of them. It then enables a gated domain, or falls back to the raw API. This does not change ADR 0015: the `orgs` domain stays gated, and org label management stays there. Only the read of the labels that a repo's issues can use moves onto the default `labels` surface. ## Acceptance criteria - `madt_labels action=list` and `madtea labels list` return every label that an issue in the repo can use: the repo's labels and the owning org's labels. - Each row says which level the label comes from. - A repo owned by a user, not an org, lists its repo labels only, with no error. - `madt_orgs` keeps its `labels_*` actions, still behind `madt_enable(domains=["orgs"])`. - A test against a throwaway forge covers an org repo with labels at both levels.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#888
No description provided.