Spaces:
Build error
Build error
| import { NextRequest, NextResponse } from 'next/server'; | |
| import simpleGit from 'simple-git'; | |
| import fs from 'fs/promises'; | |
| import path from 'path'; | |
| export async function POST(req: NextRequest) { | |
| const { repo, branch } = await req.json(); | |
| const githubToken = process.env.GITHUB_TOKEN; | |
| const blabladorApiKey = process.env.BLABLADOR_API_KEY; | |
| if (!githubToken) { | |
| console.log('GITHUB_TOKEN environment variable is not set. Please set it in the container logs.'); | |
| return NextResponse.json({ error: 'GitHub token is not configured. Please set the GITHUB_TOKEN environment variable.' }, { status: 500 }); | |
| } | |
| if (!blabladorApiKey) { | |
| console.log('BLABLADOR_API_KEY environment variable is not set. Please set it in the container logs.'); | |
| } | |
| if (!repo || !branch) { | |
| return NextResponse.json({ error: 'Repository and branch are required.' }, { status: 400 }); | |
| } | |
| const repoUrl = `https://${githubToken}@github.com/${repo}.git`; | |
| const tmpDir = '/tmp/github-upload'; | |
| try { | |
| await fs.rm(tmpDir, { recursive: true, force: true }); | |
| await fs.mkdir(tmpDir, { recursive: true }); | |
| const git = simpleGit(tmpDir); | |
| await git.init(); | |
| await fs.cp(process.cwd(), tmpDir, { recursive: true }); | |
| await git.add('.'); | |
| await git.commit('Initial commit'); | |
| await git.addRemote('origin', repoUrl); | |
| await git.push('origin', `HEAD:refs/heads/${branch}`, ['--force']); | |
| return NextResponse.json({ message: 'Successfully uploaded to GitHub.' }); | |
| } catch (error: any) { | |
| console.error('GitHub upload failed:', error); | |
| return NextResponse.json({ error: error.message }, { status: 500 }); | |
| } | |
| } | |