@@ -165,10 +165,8 @@ ifdef DEPS_PLAYWRIGHT
165
165
endif
166
166
167
167
SWAGGER_SPEC := templates/swagger/v1_json.tmpl
168
- SWAGGER_SPEC_S_TMPL := s|"basePath": *"/api/v1"|"basePath": "{{AppSubUrl \| JSEscape}}/api/v1"|g
169
- SWAGGER_SPEC_S_JSON := s|"basePath": *"{{AppSubUrl \| JSEscape}}/api/v1"|"basePath": "/api/v1"|g
168
+ SWAGGER_SPEC_INPUT := templates/swagger/v1_input.json
170
169
SWAGGER_EXCLUDE := code.gitea.io/sdk
171
- SWAGGER_NEWLINE_COMMAND := -e '$$a\'
172
170
173
171
TEST_MYSQL_HOST ?= mysql:3306
174
172
TEST_MYSQL_DBNAME ?= testgitea
@@ -271,10 +269,8 @@ endif
271
269
.PHONY : generate-swagger
272
270
generate-swagger : $(SWAGGER_SPEC ) # # generate the swagger spec from code comments
273
271
274
- $(SWAGGER_SPEC ) : $(GO_SOURCES_NO_BINDATA )
275
- $(GO ) run $(SWAGGER_PACKAGE ) generate spec -x " $( SWAGGER_EXCLUDE) " -o ' ./$(SWAGGER_SPEC)'
276
- $(SED_INPLACE ) ' $(SWAGGER_SPEC_S_TMPL)' ' ./$(SWAGGER_SPEC)'
277
- $(SED_INPLACE ) $(SWAGGER_NEWLINE_COMMAND ) ' ./$(SWAGGER_SPEC)'
272
+ $(SWAGGER_SPEC ) : $(GO_SOURCES_NO_BINDATA ) $(SWAGGER_SPEC_INPUT )
273
+ $(GO ) run $(SWAGGER_PACKAGE ) generate spec --exclude " $( SWAGGER_EXCLUDE) " --input " $( SWAGGER_SPEC_INPUT) " --output ' ./$(SWAGGER_SPEC)'
278
274
279
275
.PHONY : swagger-check
280
276
swagger-check : generate-swagger
@@ -287,9 +283,11 @@ swagger-check: generate-swagger
287
283
288
284
.PHONY : swagger-validate
289
285
swagger-validate : # # check if the swagger spec is valid
290
- $(SED_INPLACE ) ' $(SWAGGER_SPEC_S_JSON)' ' ./$(SWAGGER_SPEC)'
286
+ # swagger strongly insists that the "basePath" must start with a slash, but we are using Golang template "{{...}}"
287
+ $(SED_INPLACE ) -e ' s|"basePath": *".*"|"basePath": "/api/v1"|g' ' ./$(SWAGGER_SPEC)'
288
+ # FIXME: there are some warnings
291
289
$(GO ) run $(SWAGGER_PACKAGE ) validate ' ./$(SWAGGER_SPEC)'
292
- $( SED_INPLACE ) ' $(SWAGGER_SPEC_S_TMPL) ' ' ./$(SWAGGER_SPEC)'
290
+ git restore ' ./$(SWAGGER_SPEC)'
293
291
294
292
.PHONY : checks
295
293
checks : checks-frontend checks-backend # # run various consistency checks
@@ -298,7 +296,7 @@ checks: checks-frontend checks-backend ## run various consistency checks
298
296
checks-frontend : lockfile-check svg-check # # check frontend files
299
297
300
298
.PHONY : checks-backend
301
- checks-backend : tidy-check swagger-check fmt-check swagger-validate security-check # # check backend files
299
+ checks-backend : tidy-check swagger-check fmt-check security-check # # check backend files
302
300
303
301
.PHONY : lint
304
302
lint : lint-frontend lint-backend lint-spell # # lint everything
0 commit comments