LemonAi. Auth. GitHubCopilotOAuth
(lemon_ai v0.1.0)
View Source
GitHub Copilot OAuth helpers.
Provides:
- Device-code login flow (URL + user code) for onboarding
- Copilot token refresh using stored GitHub OAuth access token
- Secret payload encoding/decoding
Summary
Functions
Encode OAuth secret payload to JSON.
Run GitHub Copilot OAuth device flow.
Normalize GitHub domain input (company.ghe.com or https://company.ghe.com).
Returns hostname or nil for blank/invalid values.
Resolve a usable Copilot API key from a secret value.
Types
Functions
@spec encode_secret(oauth_secret()) :: String.t()
Encode OAuth secret payload to JSON.
@spec login_device_flow([login_opt()]) :: {:ok, oauth_secret()} | {:error, term()}
Run GitHub Copilot OAuth device flow.
Returns an OAuth secret payload map suitable for encode_secret/1.
Normalize GitHub domain input (company.ghe.com or https://company.ghe.com).
Returns hostname or nil for blank/invalid values.
Resolve a usable Copilot API key from a secret value.
- Returns
:ignorefor non-Copilot-OAuth payloads. - Returns
{:ok, api_key}for valid payloads (refreshing/persisting when needed). - Returns
{:error, reason}when payload is Copilot OAuth but unusable.