{"id":26702474,"url":"https://github.com/nickacpt/patchify","last_synced_at":"2025-10-18T13:32:04.672Z","repository":{"id":53852725,"uuid":"287130022","full_name":"NickAcPT/Patchify","owner":"NickAcPT","description":"Tool used to manage/automate code projects that require source-code patching.","archived":false,"fork":false,"pushed_at":"2022-08-05T16:57:37.000Z","size":132,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"rewrite","last_synced_at":"2025-04-12T17:06:55.770Z","etag":null,"topics":["cli","cli-tool","git","patching","source-code"],"latest_commit_sha":null,"homepage":"","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/NickAcPT.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}},"created_at":"2020-08-12T22:46:13.000Z","updated_at":"2023-02-27T12:08:31.000Z","dependencies_parsed_at":"2022-08-23T05:00:28.452Z","dependency_job_id":null,"html_url":"https://github.com/NickAcPT/Patchify","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickAcPT%2FPatchify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickAcPT%2FPatchify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickAcPT%2FPatchify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickAcPT%2FPatchify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NickAcPT","download_url":"https://codeload.github.com/NickAcPT/Patchify/tar.gz/refs/heads/rewrite","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248705497,"owners_count":21148548,"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":["cli","cli-tool","git","patching","source-code"],"created_at":"2025-03-27T02:38:28.121Z","updated_at":"2025-10-18T13:31:59.631Z","avatar_url":"https://github.com/NickAcPT.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Patchify\n\nTool used to manage/automate code projects that require source-code patching. This project was inspired by the tool used\nby [PaperMC](https://github.com/PaperMC/Paper).\n\n## Gradle Plugin\n\nThe Gradle plugin is used to automatically manage the source-code patching process for projects that use Gradle without\nrequiring manual use of the cli tool.\n\nTo use the Gradle plugin, add the following to your settings.gradle.kts file:\n\n```kotlin\npluginManagement {\n    repositories {\n        gradlePluginPortal()\n        maven(\"https://maven.quiltmc.org/repository/release/\")\n        maven(\"https://raw.githubusercontent.com/NickAcPT/LightCraftMaven/main/\")\n    }\n}\n```\n\nNow that the required plugin repositories have been added, Gradle can now find the plugin. To add it to your project,\nadd the following to your build.gradle.kts file:\n\n```kotlin\nplugins {\n    id(\"io.github.nickacpt.patchify.gradle\") version \"2.1.0-SNAPSHOT\"\n}\n```\n\nThen you can define the patchify configuration in your build.gradle.kts file:\n\n```kotlin\npatchify {\n    projectWorkspace(/* Name */ \"Api\", /* Project */ project(\":sample-api\")) {\n        initializer {\n            decompileJar(project.file(\"path/to/jar/to/decompile.jar\"), \"src/main/java\")\n        }\n    }\n}\n```\n\nWhen using the `projectWorkspace` workspace definition, the Patchify Gradle plugin will automatically find the best paths\nto use.\n\nIf you want Patchify to handle decompilation and patching for you, use the `decompileJar` initializer. This is the step\nthat is done to prepare the source-code for patching.\n\n## Command-line interface\n\nPatchify also provides a command-line interface that can be used to manage and automate patching of source-code.\n\n```\nUsage: patchify [OPTIONS] COMMAND [ARGS]...\n\n  Patchify is a tool used to manage/automate code projects that require\n  source-code patching.\n\nOptions:\n  -h, --help  Show this message and exit\n\nCommands:\n  init             Initialize a new patchify workspace\n  apply-patches    Apply all patches to the source code\n  rebuild-patches  Rebuilds all patches\n```\n\n### Commands\n\n|         Command         | Description                                                                  |\n|:-----------------------:|------------------------------------------------------------------------------|\n|         `init`          | Initializes a git repository to be able to patch source-code.                |\n|    `rebuild-patches`    | Rebuild patch files through the commits done to the source directory.        |\n|     `apply-patches`     | Applies the patches on the `patches` directory to the `source` directory     |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickacpt%2Fpatchify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickacpt%2Fpatchify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickacpt%2Fpatchify/lists"}