fix(git): improve error reporting and resolve correct repo in GET endpoint
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { requireAuth } from '~/server/utils/auth'
|
import { requireAuth } from '~/server/utils/auth'
|
||||||
import { resolveRepo, ensureRepo } from '~/server/utils/giteaApi'
|
import { resolveRepo } from '~/server/utils/giteaApi'
|
||||||
|
import { prisma } from '~/server/utils/prisma'
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
const user = requireAuth(event)
|
const user = requireAuth(event)
|
||||||
@@ -9,9 +10,12 @@ export default defineEventHandler(async (event) => {
|
|||||||
throw createError({ statusCode: 400, message: 'Canvas ID is required' })
|
throw createError({ statusCode: 400, message: 'Canvas ID is required' })
|
||||||
}
|
}
|
||||||
|
|
||||||
// We need to resolve the repo. For now, assume it's a personal repo.
|
const canvas = await prisma.canvas.findUnique({ where: { id: canvasId } })
|
||||||
// In a real scenario, we'd check the DB to see if it's a group canvas.
|
|
||||||
const opts = { username: user.username }
|
const opts = canvas
|
||||||
|
? { username: user.username, groupId: canvas.groupId, isPublic: canvas.isPublic }
|
||||||
|
: { username: user.username }
|
||||||
|
|
||||||
const { owner, repo } = resolveRepo(opts)
|
const { owner, repo } = resolveRepo(opts)
|
||||||
|
|
||||||
const config = useRuntimeConfig()
|
const config = useRuntimeConfig()
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ export async function ensureRepo(owner: string, repoName: string, description =
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
} catch (e) {
|
} catch (e: any) {
|
||||||
console.error(`Gitea ensureRepo(${owner}/${repoName}) error:`, e)
|
console.error(`Gitea ensureRepo(${owner}/${repoName}) error:`, e.data || e)
|
||||||
return false
|
throw new Error(`ensureRepo failed: ${e.message}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,9 +103,9 @@ export async function giteaPutFile(path: string, content: string, message: strin
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
} catch (e) {
|
} catch (e: any) {
|
||||||
console.error('Gitea putFile error:', e)
|
console.error('Gitea putFile error:', e.data || e)
|
||||||
return false
|
throw new Error(`giteaPutFile failed: ${e.message}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user