MCPcopy Create free account
hub / github.com/Microck/opencode-studio / ensureGitHubRepo

Function ensureGitHubRepo

server/index.js:2075–2112  ·  view source on GitHub ↗
(token, repoName)

Source from the content-addressed store, hash-verified

2073}
2074
2075async function ensureGitHubRepo(token, repoName) {
2076 const [owner, repo] = repoName.split('/');
2077
2078 const response = await fetch(`https://api.github.com/repos/${owner}/${repo}`, {
2079 headers: { 'Authorization': `Bearer ${token}` }
2080 });
2081
2082 if (response.ok) {
2083 return await response.json();
2084 }
2085
2086 if (response.status === 404) {
2087 const createRes = await fetch(`https://api.github.com/user/repos`, {
2088 method: 'POST',
2089 headers: {
2090 'Authorization': `Bearer ${token}`,
2091 'Content-Type': 'application/json'
2092 },
2093 body: JSON.stringify({
2094 name: repo,
2095 private: true,
2096 description: 'OpenCode Studio backup',
2097 auto_init: true
2098 })
2099 });
2100
2101 if (createRes.ok) {
2102 await new Promise(r => setTimeout(r, 2000));
2103 return await createRes.json();
2104 }
2105
2106 const err = await createRes.text();
2107 throw new Error(`Failed to create repo: ${err}`);
2108 }
2109
2110 const err = await response.text();
2111 throw new Error(`Failed to check repo: ${err}`);
2112}
2113
2114const RESERVED_WIN_NAMES = ['con', 'prn', 'aux', 'nul', 'com0', 'com1', 'com2', 'com3', 'com4', 'com5', 'com6', 'com7', 'com8', 'com9', 'lpt0', 'lpt1', 'lpt2', 'lpt3', 'lpt4', 'lpt5', 'lpt6', 'lpt7', 'lpt8', 'lpt9'];
2115

Callers 1

performGitHubBackupFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected