Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
541 changes: 140 additions & 401 deletions MODULE.bazel.lock

Large diffs are not rendered by default.

28 changes: 19 additions & 9 deletions extension.bzl
Original file line number Diff line number Diff line change
@@ -1,15 +1,26 @@
"modules extension to use with openapi-generator-bazel"

load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external")

def _openapi_generator_impl(module_ctx):
def get_wanted_module(module_ctx):
wanted_module = None
for mod in module_ctx.modules:
for install in mod.tags.client:
jvm_maven_import_external(
name = "openapi_tools_generator_bazel_cli",
artifact_sha256 = install.sha256,
artifact = "org.openapitools:openapi-generator-cli:" + install.version,
server_urls = install.server_urls,
)
if mod.is_root and mod.tags.client:
return mod
if wanted_module == None and mod.tags.client:
wanted_module = mod
return wanted_module

def _openapi_generator_impl(module_ctx):
wanted_module = get_wanted_module(module_ctx)

for install in wanted_module.tags.client:
jvm_maven_import_external(
name = "openapi_tools_generator_bazel_cli",
artifact_sha256 = install.sha256,
artifact = "org.openapitools:openapi-generator-cli:" + install.version,
server_urls = install.server_urls,
)

_cli = tag_class(attrs = {
"version": attr.string(
Expand All @@ -26,4 +37,3 @@ openapi_gen = module_extension(
implementation = _openapi_generator_impl,
tag_classes = {"client": _cli},
)

1,609 changes: 148 additions & 1,461 deletions internal/test/bcr/MODULE.bazel.lock

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions internal/test/older-version/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
bazel-bcr
bazel-bin
bazel-out
bazel-testlogs
8 changes: 8 additions & 0 deletions internal/test/older-version/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
load("@openapi_tools_generator_bazel//:defs.bzl", "openapi_generator")

openapi_generator(
name = "pylib",
config = "config.yaml",
generator = "java",
spec = "petstore.yaml",
)
17 changes: 17 additions & 0 deletions internal/test/older-version/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module(
name = "openapi_tools_generator_bazel_bcr_tests",
version = "1.2.3",
)

bazel_dep(name = "openapi_tools_generator_bazel", version = "")
local_path_override(
module_name = "openapi_tools_generator_bazel",
path = "../../..",
)

openapi_gen = use_extension("@openapi_tools_generator_bazel//:extension.bzl", "openapi_gen")
openapi_gen.client(
sha256 = "f18d771e98f2c5bb169d1d1961de4f94866d2901abc1e16177dd7e9299834721",
version = "6.5.0",
)
use_repo(openapi_gen, "openapi_tools_generator_bazel_cli")
274 changes: 274 additions & 0 deletions internal/test/older-version/MODULE.bazel.lock

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions internal/test/older-version/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# openapi-generator configuration
---
generatorName: python-flask
packageName: openapi.bazel.test
enablePostProcessFile: false
globalProperties:
skipFormModel: false
additionalProperties:
generated: generated
packageRoot: openapi.bazel
103 changes: 103 additions & 0 deletions internal/test/older-version/petstore.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Copyright 2019 OpenAPI-Generator-Bazel Contributors

swagger: "2.0"
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
host: petstore.swagger.io
basePath: /v1
schemes:
- http
consumes:
- application/json
produces:
- application/json
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: limit
in: query
description: How many items to return at one time
required: false
type: integer
format: int32
responses:
"200":
description: An paged array of pets
headers:
x-next:
type: string
description: A link to the next page of responses
schema:
$ref: "#/definitions/Pets"
default:
description: unexpected error
schema:
$ref: "#/definitions/Error"
post:
summary: Create a pet
operationId: createPets
tags:
- pets
responses:
"201":
description: Null response
default:
description: unexpected error
schema:
$ref: "#/definitions/Error"
/pets/{petId}:
get:
summary: Info for a specific pet
operationId: showPetById
tags:
- pets
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
type: string
responses:
"200":
description: Expected response to a valid request
schema:
$ref: "#/definitions/Pets"
default:
description: unexpected error
schema:
$ref: "#/definitions/Error"
definitions:
Pet:
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
Pets:
type: array
items:
$ref: "#/definitions/Pet"
Error:
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string