File size: 1,580 Bytes
151f8f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { json } from "@remix-run/node";
import type { LoaderFunctionArgs } from "@remix-run/node";

export async function loader({ request }: LoaderFunctionArgs) {
  // Only allow this in development or if a special debug header is set
  const isDev = process.env.NODE_ENV === "development";
  const debugHeader = request.headers.get("x-debug-token");
  const debugToken = process.env.DEBUG_TOKEN;
  
  if (!isDev && (!debugToken || debugHeader !== debugToken)) {
    throw new Response("Not Found", { status: 404 });
  }

  // Safe environment info (no secrets)
  const envInfo = {
    NODE_ENV: process.env.NODE_ENV,
    GITHUB_APP_ID: process.env.GITHUB_APP_ID ? 'βœ… Set' : '❌ Missing',
    GITHUB_APP_NAME: process.env.GITHUB_APP_NAME ? 'βœ… Set' : '❌ Missing',
    GITHUB_APP_PRIVATE_KEY: process.env.GITHUB_APP_PRIVATE_KEY ? 'βœ… Set' : '❌ Missing',
    GITHUB_APP_CLIENT_ID: process.env.GITHUB_APP_CLIENT_ID ? `βœ… Set (${process.env.GITHUB_APP_CLIENT_ID?.substring(0, 8)}...)` : '❌ Missing',
    GITHUB_APP_CLIENT_SECRET: process.env.GITHUB_APP_CLIENT_SECRET ? 'βœ… Set' : '❌ Missing',
    GITHUB_WEBHOOK_SECRET: process.env.GITHUB_WEBHOOK_SECRET ? 'βœ… Set' : '❌ Missing',
    GITHUB_CALLBACK_URL: process.env.GITHUB_CALLBACK_URL || '❌ Missing',
    SESSION_SECRET: process.env.SESSION_SECRET ? 'βœ… Set' : '❌ Missing',
  };

  return json({
    timestamp: new Date().toISOString(),
    environment: envInfo,
    request: {
      url: request.url,
      method: request.method,
      headers: Object.fromEntries(request.headers.entries()),
    }
  });
}