Add appeals@ Google Group for Code of Conduct ban appeals#123
Open
tadasant wants to merge 1 commit into
Open
Conversation
Adds appeals@modelcontextprotocol.io as an email Google Group so banned or external users have an out-of-band channel to appeal Code of Conduct actions even after an org-level GitHub block. Mirrors the existing antitrust@/catch-all@ email-group setup (isEmailGroup, no new GoogleConfig fields). Membership is curated explicitly (like the antitrust@ members) to the current moderators and active lead maintainers, rather than derived from the MODERATORS/LEAD_MAINTAINERS roles, since those roles include emeritus and former members who should not receive appeals. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43d2f38 to
810462c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow on to Discord thread: https://discord.com/channels/1358869848138059966/1516855742060171435/1518374972597207243
What & why
Adds
appeals@modelcontextprotocol.ioas an email Google Group so that banned or external users have an out-of-band channel to appeal Code of Conduct actions. When someone is blocked at the GitHub org level they lose access to all repos/issues/PRs, so the appeals channel must be email — it cannot live in GitHub.This encourages moderators to not dwell too long on handing out bans for suspected spam or AI slop, because it makes potentially incorrect decisions reversible. Prior to this change, there is no official channel for an incorrectly-banned person to invest in presenting a case for why reinstatement should be considered.
After this inbox is confirmed working, we can add it in a section in the Code of Conduct and provide guidelines for how to submit an appeal.
This change technically mirrors the existing
antitrust@/catch-all@email-group setup: anisEmailGroup: truegroup with no newGoogleConfigfields, and an explicitly curated member list (exactly like the hand-listedantitrust@members at the bottom ofusers.ts).Behavior this unblocks
isEmailGroupbranch ingoogle.tsalready setswhoCanPostMessage: ANYONE_CAN_POST, so nogoogle.tschange is needed.ROLE_IDS.APPEALSis added to a curated set of 8 member entries (see below).isEmailGroupgroups,google.tssetswhoCanViewGroup: 'ALL_MEMBERS_CAN_VIEW'. Only the group's members can read the appeal threads.Curated membership
ROLE_IDS.APPEALSis added to these 8users.tsentries:dsp-antdavid@localdenden@tadasanttadas@olaservoola@evalstateshaun.smith@cliffhallcliff@jonathanhefnerpederhpWe can provision their inboxes in a follow up if needed, though I figure we'd discuss any appeals in Discord anyway, so not critical.
The change — three files
src/config/roleIds.ts— addAPPEALS: 'appeals'toROLE_IDS(theRoleIdunion derives from this, so no other type edits needed).src/config/roles.ts— add anisEmailGrouprole{ id: ROLE_IDS.APPEALS, description: 'Code of Conduct ban appeals inbox', google: { group: 'appeals', isEmailGroup: true } }, alongsideANTITRUST/CATCH_ALL.src/config/users.ts— appendROLE_IDS.APPEALSto the 8 curated entries above.Scope kept intentionally minimal
google.ts— the existingisEmailGroupbranch and membership loop already produce everything needed.GoogleConfigfields.MODERATORS/LEAD_MAINTAINERS/CORE_MAINTAINERSroles — appeals membership is curated independently, so this PR does not touch unrelated group/GitHub-team memberships.Verification
npm run check(format:check+validate+test) passes: Prettier clean, config validation green (role references + member ordering), 23/23 config tests pass.google.tsis unchanged —git diff main --name-onlyshows onlysrc/config/roleIds.ts,src/config/roles.ts,src/config/users.ts.users.tsentries gainedROLE_IDS.APPEALS:dsp-ant,localden,tadasant,olaservo,evalstate,cliffhall,jonathanhefner,pederhp. Justin (jspahrsummers, emeritus), Paul (pcarleton), andbhosmer-antare intentionally not members.google.tsemail resolution): 6 —cliff@,david@,den@,ola@,shaun.smith@,tadas@.jonathanhefner/pederhpresolve to none (flagged above).npx tscon the config files is clean. The fullnpm run buildreports one pre-existing, unrelated error —Cannot find module '@pulumi/googleworkspace'ingoogle.ts— because the generated Pulumi SDK undersdks/googleworkspaceisn't built in a non-deploy checkout; it reproduces on a cleanmain.