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

如何使用GitHub API筛选出用户名包含指定字符串的用户?

解决方案

1. 替换为正确的API接口

你当前调用的GET /users/{username}是单个用户的详情接口,无法批量搜索用户名包含指定字符串的用户。正确的选择是使用GitHub的搜索用户接口:GET /search/users。

2. 核心搜索参数配置

通过接口的q参数指定搜索规则,要匹配用户名包含目标字符串,语法为:{关键词} in:login。比如要找用户名包含test的用户,参数值就是test in:login。

3. 自动处理分页突破单页限制

GitHub搜索接口默认每页返回30条结果,最多支持获取前1000条数据。使用octokit的paginate方法可以自动处理分页逻辑,无需手动解析响应头的分页链接。

完整可运行代码

import { Octokit } from "@octokit/rest";

const octokit = new Octokit({
  auth: "你的GitHub访问令牌(可选,提升请求限额)",
  headers: {
    'X-GitHub-Api-Version': '2022-11-28'
  }
});

async function getUsersWithKeywordInUsername(keyword) {
  // 自动分页获取所有符合条件的用户(最多1000条)
  const userList = await octokit.paginate(
    'GET /search/users',
    {
      q: `${keyword} in:login`,
      per_page: 100, // 每页拉取最大数量,减少请求次数
      sort: 'login'
    },
    (response) => response.data.items
  );

  // 提取关键信息返回,可按需调整
  return userList.map(user => ({
    username: user.login,
    userId: user.id,
    profileUrl: user.html_url
  }));
}

// 调用示例
getUsersWithKeywordInUsername("octo")
  .then(users => console.log(users))
  .catch(error => console.error(error));

关键注意事项

  • 请求限额:未授权请求每小时最多60次,添加GitHub访问令牌后提升至5000次/小时,建议配置令牌
  • 结果上限:GitHub搜索接口仅能返回前1000条匹配结果,无法获取超出此范围的数据
  • 搜索语法扩展:可在q参数中添加更多过滤条件,比如location:Shanghai筛选指定地区用户,具体规则参考GitHub官方搜索文档

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:23:26