Skip to content

Commit

Permalink
Merge pull request #10027 from stubenhuang/issue-swagger-javax-5994
Browse files Browse the repository at this point in the history
feat: 升级swagger和servlet #5994
  • Loading branch information
bkci-bot authored Feb 23, 2024
2 parents 2278616 + 282f65f commit 4f22785
Show file tree
Hide file tree
Showing 1,617 changed files with 22,098 additions and 23,102 deletions.
10 changes: 9 additions & 1 deletion src/backend/ci/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ allprojects {
group = "com.tencent.bk.devops.ci"
// 版本
version = (System.getProperty("ci_version") ?: "1.9.0") +
if (System.getProperty("snapshot") == "true") "-SNAPSHOT" else ""
if (System.getProperty("snapshot") == "true") "-SNAPSHOT" else ""

// 加载boot的插件
if (name.startsWith("boot-")) {
Expand Down Expand Up @@ -130,6 +130,13 @@ allprojects {
dependency("com.tencent.bk.sdk:spring-boot-bk-audit-starter:${Versions.audit}")
dependency("com.jakewharton:disklrucache:${Versions.disklrucache}")
dependency("com.mysql:mysql-connector-j:${Versions.MysqlDriver}")
// TODO 升级swagger,等升级到spring boot 3.1+后可以去掉
dependencySet("io.swagger.core.v3:${Versions.swagger}") {
entry("swagger-annotations")
entry("swagger-jaxrs2")
entry("swagger-core")
entry("swagger-models")
}
}
}

Expand All @@ -146,6 +153,7 @@ allprojects {
it.exclude("com.zaxxer", "HikariCP-java7")
it.exclude("com.tencent.devops", "devops-boot-starter-plugin")
it.exclude("org.bouncycastle", "bcutil-jdk15on")
it.exclude("io.swagger") // TODO 升级swagger,等升级到spring boot 3.1+后可以去掉
}
dependencies {
// 兼容dom4j 的 bug : https://github.com/gradle/gradle/issues/13656
Expand Down
2 changes: 2 additions & 0 deletions src/backend/ci/buildSrc/src/main/kotlin/constants/Versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,6 @@ object Versions {
const val BkCrypto = "1.1.3"
const val audit = "1.0.8"
const val MysqlDriver = "8.0.33"
const val swagger = "2.2.16"
const val jakarta = "2.1.2"
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ import com.tencent.devops.artifactory.pojo.ArchiveAtomResponse
import com.tencent.devops.common.api.pojo.Result
import com.tencent.devops.common.web.annotation.BkField
import com.tencent.devops.store.pojo.common.enums.ReleaseTypeEnum
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import io.swagger.annotations.ApiParam
import io.swagger.v3.oas.annotations.tags.Tag
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import org.glassfish.jersey.media.multipart.FormDataContentDisposition
import org.glassfish.jersey.media.multipart.FormDataParam
import java.io.InputStream
Expand All @@ -44,64 +44,64 @@ import javax.ws.rs.Produces
import javax.ws.rs.QueryParam
import javax.ws.rs.core.MediaType

@Api(tags = ["SERVICE_ARTIFACTORY"], description = "仓库-插件")
@Tag(name = "SERVICE_ARTIFACTORY", description = "仓库-插件")
@Path("/service/artifactories/")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
interface ServiceArchiveAtomFileResource {

@ApiOperation("归档插件包资源")
@Operation(summary = "归档插件包资源")
@POST
@Path("/archiveAtom")
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun archiveAtomFile(
@ApiParam("userId", required = true)
@Parameter(description = "userId", required = true)
@QueryParam("userId")
userId: String,
@ApiParam("项目编码", required = true)
@Parameter(description = "项目编码", required = true)
@QueryParam("projectCode")
projectCode: String,
@ApiParam("插件代码", required = true)
@Parameter(description = "插件代码", required = true)
@QueryParam("atomCode")
atomCode: String,
@ApiParam("插件版本号", required = true)
@Parameter(description = "插件版本号", required = true)
@QueryParam("version")
version: String,
@ApiParam("发布类型", required = true)
@Parameter(description = "发布类型", required = true)
@QueryParam("releaseType")
releaseType: ReleaseTypeEnum,
@ApiParam("文件", required = true)
@Parameter(description = "文件", required = true)
@FormDataParam("file")
inputStream: InputStream,
@FormDataParam("file")
disposition: FormDataContentDisposition,
@ApiParam("支持的操作系统", required = true)
@Parameter(description = "支持的操作系统", required = true)
@QueryParam("os")
os: String
): Result<ArchiveAtomResponse?>

@ApiOperation("上传插件资源文件到指定自定义仓库路径")
@Operation(summary = "上传插件资源文件到指定自定义仓库路径")
@POST
@Path("/file/uploadToPath")
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun uploadToPath(
@ApiParam("userId", required = true)
@Parameter(description = "userId", required = true)
@QueryParam("userId")
@BkField(required = true)
userId: String,
@ApiParam("项目代码", required = true)
@Parameter(description = "项目代码", required = true)
@QueryParam("projectId")
@BkField(required = true)
projectId: String,
@ApiParam("文件路径", required = true)
@Parameter(description = "文件路径", required = true)
@QueryParam("path")
@BkField(required = true)
path: String,
@ApiParam("文件类型", required = true)
@Parameter(description = "文件类型", required = true)
@QueryParam("fileType")
@BkField(required = true)
fileType: String,
@ApiParam("文件", required = true)
@Parameter(description = "文件", required = true)
@FormDataParam("file")
inputStream: InputStream,
@FormDataParam("file")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ package com.tencent.devops.artifactory.api

import com.tencent.devops.common.api.auth.AUTH_HEADER_USER_ID
import com.tencent.devops.common.api.pojo.Result
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import io.swagger.annotations.ApiParam
import io.swagger.v3.oas.annotations.tags.Tag
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import javax.servlet.http.HttpServletResponse
import javax.ws.rs.Consumes
import javax.ws.rs.DELETE
Expand All @@ -45,64 +45,64 @@ import javax.ws.rs.QueryParam
import javax.ws.rs.core.Context
import javax.ws.rs.core.MediaType

@Api(tags = ["SERVICE_ARTIFACTORY"], description = "仓库-插件")
@Tag(name = "SERVICE_ARTIFACTORY", description = "仓库-插件")
@Path("/service/artifactories/")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
interface ServiceArchiveAtomResource {

@ApiOperation("获取插件包文件内容")
@Operation(summary = "获取插件包文件内容")
@GET
@Path("/atom/file/content")
fun getAtomFileContent(
@ApiParam("文件路径", required = true)
@Parameter(description = "文件路径", required = true)
@QueryParam("filePath")
filePath: String
): Result<String>

@ApiOperation("下载插件包文件")
@Operation(summary = "下载插件包文件")
@GET
@Path("/atom/file/download")
fun downloadAtomFile(
@ApiParam("文件路径", required = true)
@Parameter(description = "文件路径", required = true)
@QueryParam("filePath")
filePath: String,
@Context
response: HttpServletResponse
)

@ApiOperation("删除插件包文件")
@Operation(summary = "删除插件包文件")
@DELETE
@Path("/atom/file/delete")
fun deleteAtomFile(
@ApiParam("用户ID", required = true)
@Parameter(description = "用户ID", required = true)
@HeaderParam(AUTH_HEADER_USER_ID)
userId: String,
@ApiParam("项目编码", required = true)
@Parameter(description = "项目编码", required = true)
@QueryParam("projectCode")
projectCode: String,
@ApiParam("插件代码", required = true)
@Parameter(description = "插件代码", required = true)
@QueryParam("atomCode")
atomCode: String
): Result<Boolean>

@ApiOperation("更新插件包文件内容")
@Operation(summary = "更新插件包文件内容")
@PUT
@Path("/projectCodes/{projectCode}/atoms/{atomCode}/file/content")
fun updateArchiveFile(
@ApiParam("项目编码", required = true)
@Parameter(description = "项目编码", required = true)
@PathParam("projectCode")
projectCode: String,
@ApiParam("插件编码", required = true)
@Parameter(description = "插件编码", required = true)
@PathParam("atomCode")
atomCode: String,
@ApiParam("插件版本号", required = true)
@Parameter(description = "插件版本号", required = true)
@QueryParam("version")
version: String,
@ApiParam("文件名", required = true)
@Parameter(description = "文件名", required = true)
@QueryParam("fileName")
fileName: String,
@ApiParam("文件内容", required = true)
@Parameter(description = "文件内容", required = true)
content: String
): Result<Boolean>
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ import com.tencent.devops.artifactory.pojo.ArchiveAtomResponse
import com.tencent.devops.common.api.auth.AUTH_HEADER_USER_ID
import com.tencent.devops.common.api.pojo.Result
import com.tencent.devops.store.pojo.common.enums.ReleaseTypeEnum
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import io.swagger.annotations.ApiParam
import io.swagger.v3.oas.annotations.tags.Tag
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import org.glassfish.jersey.media.multipart.FormDataContentDisposition
import org.glassfish.jersey.media.multipart.FormDataParam
import java.io.InputStream
Expand All @@ -46,71 +46,71 @@ import javax.ws.rs.Produces
import javax.ws.rs.QueryParam
import javax.ws.rs.core.MediaType

@Api(tags = ["USER_ARTIFACTORY"], description = "仓库-插件")
@Tag(name = "USER_ARTIFACTORY", description = "仓库-插件")
@Path("/user/artifactories/")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)@Suppress("ALL")
interface UserArchiveAtomResource {

@ApiOperation("归档插件包")
@Operation(summary = "归档插件包")
@POST
@Path("/projects/{projectCode}/ids/{atomId}/codes/{atomCode}/versions/{version}/types/{releaseType}/archive")
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun archiveAtom(
@ApiParam("userId", required = true)
@Parameter(description = "userId", required = true)
@HeaderParam(AUTH_HEADER_USER_ID)
userId: String,
@ApiParam("项目编码", required = true)
@Parameter(description = "项目编码", required = true)
@PathParam("projectCode")
projectCode: String,
@ApiParam("插件ID", required = true)
@Parameter(description = "插件ID", required = true)
@PathParam("atomId")
atomId: String,
@ApiParam("插件代码", required = true)
@Parameter(description = "插件代码", required = true)
@PathParam("atomCode")
atomCode: String,
@ApiParam("插件版本号", required = true)
@Parameter(description = "插件版本号", required = true)
@PathParam("version")
version: String,
@ApiParam("发布类型", required = true)
@Parameter(description = "发布类型", required = true)
@PathParam("releaseType")
releaseType: ReleaseTypeEnum,
@ApiParam("文件", required = true)
@Parameter(description = "文件", required = true)
@FormDataParam("file")
inputStream: InputStream,
@FormDataParam("file")
disposition: FormDataContentDisposition,
@ApiParam("支持的操作系统", required = true)
@Parameter(description = "支持的操作系统", required = true)
@FormDataParam("os")
os: String
): Result<ArchiveAtomResponse?>

@ApiOperation("重新归档插件包")
@Operation(summary = "重新归档插件包")
@POST
@Path("/projects/{projectCode}/ids/{atomId}/codes/{atomCode}/versions/{version}/re/archive")
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun reArchiveAtom(
@ApiParam("userId", required = true)
@Parameter(description = "userId", required = true)
@HeaderParam(AUTH_HEADER_USER_ID)
userId: String,
@ApiParam("项目编码", required = true)
@Parameter(description = "项目编码", required = true)
@PathParam("projectCode")
projectCode: String,
@ApiParam("插件ID", required = true)
@Parameter(description = "插件ID", required = true)
@PathParam("atomId")
atomId: String,
@ApiParam("插件代码", required = true)
@Parameter(description = "插件代码", required = true)
@PathParam("atomCode")
atomCode: String,
@ApiParam("插件版本号", required = true)
@Parameter(description = "插件版本号", required = true)
@PathParam("version")
version: String,
@ApiParam("文件", required = true)
@Parameter(description = "文件", required = true)
@FormDataParam("file")
inputStream: InputStream,
@FormDataParam("file")
disposition: FormDataContentDisposition,
@ApiParam("插件字段校验确认标识", required = false)
@Parameter(description = "插件字段校验确认标识", required = false)
@QueryParam("fieldCheckConfirmFlag")
fieldCheckConfirmFlag: Boolean?
): Result<ArchiveAtomResponse?>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package com.tencent.devops.artifactory.api.builds

import com.tencent.devops.common.api.pojo.Result
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import io.swagger.v3.oas.annotations.tags.Tag
import io.swagger.v3.oas.annotations.Operation
import javax.ws.rs.Consumes
import javax.ws.rs.GET
import javax.ws.rs.Path
import javax.ws.rs.Produces
import javax.ws.rs.core.MediaType

@Api(tags = ["BUILD_ARTIFACTORY_CONF"], description = "仓库-配置管理")
@Tag(name = "BUILD_ARTIFACTORY_CONF", description = "仓库-配置管理")
@Path("/build/artifactories/conf")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
interface BuildArtifactoryConfigResource {

@ApiOperation("获取配置项artifactory.realm")
@Operation(summary = "获取配置项artifactory.realm")
@GET
@Path("/realm")
fun getRealm(): Result<String>
Expand Down
Loading

0 comments on commit 4f22785

Please sign in to comment.