fix(org): declare team maintainers and drop deprecated team_id - #65
Conversation
There was a problem hiding this comment.
Adds a maintainers list alongside members in _teams.yaml (rendered as two dynamic "members" blocks with explicit roles), switches github_team_members from the deprecated team_id to team_slug, and lowercases the one existing team username. Checked the dependency-edge claim (still holds — team_slug still references github_team.this, so team creation still orders before membership), the coalesce(lookup(...), []) null-guard against an explicitly empty YAML key, and the decision doc, which already calls out and accepts the one open edge case (a username listed under both maintainers and members produces two blocks, unvalidated). No infrastructure-shape change, and the PR states task plan is a no-op. Nothing else in the diff raises a Critical or Important concern.
Two problems that PR #64's apply exposed, both in
github_team_members. Neitherchanges any infrastructure —
task planreportsNo changes.on this branch,scoped and unscoped. The config is being corrected to match what already exists.
Team roles. GitHub makes whoever creates a team its maintainer. #64 declared
a flat
memberslist, so the provider defaultmemberbecame a standinginstruction to demote
robinbowesfrom maintainer._teams.yamlnow takes amaintainerslist alongsidemembers, rendered as twodynamic "members"blocks. A team with no maintainers writes exactly what it wrote before.
This reverses the "flat member list, no roles" decision in the migration design.
That decision's premise — "roles would add configuration surface for no
behaviour" — was falsified by the apply: omitting the role has a behaviour.
Recorded in
decisions/2026-08-13-team-member-roles.md.Deprecated
team_id. The provider deprecated it in favour ofteam_slugand will make it computed-only in a future release, which
version = "~> 6.0"permits. Switching to
team_slug = github_team.this[each.key].slugkeeps thedependency edge that orders team creation before any repo grant — the edge comes
from referencing
github_teamat all, not from which attribute is read.Username case.
github_team_memberslowercases usernames into state andcompares case-sensitively, so
PlanetSethunder a team was a third standingdiff. Team usernames are now lowercase. This is specific to team membership;
collaborators.usersin a repo file carries GitHub's display case and has neverdrifted.
🤖 Generated with Claude Code
https://claude.ai/code/session_01C15usdmazQC71xZC1YFGHg