您好,我使用 github API 将文件发送到存储库,我在本地的邮递员中进行了测试并且正在工作,但是当我部署到我的服务器时它总是返回 401 状态,所以我不需要创建另一个令牌,但是当我部署时再次,我遇到了同样的错误:
有人有解决办法吗?
我读到这里,没有发现任何有用的东西:
https://docs.github.com/en/rest/overview/troubleshooting-the-rest-api?apiVersion=2022-11-28
这是邮递员的电话和工作:
curl --location --request PUT 'https://api.github.com/repos/MY_ACCoUNT/JavaAsyncGraphql/contents/player/src/main/resources/example2.md'
--header '授权:不记名 mytoken'
--header '接受:application/vnd.github+json'
--header '内容类型:application/json'
--数据原始'{
"message": "tets api 文件",
“内容”:“LS0tCnRpdGxlOiAiV3JpdGUGYSBoaWdoIENUUiBtZXRhIGRlc2NyaXB0aW9uICYgdGl0bGUICmRhdGU6ICIyMDIzLTA3LTA4VDIzOjExOjM4Ljg1MVoiCnRodW1iOiAiV3JpdGVfYV9 oaWdoX0NUUL9tZXRhX2Rlc2NyaXB0aW9uXyZfdGl0bGUucG5nIgp0YWdzOiBbQ29udGVudCwgU0VPLCBNYXJrZXRpbmcsIE90aGVyc10KLS0tCgojIFdyaXRlIGEgaGlnaCBDVFIgbWV0YSBkZX NjcmlwdGlvbiAmIHRpdGxlCgpbTGlua10oaHR0CHM6Ly90d2l0dGVyLmNvbS9oZXlsb3Zpc2gvc3RhdHVzLzE2MzgxNjQ0MDM2NTU2OTYZODQpCioqRHVlIHRvIG5ldyB0d2l0dGVyIHBvbGlje SB5b3UgbmVlZCB0byBsb2dpbiB0byB2aXN1YWxpemUgdGhlIHRocmVhZCoqCg==”
}'
在我的程序中:
var markdown_encode = btoa(markdown);
var headers = {
'Authorization': 'Bearer mytoken',
'Accept': 'application/vnd.github+json'
}
var body = {
"message": "adding " + filename,
"content": markdown_encode
}
const url = `${url_base}${repoName}/contents/${pathFile}/${filename}.md`;
fetch(url, {
method: 'PUT',
headers,
body: JSON.stringify(body)
})
.then(response => response.json())
.then(data => {
const sha = data.content.sha;
console.log(sha);
alert("success ith a sha " + sha);
})
.catch(error => {
console.log(error);
alert(JSON.stringify(error.message))
});
问题是当你在存储库中提交 github-api 的令牌时,因为 Github 会扫描你的存储库,当它找到令牌时,出于安全原因,github 会将其过期。