Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/sentry/features/temporary.py
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,8 @@ def register_temporary_features(manager: FeatureManager) -> None:
manager.add("organizations:seer-slack-workflows", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
# Enable Seer Explorer in Slack via @mentions
manager.add("organizations:seer-slack-explorer", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
# Assign Seer-created PRs to the invoking user on GitHub
manager.add("organizations:seer-assign-prs-to-user", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
# Enable search query attribute validation
manager.add("organizations:search-query-attribute-validation", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
# Enable search query builder to support explicit boolean filters
Expand Down
3 changes: 3 additions & 0 deletions src/sentry/seer/autofix/autofix.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,9 @@ def _call_autofix(
"sentry:enable_seer_coding", default=ENABLE_SEER_CODING_DEFAULT
),
"stopping_point": stopping_point.value if stopping_point else None,
"assign_pr_to_user": features.has(
"organizations:seer-assign-prs-to-user", group.organization
),
},
"preference": preference.dict() if preference else None,
},
Expand Down
8 changes: 8 additions & 0 deletions src/sentry/seer/explorer/client_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
from sentry.seer.models import SeerApiError
from sentry.seer.seer_setup import has_seer_access_with_detail
from sentry.seer.signed_seer_api import SeerViewerContext, make_signed_seer_api_request
from sentry.seer.utils import get_github_username_for_user
from sentry.users.models.user import User as SentryUser
from sentry.users.services.user.model import RpcUser
from sentry.users.services.user_option import user_option_service
Expand Down Expand Up @@ -287,13 +288,20 @@ def collect_user_org_context(
# Get IP address from http request, if provided
user_ip: str | None = request.META.get("REMOTE_ADDR") if request else None

# Resolve GitHub username for PR assignment/review
github_username = get_github_username_for_user(user, organization.id)

assign_pr_to_user = features.has("organizations:seer-assign-prs-to-user", organization)

return {
"org_slug": organization.slug,
"user_id": user.id,
"user_ip": user_ip,
"user_name": user_name,
"user_email": user.email,
"user_timezone": user_timezone,
"github_username": github_username,
"assign_pr_to_user": assign_pr_to_user,
"user_teams": user_teams,
"user_projects": user_projects,
"all_org_projects": all_org_projects,
Expand Down
Loading