Skip to content

Add provider-agnostic OAuth support for Google login via PropelAuth#178

Draft
Copilot wants to merge 5 commits intodevelopfrom
copilot/add-google-login-with-propel
Draft

Add provider-agnostic OAuth support for Google login via PropelAuth#178
Copilot wants to merge 5 commits intodevelopfrom
copilot/add-google-login-with-propel

Conversation

Copy link

Copilot AI commented Feb 1, 2026

What does the PR do?

PropelAuth manages OAuth providers (Slack, Google, etc.) server-side. Backend had hardcoded Slack-specific user ID handling (oauth2|slack|T1Q7936BH-{id}). This prevented adding Google login without code changes.

Changes:

  • New OAuth utilities module (common/utils/oauth_providers.py)

    • Provider detection, user ID normalization, Slack ID extraction
    • Handles any PropelAuth OAuth format: oauth2|{provider}|{identifier}
    • 34 unit tests with edge case coverage
  • Updated 8 backend files to use provider-agnostic utilities:

    • db/firestore.py, services/users_service.py, common/utils/firebase.py
    • services/volunteers_service.py, api/teams/teams_service.py, api/messages/messages_service.py
    • scripts/add_new_praise_columns.py, services/problem_statements_service.py
  • Documentation (docs/OAUTH_SETUP.md)

    • PropelAuth dashboard configuration steps
    • Google Cloud Console OAuth setup

Result: Google (or any OAuth provider) can now be enabled via PropelAuth dashboard without backend changes. Existing Slack login unaffected.

# Before: Hardcoded Slack handling
SLACK_PREFIX = "oauth2|slack|T1Q7936BH-"
slack_user_id = f"{SLACK_PREFIX}{user_id}"

# After: Provider-agnostic
from common.utils.oauth_providers import normalize_slack_user_id, is_oauth_user_id
normalized_id = normalize_slack_user_id(user_id) if not is_oauth_user_id(user_id) else user_id
# Handles: oauth2|slack|..., oauth2|google-oauth2|..., oauth2|github|..., etc.

Type of change

  • Breaking Change
  • Bug Fix
  • New Feature

Linked Issue

Related Issue: Add Google login via propel auth

Make sure you have

  • Pulled from the default branch
  • Documented your changes
  • Linked the Issue
  • Appointed a reviewer (if any)
Original prompt

This section details on the original issue you should resolve

<issue_title>Add Google login via propel auth</issue_title>
<issue_description>Thinking about the best practices with propel auth. We already have slack login. I would like to add the ability to log in with Google as well. Please make all changes as a senior software engineer after you think about it step by step</issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 4 commits February 1, 2026 00:44
…le login support

Co-authored-by: gregv <6913307+gregv@users.noreply.github.com>
Co-authored-by: gregv <6913307+gregv@users.noreply.github.com>
Co-authored-by: gregv <6913307+gregv@users.noreply.github.com>
Copilot AI changed the title [WIP] Add Google login via propel auth Add provider-agnostic OAuth support for Google login via PropelAuth Feb 1, 2026
Copilot AI requested a review from gregv February 1, 2026 00:50
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.

Add Google login via propel auth

2 participants