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

如何使用GitHub API列出指定仓库目录下的所有文件名?

GitHub仓库指定目录文件名查询方案

方案1:使用官方Contents API(优先推荐)

GitHub原生提供了直接查询指定路径内容的接口,无需拉取全量仓库目录结构,请求格式如下:
https://api.github.com/repos/{用户名}/{仓库名}/contents/{目标目录相对路径}?ref={分支名}

  • 参数替换示例:要查询master分支下src/utils目录的内容,请求为:
    https://api.github.com/repos/yourname/yourrepo/contents/src/utils?ref=master
  • 返回结果中type为file的项即为目录下的文件,name字段对应文件名,type为dir的是子目录。
  • 若目录下内容超过1000条,可搭配page和per_page参数分页拉取。

方案2:基于现有全量树API本地过滤

如果你需要沿用你提到的递归拉取全量目录树的API,可通过本地过滤得到目标目录内容,操作步骤如下:

  1. 调用https://api.github.com/repos/username/repo-name/git/trees/master?recursive=1获取仓库全量目录树
  2. 对返回的tree数组按目标目录前缀做过滤,排除深层嵌套的子目录内容即可

JS过滤参考代码:

// 替换为你的目标目录,末尾不要加斜杠
const targetDir = 'src/utils'
const targetPathLevel = targetDir.split('/').length
const targetDirContent = allTree.tree.filter(item => {
  const pathSegments = item.path.split('/')
  // 匹配前缀+层级等于目标目录下一级
  return pathSegments.slice(0, targetPathLevel).join('/') === targetDir 
    && pathSegments.length === targetPathLevel + 1
})

通用注意事项

  • 私有仓库请求时需要在请求头中携带个人访问令牌:Authorization: token 你的PAT
  • 目录路径大小写敏感,需要和仓库内实际路径完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:15:02