ruvector/studio/pages/api/get-deployment-commit.ts
rUv 814f595995 feat(studio): Add complete RuVector Studio application
Major additions:
- Complete Next.js studio application with 1600+ components
- Docker support (Dockerfile.combined, docker-compose.yml)
- GCP deployment documentation and benchmarks
- SQL benchmark scripts for performance testing
- Sentry integration for monitoring
- Comprehensive test suite and mocks

Studio features:
- Dashboard and admin interfaces
- Data visualization components
- Authentication and user management
- API integration with RuVector backend
- Static data and public assets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 23:04:48 +00:00

40 lines
1.2 KiB
TypeScript

import { NextApiRequest, NextApiResponse } from 'next'
async function getCommitTime(commitSha: string) {
try {
const response = await fetch(`https://github.com/supabase/supabase/commit/${commitSha}.json`, {
headers: {
Accept: 'application/json',
},
})
if (!response.ok) {
throw new Error('Failed to fetch commit details')
}
const data = await response.json()
return new Date(data.payload.commit.committedDate).toISOString()
} catch (error) {
console.error('Error fetching commit time:', error)
return 'unknown'
}
}
export default async function handler(
req: NextApiRequest,
res: NextApiResponse<{ commitSha: string; commitTime: string }>
) {
// Set cache control headers for 10 minutes so that we don't get banned by GitHub API
res.setHeader('Cache-Control', 's-maxage=600')
// Get the build commit SHA from Vercel environment variable
const commitSha = process.env.VERCEL_GIT_COMMIT_SHA || 'development'
// Only fetch commit time if we have a valid SHA
const commitTime = commitSha !== 'development' ? await getCommitTime(commitSha) : 'unknown'
res.status(200).json({
commitSha,
commitTime,
})
}