11import { HostingIntegrationId } from '../../../../constants.integrations' ;
22import type { PullRequestState } from '../../../../git/models/pullRequest' ;
3- import { PullRequest } from '../../../../git/models/pullRequest' ;
3+ import { PullRequest , PullRequestMergeableState } from '../../../../git/models/pullRequest' ;
44import type { PullRequestUrlIdentity } from '../../../../git/models/pullRequest.utils' ;
55import type { Provider } from '../../../../git/models/remoteProvider' ;
66import type { Integration } from '../../integration' ;
@@ -93,7 +93,12 @@ export interface GitLabMergeRequestREST {
9393 updated_at : string ;
9494 closed_at : string | null ;
9595 merged_at : string | null ;
96+ detailed_merge_status : 'conflict' | 'mergeable' | string ; // https://docs.gitlab.com/ee/api/merge_requests.html#merge-status
9697 web_url : string ;
98+ references : {
99+ full : string ;
100+ short : string ;
101+ } ;
97102}
98103
99104export function fromGitLabMergeRequestREST (
@@ -110,7 +115,7 @@ export function fromGitLabMergeRequestREST(
110115 url : pr . author ?. web_url ?? '' ,
111116 } ,
112117 String ( pr . iid ) ,
113- undefined ,
118+ String ( pr . id ) ,
114119 pr . title ,
115120 pr . web_url ,
116121 repo ,
@@ -119,6 +124,11 @@ export function fromGitLabMergeRequestREST(
119124 new Date ( pr . updated_at ) ,
120125 pr . closed_at == null ? undefined : new Date ( pr . closed_at ) ,
121126 pr . merged_at == null ? undefined : new Date ( pr . merged_at ) ,
127+ pr . detailed_merge_status === 'mergeable'
128+ ? PullRequestMergeableState . Mergeable
129+ : pr . detailed_merge_status === 'conflict'
130+ ? PullRequestMergeableState . Conflicting
131+ : PullRequestMergeableState . Unknown ,
122132 ) ;
123133}
124134
0 commit comments