Skip to content

feat: implement GitHub org-gated access for coder.ddev.com, fixes #64#131

Merged
rfay merged 55 commits intomainfrom
20260507_speckitty
May 7, 2026
Merged

feat: implement GitHub org-gated access for coder.ddev.com, fixes #64#131
rfay merged 55 commits intomainfrom
20260507_speckitty

Conversation

@rfay
Copy link
Copy Markdown
Member

@rfay rfay commented May 7, 2026

Summary

Implements GitHub org-gated access for coder.ddev.com. New signups and re-authentication are restricted to members of approved GitHub organizations. This is also the first mission driven through spec-kitty, initializing the project's spec-driven development infrastructure.

spec-kitty initialization

This branch introduces two new top-level directories that will persist for all future initiatives:

  • .kittify/ — project-level spec-kitty configuration: project charter (governance, quality directives, stakeholder roles), config, and skills manifest. Consulted by every future spec-kitty mission to validate scope and constraints.
  • kitty-specs/github-org-gated-signup-01KR1P4G/ — the complete specification record for this initiative: requirements (spec.md), research evidence log and source register, data model, implementation plan, work-package manifest (wps.yaml), task files (WP01–WP04), requirement-traceability checklist, and append-only mission event log. Future initiatives get their own subdirectory alongside this one.

Changes

docs/admin/server-setup.md

  • Full CODER_OAUTH2_GITHUB_ALLOWED_ORGS list (27 orgs: ddev, coder-ddev-com, and 25 confirmed $100+/mo sponsor orgs)
  • Two OAuth Apps section (staging and production have separate apps)
  • Managing individual access via the coder-ddev-com GitHub org
  • Sponsor org access policy table with verification status
  • "Adding a new sponsor org" runbook

docs/admin/user-management.md

  • New "Access Management" section: granting access via coder-ddev-com org membership, pre-creating password-exception accounts, private org membership / read:org scope explanation

docs/admin/coder-ddev-com/ (operator drafts — already applied to live repos)

  • org-profile-README.mdcoder-ddev-com/.github profile/README.md
  • access-requests-README.mdcoder-ddev-com/access-requests README
  • access-request-issue-template.yml → GitHub issue form template
  • sponsor-notification.md → template for notifying new sponsor orgs

docs/admin/blog-post-draft.md

  • Draft edits to apply to the existing coder.ddev.com blog post on ddev.com

docs/index.html (start.coder.ddev.com)

  • Auth callout updated: explains ddev org / sponsor org requirement, links to access-requests
  • "How it works" step 1 updated to mention org requirement

docs/access-denied.html

  • Friendly "Access Required" page at start.coder.ddev.com/access-denied explaining why access was denied and how to request it

Test plan

  • Merge to main and confirm start.coder.ddev.com reflects updated auth callout
  • Smoke test: ddev org member can sign in to coder.ddev.com
  • Smoke test: non-member sees "Unauthorized" and Coder login page service banner with explanation
  • Apply the same PUT /api/v2/appearance service_banner to production coder.ddev.com

🤖 Generated with Claude Code

rfay and others added 30 commits May 7, 2026 12:15
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Closes #64. References #54.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-signup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… requirements

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…6, C-007)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…gside upsun

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Auto-committed by spec-kitty before creating the lane worktree for WP01
- Expand ALLOWED_ORGS to full 27-org list (ddev + coder-ddev-com + 25 sponsor orgs)
- Add staging OAuth App sub-section with separate callback URL
- Document coder-ddev-com org purpose and individual membership management
- Add sponsor org access policy table with all confirmed org slugs
- Add runbook for adding a new sponsor org

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Auto-committed by spec-kitty before creating the lane worktree for WP02
- Add top-level Access Management section explaining the org-gated signup model
- Document granting access via coder-ddev-com org membership
- Document pre-creating password exception accounts via CLI and Web UI
- Explain private org membership and read:org scope behavior
- List initial coder-ddev-com members

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
rfay and others added 20 commits May 7, 2026 19:01
- docs/admin/blog-post-draft.md: ready-to-apply diff for ddev.com blog post
- Replaces 'Log In with GitHub' section to explain access restrictions
- Adds 'Requesting Access' paragraph with link to coder-ddev-com/access-requests
- Adds sponsor org access benefit mention

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Discord: ddev.com/s/discord
- Issues: ddev/coder-ddev not ddev/ddev

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- start.coder.ddev.com auth-callout now explains ddev/sponsor org requirement
  and links to coder-ddev-com/access-requests
- Add docs/access-denied.html for use as redirect target when unauthorized
  users hit the OAuth callback (used by the Caddy reverse-proxy fix)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@rfay rfay changed the title docs: update start page for org-gated auth, add access-denied page feat: implement GitHub org-gated access for coder.ddev.com May 7, 2026
"the ddev" → "the ddev org"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
rfay and others added 2 commits May 7, 2026 22:50
Explains project structure (.kittify/, kitty-specs/), when to use
spec-kitty, how to start a mission, implementation lanes, key files
(wps.yaml, spec.md, mission-events.jsonl), common pitfalls, and a
completed missions table.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Changes have been applied directly to
ddev/ddev.com src/content/blog/coder-ddev-com-announcement.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@rfay rfay changed the title feat: implement GitHub org-gated access for coder.ddev.com feat: implement GitHub org-gated access for coder.ddev.com, fixes #64 May 7, 2026
@rfay rfay merged commit 5f518cd into main May 7, 2026
15 checks passed
@rfay rfay deleted the 20260507_speckitty branch May 7, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant