code: def user_data(self, access_token, *args, **kwargs):
          
          try:
              user_data = super().user_data(access_token, *args, **kwargs)
              if not user_data.get('email'):
                  raise AuthFailed(self, _('You must have a public email configured in GitHub. '
                                           'Goto Settings/Profile and choose your public email'))
          except AuthFailed:
              raise AuthFailed(self, _('Sorry, you do not seem to be a public member of %s') % self.setting('NAME'))
  
          return user_data
docs: Loads user data from service