feat: add site-admin account creation mode for GHES#172
Conversation
Add an alternative account-creation path that uses the GHES site-admin POST /admin/users endpoint instead of org invitations. This supports SSO/LDAP-enforced GHES environments where email-based org invitations are disallowed by policy. New config options: - account-creation-mode: "invitation" (default) or "site_admin_create" - site-admin-token: separate PAT with site-admin privileges for GHES When mode is site_admin_create, CreateAccount calls Admin.CreateUser with the provided github_username as the login. The user is created immediately (no invitation email, no acceptance required), which enables downstream team/repo grants in the same provisioning tick. Fixes: CXH-1594
| orgs []string | ||
| accountCreationMode string | ||
| siteAdminClient *github.Client | ||
| instanceURL string |
There was a problem hiding this comment.
🟡 Suggestion: instanceURL is stored on the struct and passed through InvitationBuilderParams, but no method on invitationResourceType ever reads it. Consider removing it to avoid dead code (R2).
Connector PR Review: feat: add site-admin account creation mode for GHESBlocking Issues: 0 | Suggestions: 2 | Threads Resolved: 0 Review SummaryThis PR adds a Security IssuesNone found. Correctness IssuesNone found. Suggestions
Prompt for AI agents |
Summary
account-creation-modeconfig option (invitationdefault, orsite_admin_create) andsite-admin-tokensecret config optionsite_admin_create,CreateAccountcalls the GHES site-adminPOST /admin/usersendpoint viaAdminService.CreateUserusing a separate site-admin PAT, bypassing the email invitation flow entirelySuccessResultwith the created user resource (immediately active, no invitation acceptance needed)Metadataaccount creation schema: in site_admin_create mode,github_usernamebecomes required andemailbecomes optional (matches GHES behavior under LDAP/SAML/CAS auth)AlreadyExistsResultThis unblocks SSO/LDAP-enforced GHES customers (e.g., environments with ~100 orgs where email-based org invitations are disallowed by enterprise policy) from using ConductorOne for account provisioning.
Fixes: CXH-1594
Test plan
account-creation-mode=site_admin_createwithsite-admin-tokenagainst a GHES instancegithub_usernamein site_admin_create mode returns a clear errorsite-admin-tokenwhen mode issite_admin_createfails at startupAlreadyExistsResultaccount-creation-modevalues at startupAutomated PR Notice
This PR was automatically created by c1-dev-bot as a potential implementation.
This code requires: