1
1
import { ProjectEntity } from '../../models/project' ;
2
- import { createGithubRepository , createGithubRepositoryBranch } from './github' ;
3
- import Logger from '../../utils/logger' ;
2
+ import { createGithubRepository } from './github' ;
3
+ import fs from 'fs' ;
4
+ import { GitPlatformEntity } from '../../models/gitPlatform' ;
5
+ import { NewProjectGitServerRequest } from '../simple-git/models' ;
6
+ import { pushNewProjectToGitServer } from '../simple-git/newProject' ;
7
+ import { GitPlatformService } from '../../services/gitPlatformService' ;
8
+
9
+ const gitPlatformService = new GitPlatformService ( ) ;
4
10
5
11
export const createRepository = async ( projectEntity : ProjectEntity ) => {
6
12
switch ( projectEntity . git_platform_name ) {
7
13
case 'github' : {
8
- const createGithubRepositoryResponse = await createGithubRepository ( projectEntity ) ;
9
- Logger . debug ( `createGithubRepositoryResponse: ${ JSON . stringify ( createGithubRepositoryResponse . data ) } ` ) ;
10
- const createGithubRepositoryBranchResponse = await createGithubRepositoryBranch ( projectEntity ) ;
11
- Logger . debug ( `createGithubRepositoryBranchResponse: ${ JSON . stringify ( createGithubRepositoryBranchResponse . data ) } ` ) ;
12
- return ;
14
+ return await createGithubRepository ( projectEntity ) ;
13
15
}
14
16
// case 'gitlab':
15
17
// return await createGitlabRepository(projectEntity);
@@ -18,4 +20,31 @@ export const createRepository = async (projectEntity: ProjectEntity) => {
18
20
default :
19
21
throw new Error ( 'Unsupported git platform' ) ;
20
22
}
21
- } ;
23
+ } ;
24
+
25
+ export const makeInitialCommit = async ( projectEntity : ProjectEntity ) => {
26
+ const createdProjectPath = `/tmp/${ projectEntity . id } ` ;
27
+ fs . mkdirSync ( createdProjectPath , { recursive : true } ) ;
28
+ fs . writeFileSync ( `${ createdProjectPath } /README.md` , `# ${ projectEntity . repository_name } ` ) ;
29
+ const gitPlatform : GitPlatformEntity = await gitPlatformService . getGitPlatform ( projectEntity . owner_email , projectEntity . git_platform_name ) ;
30
+ const newProjectGitServerRequest : NewProjectGitServerRequest = {
31
+ projectVersion : 'v1' ,
32
+ generatedProjectPath : createdProjectPath ,
33
+ gitProviderDetails : {
34
+ platformName : projectEntity . git_platform_name ,
35
+ platformUrl : gitPlatform . url ,
36
+ platformUserName : projectEntity . git_platform_user_name ,
37
+ platformEmail : gitPlatform . owner_email ,
38
+ platformPersonalAccessToken : gitPlatform . personal_access_token ,
39
+ repositoryBranch : projectEntity . repository_branch ,
40
+ repositoryIsPublic : projectEntity . is_repository_public ,
41
+ repositoryName : projectEntity . repository_name ,
42
+ }
43
+ } ;
44
+ const error = await pushNewProjectToGitServer ( newProjectGitServerRequest ) ;
45
+ if ( error . length !== 0 ) {
46
+ throw new Error ( error ) ;
47
+ }
48
+ // delete the project from temp folder once it's pushed to git server.
49
+ fs . rmSync ( createdProjectPath , { recursive : true } ) ;
50
+ } ;
0 commit comments