You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python根据邮箱或姓名获取GitHub用户ID?

根据姓名/邮箱获取GitHub用户ID的解决方案

一、直接调用GitHub API(推荐,避免PyGitHub的潜在问题)

GitHub的Search API支持通过姓名或邮箱搜索用户,以下是Python实现代码,需要先准备GitHub个人访问令牌(PAT)(授权后可提升速率限制):

1. 根据姓名搜索用户ID

import requests

def get_github_ids_by_name(target_name, github_token):
    search_url = "https://api.github.com/search/users"
    # 构造搜索查询:匹配目标姓名
    params = {"q": f"name:{target_name}"}
    headers = {"Authorization": f"token {github_token}"}
    
    response = requests.get(search_url, params=params, headers=headers)
    if response.status_code != 200:
        return []
    
    # 提取搜索结果中的用户ID(login字段即为GitHub用户ID)
    user_items = response.json().get("items", [])
    return [user["login"] for user in user_items]

2. 根据邮箱搜索用户ID

注意:仅能搜索用户设置为公开的邮箱,私有邮箱无法通过此API查询:

import requests

def get_github_ids_by_email(target_email, github_token):
    search_url = "https://api.github.com/search/users"
    params = {"q": f"email:{target_email}"}
    headers = {"Authorization": f"token {github_token}"}
    
    response = requests.get(search_url, params=params, headers=headers)
    if response.status_code != 200:
        return []
    
    user_items = response.json().get("items", [])
    return [user["login"] for user in user_items]

二、优化PyGitHub的使用方法

如果你坚持用PyGitHub,可能之前的问题出在未授权搜索或查询语法错误,以下是修正后的代码:

from github import Github

def get_github_ids_with_pygithub(target, github_token, is_email=False):
    # 初始化授权客户端
    g = Github(github_token)
    # 构造正确的搜索查询语句
    search_query = f"email:{target}" if is_email else f"name:{target}"
    # 执行搜索并提取用户ID
    user_list = g.search_users(search_query)
    return [user.login for user in user_list]

关键注意事项

  • 速率限制:未授权请求每小时仅允许10次搜索,使用PAT授权后提升至30次/小时,高频调用需注意控制请求频率。
  • 邮箱搜索局限性:GitHub默认隐藏用户邮箱,仅公开邮箱可被搜索到;若要关联提交记录中的私有邮箱,需结合Commit API进行更复杂的查询。
  • 姓名去重:姓名可能重复,搜索结果可能返回多个用户ID,需结合其他信息(如公司、位置)进一步筛选。

内容的提问来源于stack exchange,提问作者john1994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:55:19