{"id":25287530,"url":"https://github.com/gradleup/buildsrc-catalog","last_synced_at":"2025-10-11T23:12:13.032Z","repository":{"id":265907258,"uuid":"858115188","full_name":"GradleUp/buildSrc-catalog","owner":"GradleUp","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-08T13:12:30.000Z","size":66,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-07T14:09:20.008Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GradleUp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-16T10:37:07.000Z","updated_at":"2025-02-02T10:32:10.000Z","dependencies_parsed_at":"2024-12-02T01:45:18.985Z","dependency_job_id":null,"html_url":"https://github.com/GradleUp/buildSrc-catalog","commit_stats":null,"previous_names":["gradleup/buildsrc-catalog"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GradleUp%2FbuildSrc-catalog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GradleUp%2FbuildSrc-catalog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GradleUp%2FbuildSrc-catalog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GradleUp%2FbuildSrc-catalog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GradleUp","download_url":"https://codeload.github.com/GradleUp/buildSrc-catalog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238563620,"owners_count":19492974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-12T22:39:55.836Z","updated_at":"2025-10-11T23:12:07.984Z","avatar_url":"https://github.com/GradleUp.png","language":"Kotlin","readme":"# buildSrc-catalog\n\nThis project aims to alleviate the long standing [issue](https://github.com/gradle/gradle/issues/15383) about having version catalogs accessible from precompiled script plugins\n\nIt is actually based on two plugins, a setting one and a project one\n\n### buildSrc-catalog, the setting plugin\n\nIt shall be applied in your `buildSrc/settings.gradle.kts`\n\n```\nplugins {\n    id(\"elect86.buildSrc-catalog\")\n}\n```\n\nIt automatically includes any `libs.versions.toml` file found in the root `gradle` folder and generates, on configuration time, the accessors for all the elements found in the `lib` catalog: versions, libraries, bundles and plugins under the file `buildSrc/src/main/kotlin/libs.kt`. \n\nGeneration will be skipped if not needed. It can detect and react to any `libs.versions.toml` modification\n\nIt also offers two confortable methods for adding a plugin as a dependency\n\nLet's image you have the following:\n  \n`kotlin-serialization = { id = \"org.jetbrains.kotlin.plugin.serialization\", version.ref = \"kotlin\" }`\n\nin your `buildSrc/build.gradle.kts` you can simply write\n\n```\nimport org.example.gradlePlugin\n\ndependencies {\n    implementation(libs.plugins.kotlin.serialization.gradlePlugin)\n}\n```\n\nor also:\n\n```\nimport org.example.implementation\n\ndependencies {\n    implementation(libs.plugins.kotlin.serialization)\n}\n```\n\n### `plugins-catalog`, the project plugin\n\n\nIt shall be applied in your `buildSrc/build.gradle.kts`\n```\nplugins {\n    id(\"elect86.plugins-catalog\")\n}\n```\n\nIt allows to use accessors within the `plugins` block in precompiled plugins\n\nthe setting plugin above will generate the following accessor\n\n```val PluginDependencySpecScope.`kotlin-serialization` ```\n    \nwhich can be use in your `buildSrc/src/main/kotlin/myPlugin.gradle.kts` as \n\n```\nimport `kotlin-serialization`\n\nplugins {\n    `kotlin-serialization`\n}\n\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgradleup%2Fbuildsrc-catalog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgradleup%2Fbuildsrc-catalog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgradleup%2Fbuildsrc-catalog/lists"}