mirror of
https://github.com/web3privacy/explorer-app.git
synced 2024-10-15 16:46:26 +02:00
Merge pull request #36 from web3privacy/dw/fix-project-id
fix: project id check
This commit is contained in:
commit
82a878933d
1 changed files with 54 additions and 49 deletions
|
@ -6,7 +6,7 @@ export default defineEventHandler(async (event) => {
|
||||||
const body = await readBody<{ project: Project, image?: { type: string, data: string } }>(event)
|
const body = await readBody<{ project: Project, image?: { type: string, data: string } }>(event)
|
||||||
const { appId, privateKey, installationId, baseBranch, owner, repo } = useRuntimeConfig().app.github
|
const { appId, privateKey, installationId, baseBranch, owner, repo } = useRuntimeConfig().app.github
|
||||||
|
|
||||||
const id = (body.project.id && body.project.id === body.project.name.toLowerCase().replace(/\s+/g, '-'))
|
const id = (body.project.id && body.project.id.toLowerCase() === body.project.name.toLowerCase().replace(/\s+/g, '-'))
|
||||||
? body.project.id
|
? body.project.id
|
||||||
: body.project.name.toLowerCase().replace(/\s+/g, '-')
|
: body.project.name.toLowerCase().replace(/\s+/g, '-')
|
||||||
|
|
||||||
|
@ -131,61 +131,66 @@ export default defineEventHandler(async (event) => {
|
||||||
files: { path: string, content: string, encoding: string }[],
|
files: { path: string, content: string, encoding: string }[],
|
||||||
deletedFiles: string[] = [],
|
deletedFiles: string[] = [],
|
||||||
) {
|
) {
|
||||||
const { data: latestCommit } = await octokit.rest.repos.getCommit({
|
try {
|
||||||
owner,
|
const { data: latestCommit } = await octokit.rest.repos.getCommit({
|
||||||
repo,
|
|
||||||
ref: newBranch,
|
|
||||||
})
|
|
||||||
|
|
||||||
const { data: baseTree } = await octokit.rest.git.getTree({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
tree_sha: latestCommit.commit.tree.sha,
|
|
||||||
})
|
|
||||||
|
|
||||||
const blobs = await Promise.all(files.map(async (file) => {
|
|
||||||
const { data: blob } = await octokit.rest.git.createBlob({
|
|
||||||
owner,
|
owner,
|
||||||
repo,
|
repo,
|
||||||
content: file.content,
|
ref: newBranch,
|
||||||
encoding: file.encoding,
|
|
||||||
})
|
})
|
||||||
return {
|
|
||||||
path: file.path,
|
const { data: baseTree } = await octokit.rest.git.getTree({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
tree_sha: latestCommit.commit.tree.sha,
|
||||||
|
})
|
||||||
|
|
||||||
|
const blobs = await Promise.all(files.map(async (file) => {
|
||||||
|
const { data: blob } = await octokit.rest.git.createBlob({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
content: file.content,
|
||||||
|
encoding: file.encoding,
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
path: file.path,
|
||||||
|
mode: '100644' as const,
|
||||||
|
type: 'blob' as const,
|
||||||
|
sha: blob.sha,
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
|
||||||
|
const deletions = deletedFiles.map(filePath => ({
|
||||||
|
path: filePath,
|
||||||
mode: '100644' as const,
|
mode: '100644' as const,
|
||||||
type: 'blob' as const,
|
type: 'blob' as const,
|
||||||
sha: blob.sha,
|
sha: null,
|
||||||
}
|
}))
|
||||||
}))
|
|
||||||
|
|
||||||
const deletions = deletedFiles.map(filePath => ({
|
const { data: newTree } = await octokit.rest.git.createTree({
|
||||||
path: filePath,
|
owner,
|
||||||
mode: '100644' as const,
|
repo,
|
||||||
type: 'blob' as const,
|
base_tree: baseTree.sha,
|
||||||
sha: null,
|
tree: [...blobs, ...deletions],
|
||||||
}))
|
})
|
||||||
|
|
||||||
const { data: newTree } = await octokit.rest.git.createTree({
|
const { data: newCommit } = await octokit.rest.git.createCommit({
|
||||||
owner,
|
owner,
|
||||||
repo,
|
repo,
|
||||||
base_tree: baseTree.sha,
|
message,
|
||||||
tree: [...blobs, ...deletions],
|
tree: newTree.sha,
|
||||||
})
|
parents: [latestCommit.sha],
|
||||||
|
})
|
||||||
|
|
||||||
const { data: newCommit } = await octokit.rest.git.createCommit({
|
await octokit.rest.git.updateRef({
|
||||||
owner,
|
owner,
|
||||||
repo,
|
repo,
|
||||||
message,
|
ref: `heads/${newBranch}`,
|
||||||
tree: newTree.sha,
|
sha: newCommit.sha,
|
||||||
parents: [latestCommit.sha],
|
})
|
||||||
})
|
}
|
||||||
|
catch (error) {
|
||||||
await octokit.rest.git.updateRef({
|
console.error('Error during commit operation:', error)
|
||||||
owner,
|
}
|
||||||
repo,
|
|
||||||
ref: `heads/${newBranch}`,
|
|
||||||
sha: newCommit.sha,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function createPullRequest(owner: string, repo: string, head: string, base: string, title: string, body: string) {
|
async function createPullRequest(owner: string, repo: string, head: string, base: string, title: string, body: string) {
|
||||||
|
@ -206,7 +211,7 @@ export default defineEventHandler(async (event) => {
|
||||||
console.log(`Branch ${newBranchName} created successfully!`)
|
console.log(`Branch ${newBranchName} created successfully!`)
|
||||||
|
|
||||||
const deletedFiles = []
|
const deletedFiles = []
|
||||||
if (body.project.id && body.project.id !== body.project.name.toLowerCase().replace(/\s+/g, '-')) {
|
if (body.project.id && body.project.id.toLowerCase() !== body.project.name.toLowerCase().replace(/\s+/g, '-')) {
|
||||||
const oldId = body.project.id
|
const oldId = body.project.id
|
||||||
const oldFolderPath = `src/projects/${oldId}`
|
const oldFolderPath = `src/projects/${oldId}`
|
||||||
await deleteOldProjectFolder(owner, repo, newBranchName, oldFolderPath)
|
await deleteOldProjectFolder(owner, repo, newBranchName, oldFolderPath)
|
||||||
|
|
Loading…
Reference in a new issue