GitHub Authentication Provider
The GitHub Authentication Provider enables users to sign in to VeeCode DevPortal using their GitHub accounts. This integration provides a secure and familiar authentication experience.
Features
- OAuth 2.0 based authentication and SSO
- GitHub App and Github OAuth App authentication support
- Better rate limits against GitHub APIs (GitHub App)
Prerequisites
- A GitHub account with admin access to your organization
- Choose what authentication method you want to use:
- OAuth App (simpler)
- GitHub App (better rate limits and organization access)
 
Option A: OAuth App Authentication
Step 1: Create an OAuth App
- Go to GitHub Developer Settings
- Click on "New OAuth App"
- Fill in the application details:
- Application name: VeeCode DevPortal
- Homepage URL: https://your-veecode-instance.com
- Authorization callback URL: https://your-veecode-instance.com/api/auth/github/handler/frame
 
- Click "Register application"
- Note down the Client ID and generate a new Client Secret
Step 2. Configure VeeCode DevPortal
Add the following configuration to your app-config.yaml:
auth:
  environment: development
  providers:
    github:
      development:
        clientId: ${AUTH_GITHUB_CLIENT_ID}
        clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
        # Optional: Set to true to enable GitHub App authentication
        # appAuth: ${AUTH_GITHUB_APP_AUTH}
        # Optional: Set to true to require organization membership
        # requireOrgMembership: true
        # Optional: Restrict access to specific organizations
        # allowedOrganizations: [your-org]
note
Please notice that the app-config.yaml file content is defined by the Helm "values-yaml" file, right under upstream.backstage.appConfig.
Step 3: Advanced Configuration (Organization/Team Access)
To restrict access to specific GitHub organizations or teams:
# app-config.yaml
auth:
  providers:
    github:
      development:
        # ... other config ...
        allowedOrganizations: [your-org]
        # Or for specific teams:
        # allowedOrganizations: [your-org/team-name]
Option B: GitHub App Authentication (recommended)
Step 1: Create a GitHub App
For enhanced security and rate limiting, use GitHub App authentication.
- 
Click on "New Github App" 
- 
Fill in the application details: - GitHub App name: VeeCode DevPortal
- Homepage URL: https://your-veecode-instance.com
- Authorization callback URL: https://your-veecode-instance.com/api/auth/github/handler/frame
- Webhook URL: xxx
- Webhook secret: xxx
- Permissions:
- TODO
 
- Where can this GitHub App be installed: only your account or any organization
 
- 
Click "Register application" 
- 
Create a GitHub App in your organization 
- 
Install the app to your organization 
- 
Generate a private key 
- 
Update your configuration: 
# app-config.yaml
auth:
  providers:
    github:
      development:
        clientId: ${AUTH_GITHUB_CLIENT_ID}
        clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
        appId: ${AUTH_GITHUB_APP_ID}
        privateKey: ${AUTH_GITHUB_PRIVATE_KEY}
        appAuth: true
Troubleshooting
- Callback URL Mismatch: Ensure the callback URL in your GitHub OAuth app matches exactly with your VeeCode DevPortal URL.
- Insufficient Permissions: Verify that the OAuth app has the required scopes (read:user,user:email).
- Rate Limiting: Consider using GitHub App authentication for higher rate limits.
Security Considerations
- Never commit client secrets or private keys to version control
- Use environment variables for sensitive configuration
- Regularly rotate your client secrets and private keys
- Enable 2FA for your GitHub organization