Skip to content

Commit dc971d6

Browse files
Updates PR and Issue models to support project/org/repo id
1 parent 353086f commit dc971d6

File tree

5 files changed

+23
-3
lines changed

5 files changed

+23
-3
lines changed

src/git/models/issue.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,15 @@ export interface IssueProject {
6565
id: string;
6666
name: string;
6767
resourceId: string;
68+
resourceName: string;
6869
}
6970

7071
export interface IssueRepository {
7172
owner: string;
7273
repo: string;
7374
accessLevel?: RepositoryAccessLevel;
7475
url?: string;
76+
id?: string;
7577
}
7678

7779
export interface SearchedIssue {

src/git/models/pullRequest.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { Container } from '../../container';
33
import { formatDate, fromNow } from '../../system/date';
44
import { memoize } from '../../system/decorators/-webview/memoize';
5-
import type { IssueRepository } from './issue';
5+
import type { IssueProject, IssueRepository } from './issue';
66
import type { IssueOrPullRequest, IssueOrPullRequestState as PullRequestState } from './issueOrPullRequest';
77
import type { ProviderReference } from './remoteProvider';
88
import type { RepositoryIdentityDescriptor } from './repositoryIdentities';
@@ -24,6 +24,7 @@ export interface PullRequestShape extends IssueOrPullRequest {
2424
readonly reviewDecision?: PullRequestReviewDecision;
2525
readonly reviewRequests?: PullRequestReviewer[];
2626
readonly assignees?: PullRequestMember[];
27+
readonly project?: IssueProject;
2728
}
2829

2930
export class PullRequest implements PullRequestShape {
@@ -55,6 +56,7 @@ export class PullRequest implements PullRequestShape {
5556
public readonly latestReviews?: PullRequestReviewer[],
5657
public readonly assignees?: PullRequestMember[],
5758
public readonly statusCheckRollupState?: PullRequestStatusCheckRollupState,
59+
public readonly project?: IssueProject,
5860
) {}
5961

6062
get closed(): boolean {

src/git/utils/issue.utils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export function serializeIssue(value: IssueShape): IssueShape {
5858
id: value.project.id,
5959
name: value.project.name,
6060
resourceId: value.project.resourceId,
61+
resourceName: value.project.resourceName,
6162
},
6263
assignees: value.assignees.map(assignee => ({
6364
id: assignee.id,

src/git/utils/pullRequest.utils.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,14 @@ export function serializePullRequest(value: PullRequest): PullRequestShape {
137137
reviewDecision: value.reviewDecision,
138138
reviewRequests: value.reviewRequests,
139139
assignees: value.assignees,
140+
project: value.project
141+
? {
142+
id: value.project.id,
143+
name: value.project.name,
144+
resourceId: value.project.resourceId,
145+
resourceName: value.project.resourceName,
146+
}
147+
: undefined,
140148
};
141149
return serialized;
142150
}

src/plus/integrations/providers/models.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import { GitProviderUtils } from '@gitkraken/provider-apis/provider-utils';
3535
import type { CloudSelfHostedIntegrationId, IntegrationId } from '../../../constants.integrations';
3636
import { HostingIntegrationId, IssueIntegrationId, SelfHostedIntegrationId } from '../../../constants.integrations';
3737
import type { Account as UserAccount } from '../../../git/models/author';
38-
import type { IssueMember, SearchedIssue } from '../../../git/models/issue';
38+
import type { IssueMember, IssueProject, SearchedIssue } from '../../../git/models/issue';
3939
import { RepositoryAccessLevel } from '../../../git/models/issue';
4040
import type {
4141
PullRequestMember,
@@ -622,6 +622,7 @@ export function toSearchedIssue(
622622
id: issue.project?.id ?? '',
623623
name: issue.project?.name ?? '',
624624
resourceId: issue.project?.resourceId ?? '',
625+
resourceName: issue.project?.namespace ?? '',
625626
},
626627
repository:
627628
issue.repository?.owner?.login != null
@@ -885,7 +886,11 @@ export function toProviderPullRequest(pr: PullRequest): ProviderPullRequest {
885886
};
886887
}
887888

888-
export function fromProviderPullRequest(pr: ProviderPullRequest, integration: Integration): PullRequest {
889+
export function fromProviderPullRequest(
890+
pr: ProviderPullRequest,
891+
integration: Integration,
892+
options?: { project?: IssueProject },
893+
): PullRequest {
889894
return new PullRequest(
890895
integration,
891896
fromProviderAccount(pr.author),
@@ -898,6 +903,7 @@ export function fromProviderPullRequest(pr: ProviderPullRequest, integration: In
898903
repo: pr.repository.name,
899904
// This has to be here until we can take this information from ProviderPullRequest:
900905
accessLevel: RepositoryAccessLevel.Write,
906+
id: pr.repository.id,
901907
},
902908
fromProviderPullRequestState(pr.state),
903909
pr.createdDate,
@@ -941,6 +947,7 @@ export function fromProviderPullRequest(pr: ProviderPullRequest, integration: In
941947
pr.headCommit?.buildStatuses?.[0]?.state
942948
? fromProviderBuildStatusState[pr.headCommit.buildStatuses[0].state]
943949
: undefined,
950+
options?.project,
944951
);
945952
}
946953

0 commit comments

Comments
 (0)