mirror of
https://gitbruv.vercel.app/api/git/bruv/gitbruv.git
synced 2025-12-20 23:24:09 +01:00
fix?
This commit is contained in:
parent
c2e82d8299
commit
a84c655c58
2 changed files with 44 additions and 16 deletions
43
app/api/debug/r2/route.ts
Normal file
43
app/api/debug/r2/route.ts
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { r2List, r2Get } from "@/lib/r2";
|
||||
import { db } from "@/db";
|
||||
import { users } from "@/db/schema";
|
||||
import { eq } from "drizzle-orm";
|
||||
import { getRepoPrefix } from "@/lib/r2-fs";
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const { searchParams } = new URL(request.url);
|
||||
const username = searchParams.get("username");
|
||||
const repo = searchParams.get("repo");
|
||||
|
||||
if (!username || !repo) {
|
||||
return NextResponse.json({ error: "Missing username or repo" }, { status: 400 });
|
||||
}
|
||||
|
||||
const user = await db.query.users.findFirst({
|
||||
where: eq(users.username, username),
|
||||
});
|
||||
|
||||
if (!user) {
|
||||
return NextResponse.json({ error: "User not found" }, { status: 404 });
|
||||
}
|
||||
|
||||
const repoPrefix = getRepoPrefix(user.id, `${repo}.git`);
|
||||
const allKeys = await r2List(repoPrefix + "/");
|
||||
|
||||
const head = await r2Get(`${repoPrefix}/HEAD`);
|
||||
const config = await r2Get(`${repoPrefix}/config`);
|
||||
|
||||
const refsHeadsMain = await r2Get(`${repoPrefix}/refs/heads/main`);
|
||||
const refsMaster = await r2Get(`${repoPrefix}/refs/heads/master`);
|
||||
|
||||
return NextResponse.json({
|
||||
repoPrefix,
|
||||
totalKeys: allKeys.length,
|
||||
keys: allKeys.slice(0, 100),
|
||||
head: head?.toString(),
|
||||
config: config?.toString(),
|
||||
"refs/heads/main": refsHeadsMain?.toString(),
|
||||
"refs/heads/master": refsMaster?.toString(),
|
||||
});
|
||||
}
|
||||
|
|
@ -36,10 +36,7 @@ async function verifyPassword(password: string, hash: string): Promise<boolean>
|
|||
}
|
||||
|
||||
async function authenticateUser(authHeader: string | null): Promise<{ id: string; username: string } | null> {
|
||||
console.log("[Git Auth] Starting authentication");
|
||||
|
||||
if (!authHeader || !authHeader.startsWith("Basic ")) {
|
||||
console.log("[Git Auth] No auth header or not Basic auth");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -47,10 +44,7 @@ async function authenticateUser(authHeader: string | null): Promise<{ id: string
|
|||
const credentials = Buffer.from(base64Credentials, "base64").toString("utf-8");
|
||||
const [email, password] = credentials.split(":");
|
||||
|
||||
console.log("[Git Auth] Email:", email);
|
||||
|
||||
if (!email || !password) {
|
||||
console.log("[Git Auth] Missing email or password");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -59,8 +53,6 @@ async function authenticateUser(authHeader: string | null): Promise<{ id: string
|
|||
where: eq(users.email, email),
|
||||
});
|
||||
|
||||
console.log("[Git Auth] User found:", !!user);
|
||||
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
|
@ -69,24 +61,17 @@ async function authenticateUser(authHeader: string | null): Promise<{ id: string
|
|||
where: eq(accounts.userId, user.id),
|
||||
});
|
||||
|
||||
console.log("[Git Auth] Account found:", !!account, "providerId:", account?.providerId, "hasPassword:", !!account?.password);
|
||||
|
||||
if (!account?.password) {
|
||||
return null;
|
||||
}
|
||||
|
||||
console.log("[Git Auth] Password hash format:", account.password.substring(0, 20) + "...");
|
||||
|
||||
const valid = await verifyPassword(password, account.password);
|
||||
console.log("[Git Auth] Password valid:", valid);
|
||||
|
||||
if (!valid) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return { id: user.id, username: user.username };
|
||||
} catch (err) {
|
||||
console.error("[Git Auth] Error:", err);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue