最近,我开始尝试使用GitHub API从公共存储库获取特定数据。简而言之,我想从存储库的README.md文件中抓取特定部分。例如,我想从Facebook的React存储库的主分支中获取文档标题下的文本。是否可能?欢迎任何实现此目标的方法。谢谢!API: React README.md API Data。公共Github URL:React public repo。
使用API无法完成此操作,但是一种简单的方法是使用sed
;请在Linux命令行上尝试以下操作:
curl https://raw.githubusercontent.com/facebook/react/master/README.md | \
sed -n '/## Documentation/,/##/p'
这将返回文档标题和下一个标题之间的所有内容。使用API可以非常棒地利用GitHub存储库中的任何MARKDOWN.md文件。
https://raw.githubusercontent.com/{owner}/{repo}/{branch}/README.md
上述 API 返回你 README.md 文件中的所有内容,以原始的 MarkDown 格式呈现。 API 使用图片
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);
OWNER
和REPO
。