Skip to content
Back to skills

Github Raw Fetch

ASecurity

当用户提供 GitHub 文件页面链接,或希望读取某个仓库中的源码、配置、README、Markdown、docs 内容时,使用此技能。技能支持将 `github.com/<owner>/<repo>/blob/<ref>/...` 转换为 `raw.githubusercontent.com` 链接并获取内容;读取仓库 docs 时先列出仓库根目录、按真实结构定位 `docs/` 目录(语言子目录、索引),不要假设所有仓库都有固定目录或 `agent_router.md`(该文件仅当根目录确实存在时才可选参考)。

  • 32 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
documentationbashgitapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add kali20gakki/msAgent --skill github-raw-fetch --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Github Raw Fetch?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Github Raw Fetch
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kali20gakki-github-raw-fetch/badge)](https://www.skillsdirectory.com/skills/kali20gakki-github-raw-fetch)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: github-raw-fetch
description: 当用户提供 GitHub 文件页面链接,或希望读取某个仓库中的源码、配置、README、Markdown、docs 内容时,使用此技能。技能支持将 `github.com/<owner>/<repo>/blob/<ref>/...` 转换为 `raw.githubusercontent.com` 链接并获取内容;读取仓库 docs 时先列出仓库根目录、按真实结构定位 `docs/` 目录(语言子目录、索引),不要假设所有仓库都有固定目录或 `agent_router.md`(该文件仅当根目录确实存在时才可选参考)。
---

# GitHub Raw Content 与仓库文档读取

## 1. 技能目标

当用户要求读取 GitHub 上的源码、配置、README、Markdown 或 docs 内容时,按下面的顺序执行:

1. 先识别仓库、`ref`、目标文件或目标主题
2. 需要定位文档时,先列出仓库根目录,找到真实存在的文档目录与入口
3. 按实际目录结构逐层定位目标文件(不猜路径、不假设固定布局)
4. 将最终路径转换成 raw 链接
5. 使用 `curl` 获取文件内容

## 2. 适用范围

- 用户提供的是 GitHub 文件页面链接,例如:
  - `https://github.com/<owner>/<repo>/blob/<ref>/<path-to-file>`
- 用户提供的是 raw 链接,例如:
  - `https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<path-to-file>`
- 用户要读取的是 README、源码、配置、脚本、JSON、YAML、Markdown 等纯文本文件
- 用户要读取的是某个仓库的 docs、文档入口、FAQ、指南、设计文档、API 文档
- 用户只给出了仓库和想看的文档主题,但真实 docs 路径需要按仓库实际结构定位

以下场景不属于本技能的直接处理范围:

- 仓库首页、目录页、Pull Request、Issue、Commit 页面本身
- 需要递归遍历整个仓库或批量抓取大量文件
- 明显的二进制文件,例如图片、压缩包、模型权重

## 3. 核心规则

### 3.1 标准 GitHub 文件页转 raw 链接

如果输入链接满足:

```text
https://github.com/<owner>/<repo>/blob/<ref>/<path-to-file>
```

则转换为:

```text
https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<path-to-file>
```

转换时必须遵守以下规则:

1. 将域名 `github.com` 替换为 `raw.githubusercontent.com`
2. 删除路径中的 `/blob/`
3. 其余路径保持不变
4. 分支、tag、commit SHA 等 `<ref>` 必须原样保留

### 3.2 已是 raw 链接

如果用户提供的本身就是 `raw.githubusercontent.com` 链接,则不要重复转换,直接使用该链接。

### 3.3 读取仓库 docs:先列目录,按真实结构定位

`agent_router.md` **不是前置依赖,不是所有仓库都有该文件**。读取仓库文档的默认流程是:

1. 先列出目标仓库根目录(见 §3.5 的目录探查方式),确认:
   - 根 `README.md` / `README_EN.md` 是否存在;
   - 文档目录的真实名称与位置:`docs/`、`doc/`、`documentation/`、`docs_zh/` 等都以列表结果为准;
2. 进入文档目录后按实际结构继续定位:语言子目录(如 `docs/zh/`、`docs/en/`,以实际为准)→ 索引文件(`README.md`、`index.md` 等)→ 目标文档;
3. 每层都用目录列表确认,**不要凭经验猜测路径**;
4. 找不到 `docs/` 等文档目录时,退化为读取根 README 或仓库内与主题相关的 Markdown,并如实说明所依据的结构。

### 3.4 可选加速:`agent_router.md` 仅在确实存在时使用

如果根目录列表里**确实存在** `agent_router.md`(部分仓库用它声明文档目录结构与入口映射),可先读取它辅助定位:

```text
https://raw.githubusercontent.com/<owner>/<repo>/<ref>/agent_router.md
```

规则:

1. `agent_router.md` 必须与目标文档使用相同的仓库和相同的 `ref`
2. 该文件缺失或返回 404 时**不要阻塞**:直接回到 §3.3 按真实目录结构继续定位,并说明“未发现 router,按实际 docs 目录定位”
3. router 中的目录映射只作提示,最终以目录列表确认的真实路径为准

### 3.5 目录探查与内容获取方式

- 目录列表使用 GitHub Contents API(单层、一次一个目录):

```bash
curl.exe -s -L "https://api.github.com/repos/<owner>/<repo>/contents/<path>?ref=<ref>"
```

`<path>` 为空时列出仓库根目录。响应为 JSON 数组,逐项含 `name`、`type`(file/dir)、`path`、`html_url`、`download_url`。

- 获取文件正文时使用 raw 链接:

```bash
curl.exe -L "https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<path-to-file>"
```

不要依赖 GitHub HTML 页面渲染结果作为文件正文。

### 3.6 docs 路径拼接原则

在按目录定位时,重点识别这些信息:

- docs 实际根目录在哪里
- 是否存在多语言目录
- 逻辑名称(如 `quick_start`、`user_guide`)对应的真实子目录
- 文档入口是 `README.md`、`index.md` 还是其他文件

最终原则:

1. 先列目录,再决定路径;路径以列表结果为准,而不是以仓库默认习惯为准
2. 不确定时给出已确认的目录片段,不要硬造不存在的路径

## 4. 标准操作流程

1. 识别用户给的是 GitHub 文件页链接、raw 链接,还是“读取某仓 docs”的意图
2. 从链接或上下文中提取 `<owner>`、`<repo>`、`<ref>`、目标路径或目标主题
3. 如果目标属于 docs 体系,先列出仓库根目录定位真实文档目录(可选:根目录存在 `agent_router.md` 时先读它加速)
4. 按真实目录结构定位目标文件
5. 将最终路径转换为 raw 链接
6. 使用 `curl` 获取内容
7. 将结果返回给用户:
   - 用户想快速了解内容时,优先给摘要和关键片段
   - 用户明确要求原文时,再返回全文或尽量完整展示
   - 必要时附上最终 raw URL,方便复用

## 5. 推荐命令模板

### 5.1 列出仓库根目录

```bash
curl.exe -s -L "https://api.github.com/repos/<owner>/<repo>/contents/?ref=<ref>"
```

### 5.2 列出文档子目录

```bash
curl.exe -s -L "https://api.github.com/repos/<owner>/<repo>/contents/docs/zh?ref=<ref>"
```

### 5.3 读取真实文档或普通文件

```bash
curl.exe -L "https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<actual-path>"
```

## 6. 示例(Ascend 官方仓,均真实存在)

### 示例 1:标准 GitHub 文件页转 raw

输入:

```text
https://github.com/Ascend/msprof/blob/master/README.md
```

转换后:

```text
https://raw.githubusercontent.com/Ascend/msprof/master/README.md
```

再使用:

```bash
curl.exe -L "https://raw.githubusercontent.com/Ascend/msprof/master/README.md"
```

### 示例 2:读取某仓库的文档(按真实 docs 目录定位)

输入:

```text
请读取 Ascend/msprof 仓库中关于交付文件字段含义的说明文档
```

正确流程:

1. 列出根目录:`https://api.github.com/repos/Ascend/msprof/contents/?ref=master`,确认存在 `docs/`、`README.md` 等
2. 列出 `docs/zh/user_guide`:确认真实文件名(以列表结果为准),例如存在 `profile_data_file_references.md`
3. 读取真实路径:

```bash
curl.exe -L "https://raw.githubusercontent.com/Ascend/msprof/master/docs/zh/user_guide/profile_data_file_references.md"
```

说明:`Ascend/msprof` 根目录存在 `agent_router.md`,读取时可先读它作为路径提示;但流程不以它为前提,按 §3.3/§3.4 处理。

### 示例 3:没有 `agent_router.md` 的仓库

输入:

```text
请读取 Ascend/community 仓库的文档目录结构
```

正确流程:直接列出根目录并逐层确认文档目录,例如:

```bash
curl.exe -s -L "https://api.github.com/repos/Ascend/community/contents/?ref=master"
```

然后按列表结果继续定位。不要假设该仓存在 `agent_router.md`,也不要以某个固定 `docs/` 路径直接拼接。

## 7. 错误处理与约束

- 如果链接不是 GitHub 文件页或 raw 文件链接,要明确告知该 URL 不符合本技能处理模式
- 如果列表或 raw 返回 404:
  - 先确认仓库、`ref` 是否正确
  - 若目录确实不存在,报告已确认的目录列表片段,不要硬造路径
- 如果 `agent_router.md` 返回 404:说明“未发现 router”,回到真实 docs 目录结构继续定位,不要中断
- 如果返回的是 HTML 而不是文本,说明抓取方式不对,优先检查是否误用了 GitHub 页面链接而非 raw 链接
- 如果目标内容明显为二进制或体积过大,不要强行按纯文本展开;应告知用户文件类型,并优先返回链接或简要说明
- Contents API 未认证时有访问限额,尽量少列表、多直接读取已知文件

## 8. 输出建议

- 如果用户是为了阅读或分析文件,优先提炼关键内容,而不是机械粘贴全文
- 如果用户明确要求 raw content 或原文,再按需返回完整文本
- 读取 docs 时可以顺带说明最终路径是如何按目录结构定位出来的
- 分析代码或配置时,可顺带说明关键函数、入口、配置项或用途

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in documentation →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.