我正在尝试编写一种从路径获取文件并将它们上传到 GitHub 存储库的方法。这些文件必须保持完整和独立(不能压缩它们)。这是我到目前为止所得到的:
addFiles(branch) {
const filePath = this.filePath
fs.readdirSync(filePath).forEach((file, index) => {
if (file.match('.txt')) {
const fileData = fs.readFileSync(path.resolve(filePath, file));
this.octokit.repos.createOrUpdateFile({
owner,
repo,
path: `test/${file}`,
branch,
message: `Commit ${index}`,
content: encode(fileData)
})
.catch(err => console.log(err))
}
})
}
这在一定程度上有效,但它只会上传一个文件,然后失败并出现以下错误:
PUT /path/to/repo/contents/test/example.txt - 201 in 1224ms
PUT /path/to/repo/contents/test/example-2.txt - 409 in 1228ms
{ HttpError: is at 90db2dadca8d061e77ca06fe7196197ada6f6687 but expected b7933883cbed4ff91cc2762e24c183b797db0b74
at response.text.then.message (/project/node_modules/@octokit/request/dist-node/index.js:66:23)
即使这工作正常,它仍然不是理想的,因为这个项目可能会扩展到一次上传数百个文件的地步,有没有办法只上传一个目录或每次提交上传多个文件?做不到这一点,谁能解决我的错误?