chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { randomUUID } from 'node:crypto'
|
||||
|
||||
export const AUTHOR_NAME = 'Sandbox Bot'
|
||||
export const AUTHOR_EMAIL = 'sandbox@example.com'
|
||||
export const USERNAME = 'git'
|
||||
export const PASSWORD = 'token'
|
||||
export const HOST = 'example.com'
|
||||
export const PROTOCOL = 'https'
|
||||
|
||||
const BASE_DIR = '/tmp/test-git'
|
||||
|
||||
export async function createBaseDir(sandbox: any) {
|
||||
const baseDir = `${BASE_DIR}/${randomUUID()}`
|
||||
await sandbox.commands.run(`rm -rf "${baseDir}" && mkdir -p "${baseDir}"`)
|
||||
return baseDir
|
||||
}
|
||||
|
||||
export async function cleanupBaseDir(sandbox: any, baseDir: string) {
|
||||
await sandbox.commands.run(`rm -rf "${baseDir}"`)
|
||||
}
|
||||
|
||||
export async function createRepo(sandbox: any, baseDir: string) {
|
||||
const repoPath = `${baseDir}/repo`
|
||||
await sandbox.git.init(repoPath, { initialBranch: 'main' })
|
||||
return repoPath
|
||||
}
|
||||
|
||||
export async function createRepoWithCommit(sandbox: any, baseDir: string) {
|
||||
const repoPath = await createRepo(sandbox, baseDir)
|
||||
await sandbox.files.write(`${repoPath}/README.md`, 'hello\n')
|
||||
await sandbox.git.add(repoPath)
|
||||
await sandbox.git.commit(repoPath, 'Initial commit', {
|
||||
authorName: AUTHOR_NAME,
|
||||
authorEmail: AUTHOR_EMAIL,
|
||||
})
|
||||
return repoPath
|
||||
}
|
||||
|
||||
export async function startGitDaemon(sandbox: any, baseDir: string) {
|
||||
const remotePath = `${baseDir}/remote.git`
|
||||
await sandbox.commands.run(
|
||||
`git init --bare --initial-branch=main "${remotePath}"`
|
||||
)
|
||||
const port = 9418 + Math.floor(Math.random() * 1000)
|
||||
const handle = await sandbox.commands.run(
|
||||
`git daemon --reuseaddr --base-path="${baseDir}" --export-all ` +
|
||||
`--enable=receive-pack --informative-errors --listen=127.0.0.1 --port=${port}`,
|
||||
{ background: true }
|
||||
)
|
||||
await sandbox.commands.run('sleep 1')
|
||||
return {
|
||||
handle,
|
||||
remotePath,
|
||||
remoteUrl: `git://127.0.0.1:${port}/remote.git`,
|
||||
port,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user