@@ -7,18 +7,17 @@ import * as fs from "fs";
77import * as https from "https" ;
88import * as path from "path" ;
99import * as vscode from "vscode" ;
10- import { Repository } from "../../../@types/git" ;
1110import { BRANCH_TO_STAGE , GIT_MESSAGES , SKILL , SKILL_FOLDER } from "../../../constants" ;
1211import { AskError , logAskError } from "../../../exceptions" ;
1312import { Logger } from "../../../logger" ;
1413import { SmapiClientFactory } from "../../../runtime" ;
15- import { getOrInstantiateGitApi , GitInTerminalHelper , isGitInstalled } from "../../../utils/gitHelper" ;
14+ import { GitInTerminalHelper , isGitInstalled } from "../../../utils/gitHelper" ;
1615import { checkAskPrePushScript , checkAuthInfoScript , checkGitCredentialHelperScript } from "../../../utils/s3ScriptChecker" ;
1716import { createSkillPackageFolder , syncSkillPackage } from "../../../utils/skillPackageHelper" ;
1817import { AbstractCloneSkillManager } from "./abstractCloneSkillManager" ;
1918
2019export class CloneHostedSkillManager extends AbstractCloneSkillManager {
21- async setupGitFolder ( ) : Promise < Repository > {
20+ async setupGitFolder ( ) : Promise < void > {
2221 Logger . verbose ( `Calling method: setupGitFolder` ) ;
2322 try {
2423 const smapiClient = SmapiClientFactory . getInstance ( this . profile , this . context ) ;
@@ -27,7 +26,7 @@ export class CloneHostedSkillManager extends AbstractCloneSkillManager {
2726 const credentialsList = await smapiClient . generateCredentialsForAlexaHostedSkillV1 ( skillId , {
2827 repository : this . skillInfo . data . hostedSkillMetadata ! . alexaHosted ! . repository ! ,
2928 } ) ;
30- const repositoryCredentials = credentialsList . repositoryCredentials ;
29+ const { repositoryCredentials} = credentialsList ;
3130 if (
3231 repositoryCredentials === undefined ||
3332 repositoryCredentials . username === undefined ||
@@ -41,29 +40,15 @@ export class CloneHostedSkillManager extends AbstractCloneSkillManager {
4140 throw new AskError ( "Failed to retrieve hosted skill repo URL from the service." ) ;
4241 }
4342 await this . downloadGitCredentialScript ( this . fsPath , this . context ) ;
43+
4444 gitHelper . init ( ) ;
4545 gitHelper . configureCredentialHelper ( repoUrl , this . profile , skillId ) ;
4646 gitHelper . addOrigin ( repoUrl ) ;
47+ gitHelper . fetchAll ( ) ;
48+ gitHelper . checkoutBranch ( "prod" )
49+ gitHelper . checkoutBranch ( "master" ) ;
4750
48- /**
49- * Since gitHelper commands are failing due to execSync
50- * not waiting to call next command, calling the following
51- * set of git commands through inbuilt git extension
52- */
53- await vscode . commands . executeCommand ( "git.openRepository" , this . fsPath ) ;
54-
55- const gitApi = await getOrInstantiateGitApi ( this . context ) ;
56- const repo = gitApi ?. getRepository ( vscode . Uri . file ( this . fsPath ) ) ;
57-
58- if ( repo === undefined || repo === null ) {
59- throw new AskError ( "No skill repository found." ) ;
60- }
61-
62- await repo . fetch ( ) ;
63- await repo . checkout ( "prod" ) ;
64- await repo . checkout ( "master" ) ;
6551 await this . setPrePushHookScript ( this . fsPath , this . context ) ;
66- return repo ;
6752 } catch ( err ) {
6853 throw logAskError ( `Git folder setup failed for ${ this . fsPath } ` , err ) ;
6954 }
@@ -125,37 +110,40 @@ export class CloneHostedSkillManager extends AbstractCloneSkillManager {
125110 Logger . verbose ( `Calling method: cloneSkill, args: ` , progressBar ) ;
126111
127112 this . checkGitInstallation ( ) ;
128- incrAmount = incrAmount ?? 25 ;
113+ const incrementAmount = incrAmount ?? 25 ;
129114
130115 fs . mkdirSync ( path . join ( this . fsPath , SKILL_FOLDER . HIDDEN_ASK_FOLDER ) ) ;
131116
132- const skillRepo = await this . setupGitFolder ( ) ;
117+ await this . setupGitFolder ( ) ;
133118 progressBar . report ( {
134- increment : incrAmount ,
119+ increment : incrementAmount ,
135120 message : "Git access set. Checking skill metadata files..." ,
136121 } ) ;
137122
138123 this . createAskResourcesConfig ( true ) ;
139124 this . createAskStateConfig ( ) ;
140125 progressBar . report ( {
141- increment : incrAmount ,
126+ increment : incrementAmount ,
142127 message : "Skill metadata files created. Checking skill package..." ,
143128 } ) ;
144129
145130 GitInTerminalHelper . addFilesToIgnore ( this . fsPath , this . filesToIgnore ( ) ) ;
146131
147132 createSkillPackageFolder ( this . fsPath ) ;
148133 progressBar . report ( {
149- increment : incrAmount ,
134+ increment : incrementAmount ,
150135 message : "Skill package created. Syncing from service..." ,
151136 } ) ;
152137
153138 const skillPkgPath = path . join ( this . fsPath , SKILL_FOLDER . SKILL_PACKAGE . NAME ) ;
154- const skillStage = BRANCH_TO_STAGE [ skillRepo . state . HEAD ! . name ! ] ;
139+ const gitHelper = new GitInTerminalHelper ( this . fsPath , Logger . logLevel ) ;
140+ const curBranch = gitHelper . getCurrentBranch ( ) ;
141+ const skillStage = BRANCH_TO_STAGE [ curBranch ] ;
155142 const skillPackageStatus = await syncSkillPackage ( skillPkgPath , this . skillInfo . data . skillSummary . skillId ! , this . context , skillStage ) ;
156- void this . postCloneSkill ( true , skillPackageStatus . skill ?. eTag ) ;
143+
144+ this . postCloneSkill ( true , skillPackageStatus . skill ?. eTag ) ;
157145 progressBar . report ( {
158- increment : incrAmount ,
146+ increment : incrementAmount ,
159147 message : "Skill package synced." ,
160148 } ) ;
161149 }
0 commit comments