{"id":14529701,"url":"https://github.com/ReVanced/revanced-patches-gradle-plugin","last_synced_at":"2025-09-02T00:32:09.906Z","repository":{"id":249585143,"uuid":"824274511","full_name":"ReVanced/revanced-patches-gradle-plugin","owner":"ReVanced","description":"🐘 A Gradle plugin for ReVanced Patches projects","archived":false,"fork":false,"pushed_at":"2024-11-26T19:43:16.000Z","size":120,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2024-12-24T23:13:16.630Z","etag":null,"topics":["gradle","gradle-plugin","kotlin","patches"],"latest_commit_sha":null,"homepage":"https://revanced.app","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ReVanced.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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},"funding":{"github":"ReVanced","open_collective":"ReVanced"}},"created_at":"2024-07-04T18:35:16.000Z","updated_at":"2024-12-11T12:29:33.000Z","dependencies_parsed_at":"2024-09-08T18:29:14.806Z","dependency_job_id":null,"html_url":"https://github.com/ReVanced/revanced-patches-gradle-plugin","commit_stats":null,"previous_names":["revanced/revanced-patches-gradle-plugin"],"tags_count":7,"template":false,"template_full_name":"cortinico/kotlin-gradle-plugin-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReVanced%2Frevanced-patches-gradle-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReVanced%2Frevanced-patches-gradle-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReVanced%2Frevanced-patches-gradle-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReVanced%2Frevanced-patches-gradle-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ReVanced","download_url":"https://codeload.github.com/ReVanced/revanced-patches-gradle-plugin/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231727115,"owners_count":18417390,"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":["gradle","gradle-plugin","kotlin","patches"],"created_at":"2024-09-05T00:01:01.786Z","updated_at":"2024-12-29T10:30:36.048Z","avatar_url":"https://github.com/ReVanced.png","language":"Kotlin","funding_links":["https://github.com/sponsors/ReVanced","https://opencollective.com/ReVanced"],"categories":["✅ Official"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource\n      width=\"256px\"\n      media=\"(prefers-color-scheme: dark)\"\n      srcset=\"assets/revanced-headline/revanced-headline-vertical-dark.svg\"\n    \u003e\n    \u003cimg \n      width=\"256px\"\n      src=\"assets/revanced-headline/revanced-headline-vertical-light.svg\"\n    \u003e\n  \u003c/picture\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://revanced.app/\"\u003e\n     \u003cpicture\u003e\n         \u003csource height=\"24px\" media=\"(prefers-color-scheme: dark)\" srcset=\"assets/revanced-logo/revanced-logo.svg\" /\u003e\n         \u003cimg height=\"24px\" src=\"assets/revanced-logo/revanced-logo.svg\" /\u003e\n     \u003c/picture\u003e\n   \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n   \u003ca href=\"https://github.com/ReVanced\"\u003e\n       \u003cpicture\u003e\n           \u003csource height=\"24px\" media=\"(prefers-color-scheme: dark)\" srcset=\"https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png\" /\u003e\n           \u003cimg height=\"24px\" src=\"https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png\" /\u003e\n       \u003c/picture\u003e\n   \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n   \u003ca href=\"http://revanced.app/discord\"\u003e\n       \u003cpicture\u003e\n           \u003csource height=\"24px\" media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png\" /\u003e\n           \u003cimg height=\"24px\" src=\"https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png\" /\u003e\n       \u003c/picture\u003e\n   \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n   \u003ca href=\"https://reddit.com/r/revancedapp\"\u003e\n       \u003cpicture\u003e\n           \u003csource height=\"24px\" media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png\" /\u003e\n           \u003cimg height=\"24px\" src=\"https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png\" /\u003e\n       \u003c/picture\u003e\n   \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n   \u003ca href=\"https://t.me/app_revanced\"\u003e\n      \u003cpicture\u003e\n         \u003csource height=\"24px\" media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png\" /\u003e\n         \u003cimg height=\"24px\" src=\"https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png\" /\u003e\n      \u003c/picture\u003e\n   \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n   \u003ca href=\"https://x.com/revancedapp\"\u003e\n      \u003cpicture\u003e\n         \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png\"\u003e\n         \u003cimg height=\"24px\" src=\"https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png\" /\u003e\n      \u003c/picture\u003e\n   \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n   \u003ca href=\"https://www.youtube.com/@ReVanced\"\u003e\n      \u003cpicture\u003e\n         \u003csource height=\"24px\" media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png\" /\u003e\n         \u003cimg height=\"24px\" src=\"https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png\" /\u003e\n     \u003c/picture\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003cbr\u003e\n   Continuing the legacy of Vanced\n\u003c/p\u003e\n\n# 🐘 ReVanced Patches Gradle plugin\n\n![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/ReVanced/revanced-patches-gradle-plugin/release.yml)\n![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)\n\nA Gradle plugin for ReVanced Patches projects.\n\n## ❓ About\n\nReVanced Patches Gradle plugin configures a project to develop ReVanced Patches.\n\nFor that, the plugin provides:\n\n- The [settings plugin](src/main/kotlin/app/revanced/patches/gradle/SettingsPlugin.kt):\n  Applied to the `settings.gradle.kts` file, configures the project repositories and subprojects\n- The [patches plugin](src/main/kotlin/app/revanced/patches/gradle/PatchesPlugin.kt):\n  Applied to the patches subproject by the settings plugin\n- The [extension plugin](src/main/kotlin/app/revanced/patches/gradle/ExtensionPlugin.kt):\n  Applied to extension subprojects by the settings plugin\n\n\u003e [!CAUTION]\n\u003e This plugin is not stable yet and likely to change due to lacking experience with Gradle plugins.  \n\u003e If you have experience with Gradle plugins and can help improve this plugin,\n\u003e consider reaching out to us at gradle-plugin@revanced.app or by opening an issue.\n\n## 🚀 How to get started\n\n\u003e [!TIP]\n\u003e The [ReVanced Patches template](https://github.com/revanced/revanced-patches-template) repository\n\u003e uses this plugin and is a good starting point to create a new ReVanced Patches project.\n\nAdd the following to the `settings.gradle.kts` file:\n\n```kotlin\npluginManagement {\n    repositories {\n        gradlePluginPortal()\n        google()\n        maven {\n            name = \"GitHubPackages\"\n            url = uri(\"https://maven.pkg.github.com/revanced/registry\")\n            credentials {\n                username = providers.gradleProperty(\"gpr.user\")\n                password = providers.gradleProperty(\"gpr.key\")\n            }\n        }\n    }\n}\n\nplugins {\n    id(\"app.revanced.patches\") version \"\u003cversion\u003e\"\n}\n\n// This block is optional and can be used to configure the patches and extension projects.\nsettings {\n    // \"patches\" is the default.\n    patchesProjectPath = \"patches\"\n\n    extensions {\n        // The path containing the extension projects. \"extensions\" is the default.\n        projectsPath = \"extensions\"\n\n        // A default namespace for extension projects. null is the default.\n        defaultNamespace = \"app.revanced.extension\"\n\n        // Proguard files relative to the extension project.\n        // By default, isMinifyEnabled is false, unless a ProGuard file is added.\n        proguardFiles(\"../proguard-rules.pro\")\n    }\n}\n```\n\n\u003e [!NOTE]\n\u003e The plugin is published to the GitHub Package Registry, so you need to authenticate with GitHub.  \n\u003e More information\n\u003e [here](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry#authenticating-to-github-packages).\n\nCreate the patches project and configure the `build.gradle.kts` file:\n\n```kotlin\npatches {\n    about {\n        name = \"ReVanced Patches\"\n        description = \"Patches for ReVanced\"\n        // ...   \n    }\n}\n```\n\n\u003e [!NOTE]\n\u003e By default, the plugin expects the patches project to be in the `patches` directory.\n\nCreate the extension project and add an empty `build.gradle.kts` file.\nUnless the `build.gradle.kts` file is empty, the plugin will not recognize the extension project.\nBy default, the extension name will be inferred from the relative path to the extension project.\nFor example, the extension name for the `extensions/extension` project will be `extensions/extension.rve`.\nTo set an extension name explicitly, add the following to the `build.gradle.kts` file:\n\n```kotlin\nextension {\n    name = \"extensions/extension.rve\"\n}\n```\n\n\u003e [!NOTE]\n\u003e By default, the plugin expects extension projects to be under the `extensions` directory.\n\n## 📚 Everything else\n\n### 🛠️ Building\n\nTo build ReVanced Patches Gradle plugin, follow these steps:\n\n1. Clone the repository and navigate to the project directory.\n2. Authenticate with GitHub. More information\n   [here](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry#authenticating-to-github-packages).\n3. Run `./gradlew build` to build the plugin.\n4. Optionally, run `./gradlew publishToMavenLocal` to publish the plugin to your local Maven repository for development.\n\n## 📜 Licence\n\nReVanced Patches Gradle plugin is licensed under the GPLv3 license.\nPlease see the [license file](LICENSE) for more\ninformation. [tl;dr](https://www.tldrlegal.com/license/gnu-general-public-license-v3-gpl-3) you may copy, distribute and\nmodify\nReVanced Patches Gradle plugin as long as you track changes/dates in source files.\nAny modifications to ReVanced Patches Gradle plugin must also be made available under the GPL,\nalong with build \u0026 install instructions.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FReVanced%2Frevanced-patches-gradle-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FReVanced%2Frevanced-patches-gradle-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FReVanced%2Frevanced-patches-gradle-plugin/lists"}