in karavan-space/src/api/GithubApi.tsx [36:67]
static async pushFile(param: GithubParams, token: string, yaml: string, onSuccess: (result: {}) => void, onError: (reason: {}) => void) {
const octokit = new Octokit({auth: token});
let sha = StorageApi.getSessionSha(param);
if (sha === null || sha === undefined) {
let file = await GithubApi.getFile(octokit, param);
sha = file.status === 200 ? (file.data as any).sha : null;
}
octokit.rest.repos.createOrUpdateFileContents({
owner: param.owner,
repo: param.repo,
path: param.path,
message: param.message,
committer: {
name: param.name,
email: param.email
},
sha: (sha !== null) ? sha : undefined,
branch: param.branch,
content: window.btoa(yaml)
}).then((value: any) => {
if (value.data.content.sha) {
StorageApi.setSessionSha(param, value.data.content.sha);
}
onSuccess(value);
}).catch(reason => {
console.log("Error", reason);
onError(reason)
StorageApi.setSessionSha(param, undefined);
})
}