import logging from rest_framework.response import Response from rest_framework.permissions import AllowAny from rest_framework.exceptions import NotFound from django.utils.translation import gettext as _ from pingcap_sso.api.base import Endpoint from pingcap_sso.models import TiDBContributor logger = logging.getLogger(__name__) class ContributorDetailEndpoint(Endpoint): permission_classes = (AllowAny, ) def get(self, request, github_id, *args, **kwargs): try: contributor = TiDBContributor.objects.get_contributor(github_id) except TiDBContributor.DoesNotExist: raise NotFound return Response({ 'detail': _('success'), 'data': { 'github_id': contributor.github_id, 'github_username': contributor.github_username, 'pr_count': contributor.pr_count, } })