33 * Licensed under the MIT License. See License.txt in the project root for license information.
44 *--------------------------------------------------------------------------------------------*/
55
6- import { IValidator , vArray , vEnum , vNull , vNumber , vObj , vRequired , vString , vUnion } from '../../configuration/common/validator' ;
7- import { CustomAgentListItem , JobInfo , PullRequestFile } from './githubService' ;
8- import { SessionInfo } from './githubAPI' ;
6+ import { IValidator , vArray , vNumber , vObj , vRequired , vString } from '../../configuration/common/validator' ;
7+ import { CustomAgentListItem , JobInfo } from './githubService' ;
98
10- // Validator for IOctoKitUser
11- export interface IOctoKitUser {
12- login : string ;
13- name : string | null ;
14- avatar_url : string ;
15- }
16-
17- export const vOctoKitUser = ( ) : IValidator < IOctoKitUser > => vObj ( {
18- login : vRequired ( vString ( ) ) ,
19- name : vRequired ( vUnion ( vString ( ) , vNull ( ) ) ) , // Allow string or null
20- avatar_url : vRequired ( vString ( ) ) ,
21- } ) ;
22-
23- // Validator for Actor (used in JobInfo and RemoteAgentJobResponse)
9+ // Validator for Actor (used in JobInfo)
2410const vActor = ( ) => vObj ( {
2511 id : vRequired ( vNumber ( ) ) ,
2612 login : vRequired ( vString ( ) ) ,
@@ -52,35 +38,6 @@ export const vJobInfo = (): IValidator<JobInfo> => vObj({
5238 event_identifiers : vArray ( vString ( ) ) ,
5339} ) ;
5440
55- // Validator for RemoteAgentJobResponse
56- export interface RemoteAgentJobResponse {
57- job_id : string ;
58- session_id : string ;
59- actor : {
60- id : number ;
61- login : string ;
62- } ;
63- created_at : string ;
64- updated_at : string ;
65- }
66-
67- export const vRemoteAgentJobResponse = ( ) : IValidator < RemoteAgentJobResponse > => vObj ( {
68- job_id : vRequired ( vString ( ) ) ,
69- session_id : vRequired ( vString ( ) ) ,
70- actor : vRequired ( vActor ( ) ) ,
71- created_at : vRequired ( vString ( ) ) ,
72- updated_at : vRequired ( vString ( ) ) ,
73- } ) ;
74-
75- // Validator for ErrorResponseWithStatusCode
76- export interface ErrorResponseWithStatusCode {
77- status : number ;
78- }
79-
80- export const vErrorResponseWithStatusCode = ( ) : IValidator < ErrorResponseWithStatusCode > => vObj ( {
81- status : vRequired ( vNumber ( ) ) ,
82- } ) ;
83-
8441// Validator for CustomAgentListItem
8542export const vCustomAgentListItem = ( ) : IValidator < CustomAgentListItem > => vObj ( {
8643 name : vRequired ( vString ( ) ) ,
@@ -102,90 +59,3 @@ export interface GetCustomAgentsResponse {
10259export const vGetCustomAgentsResponse = ( ) : IValidator < GetCustomAgentsResponse > => vObj ( {
10360 agents : vRequired ( vArray ( vCustomAgentListItem ( ) ) ) ,
10461} ) ;
105-
106- // Validator for PullRequestFile
107- export const vPullRequestFile = ( ) : IValidator < PullRequestFile > => vObj ( {
108- filename : vRequired ( vString ( ) ) ,
109- status : vRequired ( vEnum ( 'added' , 'removed' , 'modified' , 'renamed' , 'copied' , 'changed' , 'unchanged' ) ) ,
110- additions : vRequired ( vNumber ( ) ) ,
111- deletions : vRequired ( vNumber ( ) ) ,
112- changes : vRequired ( vNumber ( ) ) ,
113- patch : vString ( ) ,
114- previous_filename : vString ( ) ,
115- } ) ;
116-
117- // Validator for SessionInfo
118- export const vSessionInfo = ( ) : IValidator < SessionInfo > => vObj ( {
119- id : vRequired ( vString ( ) ) ,
120- name : vRequired ( vString ( ) ) ,
121- user_id : vRequired ( vNumber ( ) ) ,
122- agent_id : vRequired ( vNumber ( ) ) ,
123- logs : vRequired ( vString ( ) ) ,
124- logs_blob_id : vRequired ( vString ( ) ) ,
125- state : vRequired ( vEnum ( 'completed' , 'in_progress' , 'failed' , 'queued' ) ) ,
126- owner_id : vRequired ( vNumber ( ) ) ,
127- repo_id : vRequired ( vNumber ( ) ) ,
128- resource_type : vRequired ( vString ( ) ) ,
129- resource_id : vRequired ( vNumber ( ) ) ,
130- last_updated_at : vRequired ( vString ( ) ) ,
131- created_at : vRequired ( vString ( ) ) ,
132- completed_at : vRequired ( vString ( ) ) ,
133- event_type : vRequired ( vString ( ) ) ,
134- workflow_run_id : vRequired ( vNumber ( ) ) ,
135- premium_requests : vRequired ( vNumber ( ) ) ,
136- error : vRequired ( vUnion ( vString ( ) , vNull ( ) ) ) , // Allow string or null
137- resource_global_id : vRequired ( vString ( ) ) ,
138- } ) ;
139-
140- // Validator for sessions response wrapper
141- export interface SessionsResponse {
142- sessions : SessionInfo [ ] ;
143- }
144-
145- export const vSessionsResponse = ( ) : IValidator < SessionsResponse > => vObj ( {
146- sessions : vRequired ( vArray ( vSessionInfo ( ) ) ) ,
147- } ) ;
148-
149- // Validator for file content response from GitHub API
150- export interface FileContentResponse {
151- content : string ;
152- encoding : string ;
153- }
154-
155- export const vFileContentResponse = ( ) : IValidator < FileContentResponse > => vObj ( {
156- content : vRequired ( vString ( ) ) ,
157- encoding : vRequired ( vString ( ) ) ,
158- } ) ;
159-
160- // Validator for close pull request response
161- export interface ClosePullRequestResponse {
162- state : string ;
163- }
164-
165- export const vClosePullRequestResponse = ( ) : IValidator < ClosePullRequestResponse > => vObj ( {
166- state : vRequired ( vString ( ) ) ,
167- } ) ;
168-
169- // Validator for repository item
170- export interface RepositoryItem {
171- name : string ;
172- path : string ;
173- type : 'file' | 'dir' ;
174- html_url : string ;
175- }
176-
177- export const vRepositoryItem = ( ) : IValidator < RepositoryItem > => vObj ( {
178- name : vRequired ( vString ( ) ) ,
179- path : vRequired ( vString ( ) ) ,
180- type : vRequired ( vEnum ( 'file' , 'dir' ) ) ,
181- html_url : vRequired ( vString ( ) ) ,
182- } ) ;
183-
184- // Validator for repository content response (file)
185- export interface RepositoryContentItem {
186- content : string ;
187- }
188-
189- export const vRepositoryContentItem = ( ) : IValidator < RepositoryContentItem > => vObj ( {
190- content : vRequired ( vString ( ) ) ,
191- } ) ;
0 commit comments