Skip to content
Merged
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
9 changes: 4 additions & 5 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import io.gitlab.arturbosch.detekt.Detekt
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

@Suppress("DSL_SCOPE_VIOLATION") // IntelliJ incorrectly marks libs as not callable
plugins {
Expand Down Expand Up @@ -36,7 +37,7 @@ ktlint {

detekt {
ignoreFailures = true
config = rootProject.files("config/detekt/detekt.yml")
config.setFrom(rootProject.files("config/detekt/detekt.yml"))
}

tasks.withType<Detekt>().configureEach {
Expand All @@ -50,8 +51,6 @@ versionCatalogUpdate {
sortByKey.set(true)
keep {
keepUnusedVersions.set(false)
keepUnusedLibraries.set(false)
keepUnusedPlugins.set(false)
}
}

Expand All @@ -63,8 +62,8 @@ tasks.withType<DependencyUpdatesTask> {
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
jvmTarget = "1.8"
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
}
}

Expand Down
14 changes: 7 additions & 7 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[versions]
aws = "2.26.31"
detekt = "1.23.6"
kotlin = "2.0.10"
ktlint-gradle = "12.1.1"
plugin-publish = "1.2.1"
version-catalog-update = "0.8.4"
version-check = "0.51.0"
aws = "2.34.0"
detekt = "1.23.8"
kotlin = "2.2.21"
ktlint-gradle = "13.1.0"
plugin-publish = "2.0.0"
version-catalog-update = "1.0.1"
version-check = "0.53.0"
versioning = "3.1.0"

[libraries]
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
distributionUrl=https://services.gradle.org/distributions/gradle-9.1.0-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -21,75 +21,79 @@ abstract class CodeArtifact {
abstract val secretAccessKey: Property<String>

private val stsClient by lazy {
StsClient.builder().apply {
region.orNull?.let {
region(it)
}
if (accessKeyId.orNull != null && secretAccessKey.orNull != null) {
credentialsProvider {
StaticCredentialsProvider.create(
AwsBasicCredentials.create(
accessKeyId.get(),
secretAccessKey.get(),
),
).resolveCredentials()
StsClient
.builder()
.apply {
region.orNull?.let {
region(it)
}
} else {
profile.orNull?.let {
if (accessKeyId.orNull != null && secretAccessKey.orNull != null) {
credentialsProvider {
ProfileCredentialsProvider.create(profile.get()).resolveCredentials()
StaticCredentialsProvider
.create(
AwsBasicCredentials.create(
accessKeyId.get(),
secretAccessKey.get(),
),
).resolveCredentials()
}
} else {
profile.orNull?.let {
credentialsProvider {
ProfileCredentialsProvider.create(profile.get()).resolveCredentials()
}
}
}
}
}.build()
}.build()
}

private val client by lazy {
CodeartifactClient.builder().apply {
region.orNull?.let {
region(it)
}
if (accessKeyId.orNull != null && secretAccessKey.orNull != null) {
credentialsProvider {
StaticCredentialsProvider.create(
AwsBasicCredentials.create(
accessKeyId.get(),
secretAccessKey.get(),
),
).resolveCredentials()
CodeartifactClient
.builder()
.apply {
region.orNull?.let {
region(it)
}
} else {
profile.orNull?.let {
if (accessKeyId.orNull != null && secretAccessKey.orNull != null) {
credentialsProvider {
ProfileCredentialsProvider.create(profile.get()).resolveCredentials()
StaticCredentialsProvider
.create(
AwsBasicCredentials.create(
accessKeyId.get(),
secretAccessKey.get(),
),
).resolveCredentials()
}
} else {
profile.orNull?.let {
credentialsProvider {
ProfileCredentialsProvider.create(profile.get()).resolveCredentials()
}
}
}
}
}.build()
}.build()
}

private val accountId by lazy {
stsClient.getCallerIdentity {}.account()
}

internal fun authorizationTokenResponse(domain: String): GetAuthorizationTokenResponse {
return client.getAuthorizationToken {
internal fun authorizationTokenResponse(domain: String): GetAuthorizationTokenResponse =
client.getAuthorizationToken {
it.domain(domain)
it.domainOwner(accountId)
it.durationSeconds(tokenExpiresIn.getOrElse(1_800))
}
}

internal fun repositoryEndpointResponse(
domain: String,
repository: String,
format: String = "maven",
): GetRepositoryEndpointResponse {
return client.getRepositoryEndpoint {
): GetRepositoryEndpointResponse =
client.getRepositoryEndpoint {
it.domain(domain)
it.domainOwner(accountId)
it.repository(repository)
it.format(format)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,28 @@ package com.liftric.code.artifact.repository

import org.gradle.api.plugins.ExtensionContainer

abstract class CodeArtifactRepositoryExtension(private val extensionContainer: ExtensionContainer) : CodeArtifact() {
abstract class CodeArtifactRepositoryExtension(
private val extensionContainer: ExtensionContainer,
) : CodeArtifact() {
fun additional(
name: String,
block: CodeArtifact.() -> Unit,
) {
if (name.isEmpty()) error("Empty domain is not supported!")
store[name] =
extensionContainer.create(
"${name}${CodeArtifactRepositoryPlugin.EXTENSION_NAME}",
CodeArtifactRepositoryExtension::class.java,
extensionContainer,
).apply {
block.invoke(this)
region.convention(this@CodeArtifactRepositoryExtension.region)
profile.convention(this@CodeArtifactRepositoryExtension.profile)
accessKeyId.convention(this@CodeArtifactRepositoryExtension.accessKeyId)
secretAccessKey.convention(this@CodeArtifactRepositoryExtension.secretAccessKey)
tokenExpiresIn.convention(this@CodeArtifactRepositoryExtension.tokenExpiresIn)
}
extensionContainer
.create(
"${name}${CodeArtifactRepositoryPlugin.EXTENSION_NAME}",
CodeArtifactRepositoryExtension::class.java,
extensionContainer,
).apply {
block.invoke(this)
region.convention(this@CodeArtifactRepositoryExtension.region)
profile.convention(this@CodeArtifactRepositoryExtension.profile)
accessKeyId.convention(this@CodeArtifactRepositoryExtension.accessKeyId)
secretAccessKey.convention(this@CodeArtifactRepositoryExtension.secretAccessKey)
tokenExpiresIn.convention(this@CodeArtifactRepositoryExtension.tokenExpiresIn)
}
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,24 @@ import org.gradle.api.artifacts.dsl.RepositoryHandler
import org.gradle.api.artifacts.repositories.MavenArtifactRepository
import org.gradle.api.initialization.Settings
import org.gradle.api.invocation.Gradle
import org.gradle.configurationcache.extensions.capitalized
import org.gradle.internal.extensions.stdlib.capitalized
import org.gradle.kotlin.dsl.getByName
import java.net.URI

abstract class CodeArtifactRepositoryPlugin : Plugin<Any> {
override fun apply(scope: Any) {
when (scope) {
is Settings -> {
scope.extensions.create(EXTENSION_NAME, CodeArtifactRepositoryExtension::class.java, scope.extensions)
scope.extensions
.create(EXTENSION_NAME, CodeArtifactRepositoryExtension::class.java, scope.extensions)
.also {
CodeArtifactRepositoryExtension.store[""] = it
}
}

is Project -> {
scope.extensions.create(EXTENSION_NAME, CodeArtifactRepositoryExtension::class.java, scope.extensions)
scope.extensions
.create(EXTENSION_NAME, CodeArtifactRepositoryExtension::class.java, scope.extensions)
.also {
CodeArtifactRepositoryExtension.store[""] = it
}
Expand Down
Loading