



























从上一篇我们了解到了如何安装 n8n
那么这节课我们尝试从github的个人仓库获取某个文件的内容

目标如下
content/business/1.how-to-use-money.mdx


在gitrhub 个人 设置选项 申请 GitHub Personal Access Token (Classic)


在第二步之前我们点击➕,会进行选择github节点,我们先获取文件列表所以选择 List files



content 的文件夹里面所有文件和子文件夹的列表。content 目录下的一个文件或文件夹。
Credential to connect with (连接凭证):GitHub account 把我们刚申请的填入进去

File - 操作的 GitHub 资源类型是“文件”。List - 资源执行的操作是“列出”。结合起来就是“列出文件”。Shiinama - 指定了目标仓库是属于 Shiinama 这个用户或组织的。blog - 指定了仓库的名字是 blog。content - 指定了要列出内容的具体路径是仓库根目录下的 content 文件夹。这个仓库的名称结合起来就是我的项目地址 https://github.com/Shiinama/blog
我们来尝试执行一下就会看到
已经成功列出了仓库的文件目录

d1-and-drizzle.mdx 文件)。同理在右上角添加github的 list files




左侧的是我们上一个获取content目录列表请求到的结果
中间的参数填写完, 点击 Execute Step 会执行显示结果在右侧
点击左侧path 选择复制


点击Execute step之后 我们可以在右侧得到显示的结果

这一步之后,我们得到的就是目录下所有mdx文件格式的文章了之后我们需要进行IF过滤空值
Path 为我们需要得到的内容, 对其进行IF判断 确保path的参数为 .mdx结尾 判空
.mdx 结尾?”或者“文件类型是否是 file?”。true 路径输出。从图上看,目前 true 路径没有连接任何节点。false 路径输出。在您的流程中,数据流从 false 路径继续向下走。


IF操作作为获取.mdx 防止.mdx内容为空的一层
IF的True节点进行连接下一个Code1节点
false 路径传来的文件数据。处理和准备 URL。例如:url 或 _links.self 字段。?ref=main 部分,生成一个干净的、可用于请求原始文件内容的 URL。


左侧是待处理,

右侧是处理好的

代码如下
// n8n Code Node
for (const item of items) {
// --- 第1部分:处理顶层的 'url' 字段 (和之前一样) ---
const topLevelUrl = item.json.url;
if (typeof topLevelUrl === 'string' && topLevelUrl.includes('?')) {
// 创建一个新的 'cleanUrl' 字段
item.json.cleanUrl = topLevelUrl.split('?')[0];
} else {
item.json.cleanUrl = topLevelUrl;
}
// --- 第2部分:【新增】处理嵌套的 '_links.self' 字段 ---
// 先安全地检查 _links 对象和 _links.self 字段是否存在
if (item.json._links && typeof item.json._links.self === 'string') {
const selfUrl = item.json._links.self;
// 同样检查它是否包含 '?'
if (selfUrl.includes('?')) {
// 如果包含,就直接修改(覆盖)原始 `_links.self` 字段的值
item.json._links.self = selfUrl.split('?')[0];
}
}
}
return items;Accept: application/vnd.github.raw 的 Header,来直接获取 Markdown 的源文本。

URL里面填写下面的self


我们需要添加请求头,让github了解到我们的请求的是私有仓库和响应格式

Value里面需要填写我们申请的Key
格式:
token key //记得中间有空格请求头名称 (Name): Accept 请求头
内容 (**application/vnd.github.v3+json) 分解:**
application/vnd.github:这是一个特定的媒体类型 (Media Type),表示这是针对 GitHub API 的请求。v3:这部分指定了你希望使用 REST API 的 V3 版本。,可以确保你的应用不会因为未来 GitHub API 的版本更新而意外中断。+json:这表示你希望服务器返回的数据是 JSON 格式。请求头名称 (Name):Accept
请求头值 (Value):application/vnd.github.raw
核心目的:直接获取文件的原始(Raw)内容。
执行 Execute step 右侧可以读取到文件的内容了

原文用markdown写的,输出原格式内容了
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。