Skip to content

Commit 10a24da

Browse files
committed
bugfix-329-it-ends-up-stuck-in-an-unknown-version-loop-if-no-version-is-detected-in-the-repository: Refactor error handling and improve logging in InitialSetupUseCase and IssueRepository. Update comments and test cases for clarity and consistency in English.
1 parent 257c6a7 commit 10a24da

5 files changed

Lines changed: 50 additions & 47 deletions

File tree

build/cli/index.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50636,7 +50636,8 @@ class IssueRepository {
5063650636
return labels.map(label => label.name);
5063750637
}
5063850638
catch (error) {
50639-
if (error.status === 404) {
50639+
const err = error;
50640+
if (err.status === 404) {
5064050641
(0, logger_1.logDebugInfo)(`Issue #${issueNumber} not found or no access; returning empty labels.`);
5064150642
return [];
5064250643
}
@@ -54232,7 +54233,7 @@ class InitialSetupUseCase {
5423254233
}));
5423354234
return results;
5423454235
}
54235-
// 1. Verificar acceso a GitHub con Personal Access Token
54236+
// 1. Verify GitHub access with Personal Access Token
5423654237
(0, logger_1.logInfo)('🔐 Checking GitHub access...');
5423754238
const githubAccessResult = await this.verifyGitHubAccess(param);
5423854239
if (!githubAccessResult.success) {
@@ -54247,7 +54248,7 @@ class InitialSetupUseCase {
5424754248
return results;
5424854249
}
5424954250
steps.push(`✅ GitHub access verified: ${githubAccessResult.user}`);
54250-
// 2. Crear todos los labels necesarios
54251+
// 2. Create all required labels
5425154252
(0, logger_1.logInfo)('🏷️ Checking labels...');
5425254253
const labelsResult = await this.ensureLabels(param);
5425354254
if (!labelsResult.success) {
@@ -54257,7 +54258,7 @@ class InitialSetupUseCase {
5425754258
else {
5425854259
steps.push(`✅ Labels checked: ${labelsResult.created} created, ${labelsResult.existing} already existed`);
5425954260
}
54260-
// 2b. Crear labels de progreso (0%, 5%, ..., 100%) con colores rojo→amarillo→verde
54261+
// 2b. Create progress labels (0%, 5%, ..., 100%) with red→yellow→green colors
5426154262
(0, logger_1.logInfo)('📊 Checking progress labels...');
5426254263
const progressLabelsResult = await this.ensureProgressLabels(param);
5426354264
if (progressLabelsResult.errors.length > 0) {
@@ -54267,7 +54268,7 @@ class InitialSetupUseCase {
5426754268
else {
5426854269
steps.push(`✅ Progress labels checked: ${progressLabelsResult.created} created, ${progressLabelsResult.existing} already existed`);
5426954270
}
54270-
// 3. Crear todos los tipos de Issue si no existen
54271+
// 3. Create all issue types if they do not exist
5427154272
(0, logger_1.logInfo)('📋 Checking issue types...');
5427254273
const issueTypesResult = await this.ensureIssueTypes(param);
5427354274
if (!issueTypesResult.success) {
@@ -54276,7 +54277,7 @@ class InitialSetupUseCase {
5427654277
else {
5427754278
steps.push(`✅ Issue types checked: ${issueTypesResult.created} created, ${issueTypesResult.existing} already existed`);
5427854279
}
54279-
// 4. Si no hay tags en el repo, crear versión por defecto v1.0.0
54280+
// 4. If repo has no tags, create default version v1.0.0
5428054281
const defaultVersionResult = await this.ensureDefaultVersion(param);
5428154282
if (defaultVersionResult.step) {
5428254283
steps.push(defaultVersionResult.step);
@@ -54294,7 +54295,7 @@ class InitialSetupUseCase {
5429454295
}
5429554296
catch (error) {
5429654297
(0, logger_1.logError)(error);
54297-
errors.push(`Error ejecutando setup inicial: ${error}`);
54298+
errors.push(`Error running initial setup: ${error}`);
5429854299
results.push(new result_1.Result({
5429954300
id: this.taskId,
5430054301
success: false,
@@ -54313,8 +54314,8 @@ class InitialSetupUseCase {
5431354314
return { success: true, user, errors: [] };
5431454315
}
5431554316
catch (error) {
54316-
(0, logger_1.logError)(`Error verificando acceso a GitHub: ${error}`);
54317-
errors.push(`No se pudo verificar el acceso a GitHub: ${error}`);
54317+
(0, logger_1.logError)(`Error verifying GitHub access: ${error}`);
54318+
errors.push(`Could not verify GitHub access: ${error}`);
5431854319
return { success: false, errors };
5431954320
}
5432054321
}
@@ -54330,8 +54331,8 @@ class InitialSetupUseCase {
5433054331
};
5433154332
}
5433254333
catch (error) {
54333-
(0, logger_1.logError)(`Error asegurando labels: ${error}`);
54334-
return { success: false, created: 0, existing: 0, errors: [`Error asegurando labels: ${error}`] };
54334+
(0, logger_1.logError)(`Error ensuring labels: ${error}`);
54335+
return { success: false, created: 0, existing: 0, errors: [`Error ensuring labels: ${error}`] };
5433554336
}
5433654337
}
5433754338
async ensureProgressLabels(param) {
@@ -54340,8 +54341,8 @@ class InitialSetupUseCase {
5434054341
return await issueRepository.ensureProgressLabels(param.owner, param.repo, param.tokens.token);
5434154342
}
5434254343
catch (error) {
54343-
(0, logger_1.logError)(`Error asegurando progress labels: ${error}`);
54344-
return { created: 0, existing: 0, errors: [`Error asegurando progress labels: ${error}`] };
54344+
(0, logger_1.logError)(`Error ensuring progress labels: ${error}`);
54345+
return { created: 0, existing: 0, errors: [`Error ensuring progress labels: ${error}`] };
5434554346
}
5434654347
}
5434754348
async ensureIssueTypes(param) {
@@ -54356,8 +54357,8 @@ class InitialSetupUseCase {
5435654357
};
5435754358
}
5435854359
catch (error) {
54359-
(0, logger_1.logError)(`Error asegurando tipos de Issue: ${error}`);
54360-
return { success: false, created: 0, existing: 0, errors: [`Error asegurando tipos de Issue: ${error}`] };
54360+
(0, logger_1.logError)(`Error ensuring issue types: ${error}`);
54361+
return { success: false, created: 0, existing: 0, errors: [`Error ensuring issue types: ${error}`] };
5436154362
}
5436254363
}
5436354364
/**

build/github_action/index.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45717,7 +45717,8 @@ class IssueRepository {
4571745717
return labels.map(label => label.name);
4571845718
}
4571945719
catch (error) {
45720-
if (error.status === 404) {
45720+
const err = error;
45721+
if (err.status === 404) {
4572145722
(0, logger_1.logDebugInfo)(`Issue #${issueNumber} not found or no access; returning empty labels.`);
4572245723
return [];
4572345724
}
@@ -49313,7 +49314,7 @@ class InitialSetupUseCase {
4931349314
}));
4931449315
return results;
4931549316
}
49316-
// 1. Verificar acceso a GitHub con Personal Access Token
49317+
// 1. Verify GitHub access with Personal Access Token
4931749318
(0, logger_1.logInfo)('🔐 Checking GitHub access...');
4931849319
const githubAccessResult = await this.verifyGitHubAccess(param);
4931949320
if (!githubAccessResult.success) {
@@ -49328,7 +49329,7 @@ class InitialSetupUseCase {
4932849329
return results;
4932949330
}
4933049331
steps.push(`✅ GitHub access verified: ${githubAccessResult.user}`);
49331-
// 2. Crear todos los labels necesarios
49332+
// 2. Create all required labels
4933249333
(0, logger_1.logInfo)('🏷️ Checking labels...');
4933349334
const labelsResult = await this.ensureLabels(param);
4933449335
if (!labelsResult.success) {
@@ -49338,7 +49339,7 @@ class InitialSetupUseCase {
4933849339
else {
4933949340
steps.push(`✅ Labels checked: ${labelsResult.created} created, ${labelsResult.existing} already existed`);
4934049341
}
49341-
// 2b. Crear labels de progreso (0%, 5%, ..., 100%) con colores rojo→amarillo→verde
49342+
// 2b. Create progress labels (0%, 5%, ..., 100%) with red→yellow→green colors
4934249343
(0, logger_1.logInfo)('📊 Checking progress labels...');
4934349344
const progressLabelsResult = await this.ensureProgressLabels(param);
4934449345
if (progressLabelsResult.errors.length > 0) {
@@ -49348,7 +49349,7 @@ class InitialSetupUseCase {
4934849349
else {
4934949350
steps.push(`✅ Progress labels checked: ${progressLabelsResult.created} created, ${progressLabelsResult.existing} already existed`);
4935049351
}
49351-
// 3. Crear todos los tipos de Issue si no existen
49352+
// 3. Create all issue types if they do not exist
4935249353
(0, logger_1.logInfo)('📋 Checking issue types...');
4935349354
const issueTypesResult = await this.ensureIssueTypes(param);
4935449355
if (!issueTypesResult.success) {
@@ -49357,7 +49358,7 @@ class InitialSetupUseCase {
4935749358
else {
4935849359
steps.push(`✅ Issue types checked: ${issueTypesResult.created} created, ${issueTypesResult.existing} already existed`);
4935949360
}
49360-
// 4. Si no hay tags en el repo, crear versión por defecto v1.0.0
49361+
// 4. If repo has no tags, create default version v1.0.0
4936149362
const defaultVersionResult = await this.ensureDefaultVersion(param);
4936249363
if (defaultVersionResult.step) {
4936349364
steps.push(defaultVersionResult.step);
@@ -49375,7 +49376,7 @@ class InitialSetupUseCase {
4937549376
}
4937649377
catch (error) {
4937749378
(0, logger_1.logError)(error);
49378-
errors.push(`Error ejecutando setup inicial: ${error}`);
49379+
errors.push(`Error running initial setup: ${error}`);
4937949380
results.push(new result_1.Result({
4938049381
id: this.taskId,
4938149382
success: false,
@@ -49394,8 +49395,8 @@ class InitialSetupUseCase {
4939449395
return { success: true, user, errors: [] };
4939549396
}
4939649397
catch (error) {
49397-
(0, logger_1.logError)(`Error verificando acceso a GitHub: ${error}`);
49398-
errors.push(`No se pudo verificar el acceso a GitHub: ${error}`);
49398+
(0, logger_1.logError)(`Error verifying GitHub access: ${error}`);
49399+
errors.push(`Could not verify GitHub access: ${error}`);
4939949400
return { success: false, errors };
4940049401
}
4940149402
}
@@ -49411,8 +49412,8 @@ class InitialSetupUseCase {
4941149412
};
4941249413
}
4941349414
catch (error) {
49414-
(0, logger_1.logError)(`Error asegurando labels: ${error}`);
49415-
return { success: false, created: 0, existing: 0, errors: [`Error asegurando labels: ${error}`] };
49415+
(0, logger_1.logError)(`Error ensuring labels: ${error}`);
49416+
return { success: false, created: 0, existing: 0, errors: [`Error ensuring labels: ${error}`] };
4941649417
}
4941749418
}
4941849419
async ensureProgressLabels(param) {
@@ -49421,8 +49422,8 @@ class InitialSetupUseCase {
4942149422
return await issueRepository.ensureProgressLabels(param.owner, param.repo, param.tokens.token);
4942249423
}
4942349424
catch (error) {
49424-
(0, logger_1.logError)(`Error asegurando progress labels: ${error}`);
49425-
return { created: 0, existing: 0, errors: [`Error asegurando progress labels: ${error}`] };
49425+
(0, logger_1.logError)(`Error ensuring progress labels: ${error}`);
49426+
return { created: 0, existing: 0, errors: [`Error ensuring progress labels: ${error}`] };
4942649427
}
4942749428
}
4942849429
async ensureIssueTypes(param) {
@@ -49437,8 +49438,8 @@ class InitialSetupUseCase {
4943749438
};
4943849439
}
4943949440
catch (error) {
49440-
(0, logger_1.logError)(`Error asegurando tipos de Issue: ${error}`);
49441-
return { success: false, created: 0, existing: 0, errors: [`Error asegurando tipos de Issue: ${error}`] };
49441+
(0, logger_1.logError)(`Error ensuring issue types: ${error}`);
49442+
return { success: false, created: 0, existing: 0, errors: [`Error ensuring issue types: ${error}`] };
4944249443
}
4944349444
}
4944449445
/**

src/data/repository/issue_repository.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,8 +352,9 @@ export class IssueRepository {
352352
issue_number: issueNumber,
353353
});
354354
return labels.map(label => label.name);
355-
} catch (error: any) {
356-
if (error.status === 404) {
355+
} catch (error: unknown) {
356+
const err = error as { status?: number };
357+
if (err.status === 404) {
357358
logDebugInfo(`Issue #${issueNumber} not found or no access; returning empty labels.`);
358359
return [];
359360
}

src/usecase/actions/__tests__/initial_setup_use_case.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,6 @@ describe('InitialSetupUseCase', () => {
242242
const param = baseParam();
243243
const results = await useCase.invoke(param);
244244
expect(results[0].success).toBe(false);
245-
expect(results[0].errors?.some((e) => String(e).includes('setup inicial'))).toBe(true);
245+
expect(results[0].errors?.some((e) => String(e).includes('initial setup'))).toBe(true);
246246
});
247247
});

src/usecase/actions/initial_setup_use_case.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
4141
return results;
4242
}
4343

44-
// 1. Verificar acceso a GitHub con Personal Access Token
44+
// 1. Verify GitHub access with Personal Access Token
4545
logInfo('🔐 Checking GitHub access...');
4646
const githubAccessResult = await this.verifyGitHubAccess(param);
4747
if (!githubAccessResult.success) {
@@ -59,7 +59,7 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
5959
}
6060
steps.push(`✅ GitHub access verified: ${githubAccessResult.user}`);
6161

62-
// 2. Crear todos los labels necesarios
62+
// 2. Create all required labels
6363
logInfo('🏷️ Checking labels...');
6464
const labelsResult = await this.ensureLabels(param);
6565
if (!labelsResult.success) {
@@ -69,7 +69,7 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
6969
steps.push(`✅ Labels checked: ${labelsResult.created} created, ${labelsResult.existing} already existed`);
7070
}
7171

72-
// 2b. Crear labels de progreso (0%, 5%, ..., 100%) con colores rojo→amarillo→verde
72+
// 2b. Create progress labels (0%, 5%, ..., 100%) with red→yellow→green colors
7373
logInfo('📊 Checking progress labels...');
7474
const progressLabelsResult = await this.ensureProgressLabels(param);
7575
if (progressLabelsResult.errors.length > 0) {
@@ -79,7 +79,7 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
7979
steps.push(`✅ Progress labels checked: ${progressLabelsResult.created} created, ${progressLabelsResult.existing} already existed`);
8080
}
8181

82-
// 3. Crear todos los tipos de Issue si no existen
82+
// 3. Create all issue types if they do not exist
8383
logInfo('📋 Checking issue types...');
8484
const issueTypesResult = await this.ensureIssueTypes(param);
8585
if (!issueTypesResult.success) {
@@ -88,7 +88,7 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
8888
steps.push(`✅ Issue types checked: ${issueTypesResult.created} created, ${issueTypesResult.existing} already existed`);
8989
}
9090

91-
// 4. Si no hay tags en el repo, crear versión por defecto v1.0.0
91+
// 4. If repo has no tags, create default version v1.0.0
9292
const defaultVersionResult = await this.ensureDefaultVersion(param);
9393
if (defaultVersionResult.step) {
9494
steps.push(defaultVersionResult.step);
@@ -108,7 +108,7 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
108108
);
109109
} catch (error) {
110110
logError(error);
111-
errors.push(`Error ejecutando setup inicial: ${error}`);
111+
errors.push(`Error running initial setup: ${error}`);
112112
results.push(
113113
new Result({
114114
id: this.taskId,
@@ -130,8 +130,8 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
130130
const user = await projectRepository.getUserFromToken(param.tokens.token);
131131
return { success: true, user, errors: [] };
132132
} catch (error) {
133-
logError(`Error verificando acceso a GitHub: ${error}`);
134-
errors.push(`No se pudo verificar el acceso a GitHub: ${error}`);
133+
logError(`Error verifying GitHub access: ${error}`);
134+
errors.push(`Could not verify GitHub access: ${error}`);
135135
return { success: false, errors };
136136
}
137137
}
@@ -152,8 +152,8 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
152152
errors: result.errors,
153153
};
154154
} catch (error) {
155-
logError(`Error asegurando labels: ${error}`);
156-
return { success: false, created: 0, existing: 0, errors: [`Error asegurando labels: ${error}`] };
155+
logError(`Error ensuring labels: ${error}`);
156+
return { success: false, created: 0, existing: 0, errors: [`Error ensuring labels: ${error}`] };
157157
}
158158
}
159159

@@ -166,8 +166,8 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
166166
param.tokens.token
167167
);
168168
} catch (error) {
169-
logError(`Error asegurando progress labels: ${error}`);
170-
return { created: 0, existing: 0, errors: [`Error asegurando progress labels: ${error}`] };
169+
logError(`Error ensuring progress labels: ${error}`);
170+
return { created: 0, existing: 0, errors: [`Error ensuring progress labels: ${error}`] };
171171
}
172172
}
173173

@@ -186,8 +186,8 @@ export class InitialSetupUseCase implements ParamUseCase<Execution, Result[]> {
186186
errors: result.errors,
187187
};
188188
} catch (error) {
189-
logError(`Error asegurando tipos de Issue: ${error}`);
190-
return { success: false, created: 0, existing: 0, errors: [`Error asegurando tipos de Issue: ${error}`] };
189+
logError(`Error ensuring issue types: ${error}`);
190+
return { success: false, created: 0, existing: 0, errors: [`Error ensuring issue types: ${error}`] };
191191
}
192192
}
193193

0 commit comments

Comments
 (0)