Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/liftric/code-artifact-repository-plugin
Gradle plugin to apply AWS CodeArtifact repositories
https://github.com/liftric/code-artifact-repository-plugin
aws codeartifact gradle maven plugin repository
Last synced: about 2 hours ago
JSON representation
Gradle plugin to apply AWS CodeArtifact repositories
- Host: GitHub
- URL: https://github.com/liftric/code-artifact-repository-plugin
- Owner: Liftric
- License: mit
- Created: 2022-07-04T14:07:04.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-09T11:18:49.000Z (3 months ago)
- Last Synced: 2024-08-09T18:31:44.669Z (3 months ago)
- Topics: aws, codeartifact, gradle, maven, plugin, repository
- Language: Kotlin
- Homepage:
- Size: 96.7 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Code Artifact Repository Plugin
Convenience plugin to apply AWS CodeArtifact repositories to your Gradle project.
Configure the plugin extension either in the settings.gradle.kts or build.gradle.kts and then apply your repositories.
```kotlin
plugins {
id("com.liftric.code-artifact-repository-plugin") version ""
}codeArtifactRepository {
region.set(Region.EU_CENTRAL_1)
// use profile credentials provider, otherwise the default credentials chain of aws will be used
profile.set("liftric")
// Determines how long the generated authentication token is valid in seconds
tokenExpiresIn.set(1_800)
}dependencyResolutionManagement {
repositories {
codeArtifact("my_domain", "my_repository")
codeArtifact("my_other_domain", "my_other_repository")
}
}
```You can also use multiple CodeArtifact endpoints:
```kotlin
plugins {
id("com.liftric.code-artifact-repository-plugin") version ""
}codeArtifactRepository {
region.set(Region.EU_CENTRAL_1)
profile.set("liftric")
additional("customer1") {
profile.set("customer1")
// reuses properties of the default extension if not explicitly specified
}
additional("customer2") {
// if a profile is not available you can also provide the credentials directly
accessKeyId.set(System.getenv("CUSTOMER2_AWS_ACCESS_KEY_ID"))
secretAccessKey.set(System.getenv("CUSTOMER2_AWS_SECRET_ACCESS_KEY"))
// reuses properties of the default extension if not explicitly specified
}
}dependencyResolutionManagement {
repositories {
// uses the default extension (liftric profile)
codeArtifact(domain = "my_domain", repository = "my_repository")
// uses the customer1 extension (customer1 profile)
codeArtifact(additionalName = "customer1", domain = "my_other_domain", repository = "my_other_repository")
}
}
```You can also just get the token and endpoint, if you wan't to configure something different, like https://npm-publish.petuska.dev/:
```kotlin
val token = codeArtifactToken(domain = "my_domain")
val uri = codeArtifactUri(domain = "my_domain", repository = "my_repository")
```## Use from gradle init script
The plugin can also be used during gradle init time.The example (the `init.gradle.kts` file) configures a custom plugin repository, in our case used for a custom and private fargate plugin which is hosted
in a private code artifact repository.**Note:** We have to use a gradle init script, no other way to apply the CodeArtifactRepositoryPlugin before the pluginManagement block inside a `settings.gradle.kts` file.
```
import com.liftric.code.artifact.repository.codeArtifact
import com.liftric.code.artifact.repository.codeArtifactRepository
import software.amazon.awssdk.regions.Region.*initscript {
repositories {
maven {
url = uri("https://plugins.gradle.org/m2/")
}
}
dependencies {
classpath("com.liftric.code.artifact.repository:code-artifact-repository-plugin:")
}
}
apply()
codeArtifactRepository {
region.set(EU_CENTRAL_1)
// use profile credentials provider, otherwise the default credentials chain of aws will be used
if (System.getenv("CI") == null) {
profile.set("liftric")
}
// Determines how long the generated authentication token is valid in seconds
tokenExpiresIn.set(1_800)
}
settingsEvaluated {
pluginManagement {
repositories {
codeArtifact("", "fargate-gradle-plugin")
google()
mavenCentral()
gradlePluginPortal()
}
}
}```