Skip to content

Commit 304f38b

Browse files
authored
✨ Extend the code generator for JobItems (#75)
### Description This change refactors the generator to be able to handle multiple types of generation, and extends it with a new type for JobItems, which are schemas that have the property `x-job: true`. The code generated for the the JobItems implements missing methods that would make these JobItem types satisfy the `IAsynchronousJob` interface defined [here](https://github.com/ARM-software/embedded-development-services-client-utils/blob/main/utils/job/interfaces.go). - [X] This change is covered by existing or additional automated tests. - [ ] Manual testing has been performed (and evidence provided) as automated testing was not feasible. - [ ] Additional tests are not required for this change (e.g. documentation update). --------- Co-authored-by: aorabdel <[email protected]>
1 parent 0d1f0a0 commit 304f38b

File tree

77 files changed

+3266
-277
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+3266
-277
lines changed

.github/workflows/update-client.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ jobs:
9393
run: |
9494
cd generator
9595
go mod tidy
96-
go run main.go -i ../all-service-definition/all-def-flat.yaml -o ../extensions/extension_entities.gen.go
96+
go run main.go -i ../all-service-definition/all-def-flat.yaml -o ../extensions/extension_entities.gen.go -t templates/entities.go.tmpl -g collections
97+
go run main.go -i ../all-service-definition/all-def-flat.yaml -o ../extensions/extension_jobs.gen.go -t templates/jobs.go.tmpl -g jobs
9798
- name: Copy extensions to client
9899
run: |
99100
if [ -d ./extensions/ ] ; then cp -r extensions/. ${{ env.go_module }}/ ; fi

.secrets.baseline

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,33 @@
9191
{
9292
"path": "detect_secrets.filters.regex.should_exclude_file",
9393
"pattern": [
94+
".*go\\.sum$",
9495
".*\\.html$",
9596
".*\\.properties$",
96-
"^\\.git[\\\\/]",
97-
".*go\\.sum$",
98-
"^workflows/.*"
97+
"ci.yml",
98+
"\\.git"
9999
]
100100
}
101101
],
102102
"results": {
103+
"client/docs/AuthorizationAPI.md": [
104+
{
105+
"type": "Base64 High Entropy String",
106+
"filename": "client/docs/AuthorizationAPI.md",
107+
"hashed_secret": "b6c30ab47db0e58093620b979821ff3a0f14226d",
108+
"is_verified": false,
109+
"line_number": 36
110+
}
111+
],
112+
"client/docs/FPGAJobsAPI.md": [
113+
{
114+
"type": "Hex High Entropy String",
115+
"filename": "client/docs/FPGAJobsAPI.md",
116+
"hashed_secret": "a971ecb6f8d59edcdb891d80bc3965504aa1f6ec",
117+
"is_verified": false,
118+
"line_number": 199
119+
}
120+
],
103121
"client/docs/WorkspaceAPI.md": [
104122
{
105123
"type": "Hex High Entropy String",
@@ -126,5 +144,5 @@
126144
}
127145
]
128146
},
129-
"generated_at": "2024-05-03T09:46:30Z"
147+
"generated_at": "2025-03-25T15:29:18Z"
130148
}

changes/20250325112617.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
:sparkles: Extend the code generator for JobItems, which are schemas that have `x-job: true`

changes/20250325115157.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Updated client due to schema changes

changes/20250325122844.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Updated client due to schema changes

