如何在 Google Apps 脚本中使用 UrlFetchApp 来更新 Github 存储库?
How can I use UrlFetchApp in Google Apps Script to update a Github repo?
Salutations - 我正在尝试使用 Github API 更新我在 Google Apps 脚本中生成的文件。我在 Github 页面上显示文件(图像)。不幸的是,我对 Github API 和 HTTP 请求的了解很差。
如何配置 UrlFetchApp
以将文件提交到我的 Github 存储库?我认为 this question 中表达了类似的想法,但我不知道如何将它准确地转换为 Apps 脚本,而且我发现很难针对 API 进行调试。非常感谢帮助!
发件人:
如果您想将此线程的以下 curl 命令转换为 Google Apps 脚本,
curl -i -X PUT \
-H 'Authorization: token <token_string>' \
-d '{"path": "<filename.extension>", "message": "<Commit Message>", "committer": {"name": "<Name>", "email": "<E-Mail>"}, "content": "<Base64 Encoded>", "branch": "master"}' \
https://api.github.com/repos/<owner>/<repository>/contents/<filename.extension>
收件人:
变成如下
function myFunction() {
const fileId = "###"; // Please set the file ID you want to upload here.
const content = Utilities.base64Encode(DriveApp.getFileById(fileId).getBlob().getBytes());
const url = "https://api.github.com/repos/<owner>/<repository>/contents/<filename.extension>";
const data = {"path": "<filename.extension>", "message": "<Commit Message>", "committer": {"name": "<Name>", "email": "<E-Mail>"}, "content": content, "branch": "master"};
const params = {
method: "put",
payload: JSON.stringify(data),
headers: {
authorization: `token <token_string>`,
// Accept: "application/vnd.github.v3+json" // Even when this is not used, the request works.
}
};
const res = UrlFetchApp.fetch(url, params);
console.log(res.getContentText())
}
- 关于
<filename.extension>
,比如想把sample.txt
放到[=14=目录下],请使用URL,比如https://api.github.com/repos/<owner>/<repository>/contents/sample/sample.txt
].
注:
- 在这种情况下,需要您的令牌才能使用。所以请注意这一点。
参考文献:
Salutations - 我正在尝试使用 Github API 更新我在 Google Apps 脚本中生成的文件。我在 Github 页面上显示文件(图像)。不幸的是,我对 Github API 和 HTTP 请求的了解很差。
如何配置 UrlFetchApp
以将文件提交到我的 Github 存储库?我认为 this question 中表达了类似的想法,但我不知道如何将它准确地转换为 Apps 脚本,而且我发现很难针对 API 进行调试。非常感谢帮助!
发件人:
如果您想将此线程的以下 curl 命令转换为 Google Apps 脚本,
curl -i -X PUT \
-H 'Authorization: token <token_string>' \
-d '{"path": "<filename.extension>", "message": "<Commit Message>", "committer": {"name": "<Name>", "email": "<E-Mail>"}, "content": "<Base64 Encoded>", "branch": "master"}' \
https://api.github.com/repos/<owner>/<repository>/contents/<filename.extension>
收件人:
变成如下
function myFunction() {
const fileId = "###"; // Please set the file ID you want to upload here.
const content = Utilities.base64Encode(DriveApp.getFileById(fileId).getBlob().getBytes());
const url = "https://api.github.com/repos/<owner>/<repository>/contents/<filename.extension>";
const data = {"path": "<filename.extension>", "message": "<Commit Message>", "committer": {"name": "<Name>", "email": "<E-Mail>"}, "content": content, "branch": "master"};
const params = {
method: "put",
payload: JSON.stringify(data),
headers: {
authorization: `token <token_string>`,
// Accept: "application/vnd.github.v3+json" // Even when this is not used, the request works.
}
};
const res = UrlFetchApp.fetch(url, params);
console.log(res.getContentText())
}
- 关于
<filename.extension>
,比如想把sample.txt
放到[=14=目录下],请使用URL,比如https://api.github.com/repos/<owner>/<repository>/contents/sample/sample.txt
].
注:
- 在这种情况下,需要您的令牌才能使用。所以请注意这一点。