从Github API获取特定的README.md数据

3
最近,我开始尝试使用GitHub API从公共存储库获取特定数据。简而言之,我想从存储库的README.md文件中抓取特定部分。例如,我想从Facebook的React存储库的主分支中获取文档标题下的文本。是否可能?欢迎任何实现此目标的方法。谢谢!API: React README.md API Data。公共Github URL:React public repo
3个回答

12

使用API无法完成此操作,但是一种简单的方法是使用sed;请在Linux命令行上尝试以下操作:

curl https://raw.githubusercontent.com/facebook/react/master/README.md | \
    sed -n '/## Documentation/,/##/p'
这将返回文档标题和下一个标题之间的所有内容。

完美!谢谢,使用它同样有效。 - Cody

8

使用API可以非常棒地利用GitHub存储库中的任何MARKDOWN.md文件。

https://raw.githubusercontent.com/{owner}/{repo}/{branch}/README.md

上述 API 返回你 README.md 文件中的所有内容,以原始的 MarkDown 格式呈现。 API 使用图片


2
这是又一个好主意,谢谢!那么我假设你可以在获取到原始数据后解析HTML或Markdown。 - Cody

0
从存储库获取内容可以像这样完成:
curl -L \
-H 'Accept: application/vnd.github+json' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'X-Github-Api-Version: 2022-11-28' \
https://api.github.com/repos/<OWNER>/<REPO>/contents/README.md

返回的响应将是一个对象,实际数据以base64编码存储在名为content的键下。这是一个使用php的示例:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.github.com/repos/<OWNER>/<REPO>/contents/README.md");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Accept: application/vnd.github+json',
  'X-Github-Api-Version: 2022-11-28',
  'Authorization: Bearer <TOKEN>',
]);
curl_setopt($ch, CURLOPT_USERAGENT, 'my-user-agent');
$response = curl_exec($ch);
$response = \json_decode($response);
$readmeContent = base64_decode($response->content);

以上假设这是一个私有存储库,如果是这种情况,您需要生成新的私有访问令牌并设置正确的标头。当然,在上面的示例中,您还必须更改OWNERREPO

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接