client/.openapi-generator/FILES

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
README.md
44
api/openapi.yaml
55
api_authentication.go
6+
api_authorization.go
67
api_build_jobs.go
78
api_cmsis_builders.go
89
api_cmsis_intellisense_builders.go
@@ -29,6 +30,7 @@ docs/ArtefactManagerCollection.md
2930
docs/ArtefactManagerItem.md
3031
docs/ArtefactManagerLinks.md
3132
docs/AuthenticationAPI.md
33+
docs/AuthorizationAPI.md
3234
docs/BuildJobCollection.md
3335
docs/BuildJobItem.md
3436
docs/BuildJobItemLinks.md
@@ -71,6 +73,7 @@ docs/EndpointDeprecationNoticeCollection.md
7173
docs/EndpointDeprecationNoticeLinks.md
7274
docs/ErrorResponse.md
7375
docs/FPGACollection.md
76+
docs/FPGACollectionLinks.md
7477
docs/FPGAConnectionAPI.md
7578
docs/FPGAConnectionCollection.md
7679
docs/FPGAConnectionItem.md
@@ -84,6 +87,7 @@ docs/FPGAJobsAPI.md
8487
docs/FPGAPayloadCollection.md
8588
docs/FPGAPayloadItem.md
8689
docs/FPGAPayloadItemLinks.md
90+
docs/FPGAPayloadRepositories.md
8791
docs/FPGAPayloadsAPI.md
8892
docs/FPGAsAPI.md
8993
docs/FieldObject.md
@@ -114,6 +118,7 @@ docs/PATCreationItem.md
114118
docs/PATItem.md
115119
docs/PATItemLinks.md
116120
docs/PagingMetadata.md
121+
docs/PermissionItem.md
117122
docs/PersonalAccessTokenAPI.md
118123
docs/RetainBuildJobRequest.md
119124
docs/RetainWorkspaceRequest.md
@@ -196,6 +201,7 @@ model_endpoint_deprecation_notice_links.go
196201
model_error_response.go
197202
model_field_object.go
198203
model_fpga_collection.go
204+
model_fpga_collection_links.go
199205
model_fpga_connection_collection.go
200206
model_fpga_connection_item.go
201207
model_fpga_connection_item_links.go
@@ -207,6 +213,7 @@ model_fpga_job_item_links.go
207213
model_fpga_payload_collection.go
208214
model_fpga_payload_item.go
209215
model_fpga_payload_item_links.go
216+
model_fpga_payload_repositories.go
210217
model_generic_work_job_collection.go
211218
model_generic_work_job_item.go
212219
model_generic_work_job_item_links.go
@@ -231,6 +238,7 @@ model_pat_collection.go
231238
model_pat_creation_item.go
232239
model_pat_item.go
233240
model_pat_item_links.go
241+
model_permission_item.go
234242
model_retain_build_job_request.go
235243
model_retain_workspace_request.go
236244
model_simple_collection.go
@@ -261,6 +269,7 @@ model_workspace_source_item.go
261269
model_workspace_source_item_links.go
262270
response.go
263271
test/api_authentication_test.go
272+
test/api_authorization_test.go
264273
test/api_build_jobs_test.go
265274
test/api_cmsis_builders_test.go
266275
test/api_cmsis_intellisense_builders_test.go

