@shepai/cli 1.123.0-pr394.80f3f1f → 1.123.0-pr394.d6f806a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts +9 -1
- package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +43 -4
- package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/adopt.command.js +3 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_cfc9281c.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_cfc9281c.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__14664e9b._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_60922fc4._.js → _1ccd3ed2._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_60922fc4._.js.map → _1ccd3ed2._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
- package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a187fd7e._.js +1 -1
- package/web/.next/server/chunks/ssr/_a187fd7e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
- package/web/.next/server/chunks/ssr/{_0a97d643._.js → _c5ef4913._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0a97d643._.js.map → _c5ef4913._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_7a78701e._.js → src_presentation_web_31752090._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_7a78701e._.js.map → src_presentation_web_31752090._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +36 -36
- package/web/.next/static/chunks/{b626e6ad69805e9a.js → 162d3214d45d81f0.js} +2 -2
- package/web/.next/static/chunks/{44e35ac2426a1bd0.js → 3fc60746f8f5d44e.js} +1 -1
- package/web/.next/static/chunks/{a73b4cc8c0548c91.js → 4ca82115323f59bc.js} +1 -1
- package/web/.next/static/chunks/{9fe8af38605fa69a.js → 570fb72b30a1ca7f.js} +1 -1
- package/web/.next/static/chunks/{14d6411c627ccc15.js → 82cdd0b1a767e038.js} +1 -1
- package/web/.next/static/chunks/{26110def6c1641a5.js → 85d7f7a7f24068fa.js} +1 -1
- package/web/.next/static/chunks/{8c50a0b7a7d9a4d5.js → 98407cd4e335253e.js} +1 -1
- package/web/.next/static/chunks/{e1de6b08082f5365.js → c08dbbbe4ffc485a.js} +1 -1
- package/web/.next/static/chunks/{fc45997b8b835378.js → d4b4168a34e9814a.js} +1 -1
- package/web/.next/static/chunks/{2dade33cf8b0e03e.js → e0e0806debb909ab.js} +1 -1
- package/web/.next/static/chunks/ff4454254b77805c.js +2 -0
- package/web/.next/static/chunks/e413cc49d94d7093.js +0 -2
- /package/web/.next/static/{-FOfzDf8kOTPigHYVlPm4 → qzazqUwIFQXV0QO3pUuYV}/_buildManifest.js +0 -0
- /package/web/.next/static/{-FOfzDf8kOTPigHYVlPm4 → qzazqUwIFQXV0QO3pUuYV}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{-FOfzDf8kOTPigHYVlPm4 → qzazqUwIFQXV0QO3pUuYV}/_ssgManifest.js +0 -0
|
@@ -12,6 +12,7 @@ import type { Feature } from '../../../domain/generated/output.js';
|
|
|
12
12
|
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
|
|
13
13
|
import type { IRepositoryRepository } from '../../ports/output/repositories/repository-repository.interface.js';
|
|
14
14
|
import type { IWorktreeService } from '../../ports/output/services/worktree-service.interface.js';
|
|
15
|
+
import type { IGitPrService } from '../../ports/output/services/git-pr-service.interface.js';
|
|
15
16
|
export interface AdoptBranchInput {
|
|
16
17
|
branchName: string;
|
|
17
18
|
repositoryPath: string;
|
|
@@ -23,7 +24,8 @@ export declare class AdoptBranchUseCase {
|
|
|
23
24
|
private readonly featureRepo;
|
|
24
25
|
private readonly repositoryRepo;
|
|
25
26
|
private readonly worktreeService;
|
|
26
|
-
|
|
27
|
+
private readonly gitPrService;
|
|
28
|
+
constructor(featureRepo: IFeatureRepository, repositoryRepo: IRepositoryRepository, worktreeService: IWorktreeService, gitPrService: IGitPrService);
|
|
27
29
|
execute(input: AdoptBranchInput): Promise<AdoptBranchResult>;
|
|
28
30
|
/**
|
|
29
31
|
* Resolve the git ref to use for worktree creation.
|
|
@@ -31,6 +33,12 @@ export declare class AdoptBranchUseCase {
|
|
|
31
33
|
* Throws if branch does not exist anywhere.
|
|
32
34
|
*/
|
|
33
35
|
private resolveBranchRef;
|
|
36
|
+
/**
|
|
37
|
+
* Detect if the branch has an open PR (or one whose closure we cannot confirm).
|
|
38
|
+
* Returns PullRequest data if found, undefined otherwise.
|
|
39
|
+
* Gracefully returns undefined if gh CLI is unavailable or the repo has no remote.
|
|
40
|
+
*/
|
|
41
|
+
private detectPrForBranch;
|
|
34
42
|
/**
|
|
35
43
|
* Find or create a Repository entity for the given path.
|
|
36
44
|
* Mirrors the pattern from CreateFeatureUseCase.
|
package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAG7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBANZ,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,qBAAqB,EAErC,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqFlE;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;OAGG;YACW,iBAAiB;CAuBhC"}
|
|
@@ -22,7 +22,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
22
22
|
};
|
|
23
23
|
import { injectable, inject } from 'tsyringe';
|
|
24
24
|
import { randomUUID } from 'node:crypto';
|
|
25
|
-
import { SdlcLifecycle } from '../../../domain/generated/output.js';
|
|
25
|
+
import { SdlcLifecycle, PrStatus } from '../../../domain/generated/output.js';
|
|
26
26
|
import { deriveName, deriveSlug } from './branch-name-utils.js';
|
|
27
27
|
/** Branches that must not be adopted as features. */
|
|
28
28
|
const PROTECTED_BRANCHES = new Set(['main', 'master']);
|
|
@@ -30,10 +30,12 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
|
|
|
30
30
|
featureRepo;
|
|
31
31
|
repositoryRepo;
|
|
32
32
|
worktreeService;
|
|
33
|
-
|
|
33
|
+
gitPrService;
|
|
34
|
+
constructor(featureRepo, repositoryRepo, worktreeService, gitPrService) {
|
|
34
35
|
this.featureRepo = featureRepo;
|
|
35
36
|
this.repositoryRepo = repositoryRepo;
|
|
36
37
|
this.worktreeService = worktreeService;
|
|
38
|
+
this.gitPrService = gitPrService;
|
|
37
39
|
}
|
|
38
40
|
async execute(input) {
|
|
39
41
|
const { branchName, repositoryPath } = input;
|
|
@@ -64,9 +66,14 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
|
|
|
64
66
|
if (!worktreeExists) {
|
|
65
67
|
await this.worktreeService.addExisting(repositoryPath, branchRef, worktreePath);
|
|
66
68
|
}
|
|
69
|
+
// --- Detect open PR for this branch ---
|
|
70
|
+
const prData = await this.detectPrForBranch(branchName, repositoryPath);
|
|
67
71
|
// --- Derive feature metadata ---
|
|
68
72
|
const name = deriveName(branchName);
|
|
69
73
|
const now = new Date();
|
|
74
|
+
// If the branch has an open PR (or we cannot confirm the PR is closed),
|
|
75
|
+
// mark the feature as completed (Maintain) with PR data attached.
|
|
76
|
+
const hasOpenPr = prData !== undefined;
|
|
70
77
|
// --- Persist feature ---
|
|
71
78
|
const feature = {
|
|
72
79
|
id: randomUUID(),
|
|
@@ -81,7 +88,7 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
|
|
|
81
88
|
relatedArtifacts: [],
|
|
82
89
|
fast: false,
|
|
83
90
|
push: false,
|
|
84
|
-
openPr:
|
|
91
|
+
openPr: hasOpenPr,
|
|
85
92
|
approvalGates: {
|
|
86
93
|
allowPrd: false,
|
|
87
94
|
allowPlan: false,
|
|
@@ -89,6 +96,7 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
|
|
|
89
96
|
},
|
|
90
97
|
worktreePath,
|
|
91
98
|
repositoryId: repository.id,
|
|
99
|
+
pr: prData,
|
|
92
100
|
createdAt: now,
|
|
93
101
|
updatedAt: now,
|
|
94
102
|
};
|
|
@@ -112,6 +120,36 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
|
|
|
112
120
|
throw new Error(`Branch "${branchName}" does not exist locally or on the remote. ` +
|
|
113
121
|
'Check the branch name spelling and ensure you have fetched from the remote.');
|
|
114
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Detect if the branch has an open PR (or one whose closure we cannot confirm).
|
|
125
|
+
* Returns PullRequest data if found, undefined otherwise.
|
|
126
|
+
* Gracefully returns undefined if gh CLI is unavailable or the repo has no remote.
|
|
127
|
+
*/
|
|
128
|
+
async detectPrForBranch(branchName, repositoryPath) {
|
|
129
|
+
try {
|
|
130
|
+
const hasRemote = await this.gitPrService.hasRemote(repositoryPath);
|
|
131
|
+
if (!hasRemote)
|
|
132
|
+
return undefined;
|
|
133
|
+
const prStatuses = await this.gitPrService.listPrStatuses(repositoryPath);
|
|
134
|
+
const match = prStatuses.find((pr) => pr.headRefName === branchName);
|
|
135
|
+
if (!match)
|
|
136
|
+
return undefined;
|
|
137
|
+
// If the PR is definitively closed (not merged), skip it
|
|
138
|
+
if (match.state === PrStatus.Closed)
|
|
139
|
+
return undefined;
|
|
140
|
+
// Open or Merged — attach PR data
|
|
141
|
+
return {
|
|
142
|
+
url: match.url,
|
|
143
|
+
number: match.number,
|
|
144
|
+
status: match.state,
|
|
145
|
+
mergeable: match.mergeable,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// gh CLI not installed, auth failure, etc. — gracefully skip PR detection
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
115
153
|
/**
|
|
116
154
|
* Find or create a Repository entity for the given path.
|
|
117
155
|
* Mirrors the pattern from CreateFeatureUseCase.
|
|
@@ -141,6 +179,7 @@ AdoptBranchUseCase = __decorate([
|
|
|
141
179
|
__param(0, inject('IFeatureRepository')),
|
|
142
180
|
__param(1, inject('IRepositoryRepository')),
|
|
143
181
|
__param(2, inject('IWorktreeService')),
|
|
144
|
-
|
|
182
|
+
__param(3, inject('IGitPrService')),
|
|
183
|
+
__metadata("design:paramtypes", [Object, Object, Object, Object])
|
|
145
184
|
], AdoptBranchUseCase);
|
|
146
185
|
export { AdoptBranchUseCase };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopt.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/adopt.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,kBAAkB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"adopt.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/adopt.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,kBAAkB,IAAI,OAAO,CAkC5C"}
|
|
@@ -31,6 +31,9 @@ export function createAdoptCommand() {
|
|
|
31
31
|
console.log(` ${colors.muted('Name:')} ${feature.name}`);
|
|
32
32
|
console.log(` ${colors.muted('Branch:')} ${colors.accent(feature.branch)}`);
|
|
33
33
|
console.log(` ${colors.muted('Status:')} ${feature.lifecycle}`);
|
|
34
|
+
if (feature.pr) {
|
|
35
|
+
console.log(` ${colors.muted('PR:')} ${colors.accent(feature.pr.url)} (${feature.pr.status})`);
|
|
36
|
+
}
|
|
34
37
|
console.log(` ${colors.muted('Worktree:')} ${colors.accent(feature.worktreePath ?? '')}`);
|
|
35
38
|
messages.newline();
|
|
36
39
|
}
|