client/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ Class | Method | HTTP request | Description
112112
*AuthenticationAPI* | [**CreateUser**](docs/AuthenticationAPI.md#createuser) | **Post** /users/ | Create a user.
113113
*AuthenticationAPI* | [**GetMe**](docs/AuthenticationAPI.md#getme) | **Get** /users/me | Get my user information
114114
*AuthenticationAPI* | [**GetUser**](docs/AuthenticationAPI.md#getuser) | **Get** /users/{name} | Get user information
115+
*AuthorizationAPI* | [**CheckPermission**](docs/AuthorizationAPI.md#checkpermission) | **Post** /entitlements/check | Check permissions on a resource.
115116
*BuildJobsAPI* | [**CancelBuildJob**](docs/BuildJobsAPI.md#cancelbuildjob) | **Post** /build-jobs/{jobName}/cancel | Cancel a Build Job
116117
*BuildJobsAPI* | [**DeleteBuildJob**](docs/BuildJobsAPI.md#deletebuildjob) | **Delete** /build-jobs/{jobName} | Delete a Build Job
117118
*BuildJobsAPI* | [**GetBuildArtefact**](docs/BuildJobsAPI.md#getbuildartefact) | **Get** /build-jobs/{jobName}/artefacts/{artefactName} | Download the named Build Artefact for the given Build Job.
@@ -153,13 +154,13 @@ Class | Method | HTTP request | Description
153154
*FPGAJobsAPI* | [**RetainFpgaJob**](docs/FPGAJobsAPI.md#retainfpgajob) | **Post** /fpga-jobs/{jobName}/retain | Update how long an FPGA job will be retained before automatic deletion.
154155
*FPGAJobsAPI* | [**StartFpgaJob**](docs/FPGAJobsAPI.md#startfpgajob) | **Post** /fpgas/{fpgaName} | Initiate a job on an FPGA.
155156
*FPGAJobsAPI* | [**UploadFpgaJobArtefact**](docs/FPGAJobsAPI.md#uploadfpgajobartefact) | **Put** /fpga-jobs/{jobName}/artefacts/{artefactName}/artefact | Upload and replace the named artefact.
156-
*FPGAPayloadsAPI* | [**CreateFPGAPayload**](docs/FPGAPayloadsAPI.md#createfpgapayload) | **Post** /fpgas/{fpgaName}/payloads | Create an FPGA payload.
157+
*FPGAPayloadsAPI* | [**CreateFPGAPayload**](docs/FPGAPayloadsAPI.md#createfpgapayload) | **Post** /repositories/{repositoryName}/payloads | Create an FPGA payload.
157158
*FPGAPayloadsAPI* | [**CreateFPGAPayloadUploadSession**](docs/FPGAPayloadsAPI.md#createfpgapayloaduploadsession) | **Post** /payloads/{fpgaPayloadName}/upload-session | Create upload session for FPGA payload.
158159
*FPGAPayloadsAPI* | [**DeleteFpgaPayload**](docs/FPGAPayloadsAPI.md#deletefpgapayload) | **Delete** /payloads/{fpgaPayloadName} | Delete an FPGA payload.
159160
*FPGAPayloadsAPI* | [**GetFpgaPayload**](docs/FPGAPayloadsAPI.md#getfpgapayload) | **Get** /payloads/{fpgaPayloadName} | Return details of specific FPGA payload.
160161
*FPGAPayloadsAPI* | [**GetFpgaPayloadUploadOptions**](docs/FPGAPayloadsAPI.md#getfpgapayloaduploadoptions) | **Options** /payloads | Return service TUS protocol support.
161162
*FPGAPayloadsAPI* | [**GetFpgaPayloadUploadProgress**](docs/FPGAPayloadsAPI.md#getfpgapayloaduploadprogress) | **Head** /payloads/{fpgaPayloadName} | Return FPGA payload upload progress.
162-
*FPGAPayloadsAPI* | [**ListFPGAPayloads**](docs/FPGAPayloadsAPI.md#listfpgapayloads) | **Get** /fpgas/{fpgaName}/payloads | List payloads for an FPGA.
163+
*FPGAPayloadsAPI* | [**ListFPGAPayloads**](docs/FPGAPayloadsAPI.md#listfpgapayloads) | **Get** /repositories/{repositoryName}/payloads | List payloads in a repository.
163164
*FPGAPayloadsAPI* | [**ListPayloads**](docs/FPGAPayloadsAPI.md#listpayloads) | **Get** /payloads | List payloads.
164165
*FPGAPayloadsAPI* | [**UploadPayload**](docs/FPGAPayloadsAPI.md#uploadpayload) | **Patch** /payloads/{fpgaPayloadName} | Upload part of a payload.
165166
*FPGAsAPI* | [**CommissionFpga**](docs/FPGAsAPI.md#commissionfpga) | **Post** /fpgas/ | Commission a new FPGA.
@@ -278,6 +279,7 @@ Class | Method | HTTP request | Description
278279
- [EndpointDeprecationNoticeLinks](docs/EndpointDeprecationNoticeLinks.md)
279280
- [ErrorResponse](docs/ErrorResponse.md)
280281
- [FPGACollection](docs/FPGACollection.md)
282+
- [FPGACollectionLinks](docs/FPGACollectionLinks.md)
281283
- [FPGAConnectionCollection](docs/FPGAConnectionCollection.md)
282284
- [FPGAConnectionItem](docs/FPGAConnectionItem.md)
283285
- [FPGAConnectionItemLinks](docs/FPGAConnectionItemLinks.md)
@@ -289,6 +291,7 @@ Class | Method | HTTP request | Description
289291
- [FPGAPayloadCollection](docs/FPGAPayloadCollection.md)
290292
- [FPGAPayloadItem](docs/FPGAPayloadItem.md)
291293
- [FPGAPayloadItemLinks](docs/FPGAPayloadItemLinks.md)
294+
- [FPGAPayloadRepositories](docs/FPGAPayloadRepositories.md)
292295
- [FieldObject](docs/FieldObject.md)
293296
- [GenericWorkJobCollection](docs/GenericWorkJobCollection.md)
294297
- [GenericWorkJobItem](docs/GenericWorkJobItem.md)
@@ -314,6 +317,7 @@ Class | Method | HTTP request | Description
314317
- [PATItem](docs/PATItem.md)
315318
- [PATItemLinks](docs/PATItemLinks.md)
316319
- [PagingMetadata](docs/PagingMetadata.md)
320+
- [PermissionItem](docs/PermissionItem.md)
317321
- [RetainBuildJobRequest](docs/RetainBuildJobRequest.md)
318322
- [RetainWorkspaceRequest](docs/RetainWorkspaceRequest.md)
319323
- [SimpleCollection](docs/SimpleCollection.md)

0 commit comments

Comments
 (0)