{"id":13483181,"url":"https://github.com/getpatchwork/patchwork","last_synced_at":"2025-10-21T03:56:06.577Z","repository":{"id":1776179,"uuid":"42418744","full_name":"getpatchwork/patchwork","owner":"getpatchwork","description":"Patchwork is a web-based patch tracking system designed to facilitate the contribution and management of contributions to an open-source project.","archived":false,"fork":false,"pushed_at":"2025-10-06T11:53:58.000Z","size":4070,"stargazers_count":300,"open_issues_count":115,"forks_count":87,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-10-21T03:55:50.248Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://jk.ozlabs.org/projects/patchwork/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getpatchwork.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"COPYING","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":"2015-09-14T00:46:39.000Z","updated_at":"2025-10-13T17:29:19.000Z","dependencies_parsed_at":"2024-01-16T17:37:06.028Z","dependency_job_id":"fa0c4ee2-505a-4cf3-a41f-18b3c433efdc","html_url":"https://github.com/getpatchwork/patchwork","commit_stats":{"total_commits":2008,"total_committers":90,"mean_commits":22.31111111111111,"dds":"0.48256972111553786","last_synced_commit":"2aa4742ec88be4cd07f569805d22a35c08a08f40"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/getpatchwork/patchwork","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getpatchwork%2Fpatchwork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getpatchwork%2Fpatchwork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getpatchwork%2Fpatchwork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getpatchwork%2Fpatchwork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getpatchwork","download_url":"https://codeload.github.com/getpatchwork/patchwork/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getpatchwork%2Fpatchwork/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280200865,"owners_count":26289477,"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","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-07-31T17:01:08.853Z","updated_at":"2025-10-21T03:56:06.542Z","avatar_url":"https://github.com/getpatchwork.png","language":"Python","readme":"=========\nPatchwork\n=========\n\n.. image:: https://pyup.io/repos/github/getpatchwork/patchwork/shield.svg\n   :target: https://pyup.io/repos/github/getpatchwork/patchwork/\n   :alt: Requirements Status\n\n.. image:: https://codecov.io/gh/getpatchwork/patchwork/branch/main/graph/badge.svg\n   :target: https://codecov.io/gh/getpatchwork/patchwork\n   :alt: Codecov\n\n.. image:: https://github.com/getpatchwork/patchwork/actions/workflows/ci.yaml/badge.svg\n   :target: https://github.com/getpatchwork/patchwork/actions/workflows/ci.yaml\n   :alt: Build Status\n\n.. image:: https://readthedocs.org/projects/patchwork/badge/?version=latest\n   :target: http://patchwork.readthedocs.io/en/latest/?badge=latest\n   :alt: Documentation Status\n\n.. image:: https://img.shields.io/discord/857116373653127208.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2\n   :target: https://discord.gg/hGWjXVTAbB\n   :alt: Discord\n\n**Patchwork** is a patch tracking system for community-based projects. It is\nintended to make the patch management process easier for both the project's\ncontributors and maintainers, leaving time for the more important (and more\ninteresting) stuff.\n\nPatches that have been sent to a mailing list are \"caught\" by the system, and\nappear on a web page. Any comments posted that reference the patch are appended\nto the patch page too. The project's maintainer can then scan through the list\nof patches, marking each with a certain state, such as Accepted, Rejected or\nUnder Review. Old patches can be sent to the archive or deleted.\n\nCurrently, Patchwork is being used for a number of open-source projects, mostly\nsubsystems of the Linux kernel. Although Patchwork has been developed with the\nkernel workflow in mind, the aim is to be flexible enough to suit the majority\nof community projects.\n\nUsage\n-----\n\nPatchwork provides a web UI, a REST API, and a XML-RPC API (*deprecated*). You\ncan use the APIs to `build you own application`__ or you can use one the many\n`existing clients`__.\n\nThere are many existing Patchwork instances. Unless you're a larger project\nthat is already hosting many of its own resources, you may wish to request a\nproject on one of these instances.\n\n- patchwork.ozlabs.org\n- patchwork.kernel.org\n- patches.linaro.org\n- patchwork.sourceware.org\n- patchwork.open-mesh.org\n\n__ https://patchwork.readthedocs.io/en/latest/development/api/\n__ https://patchwork.readthedocs.io/en/latest/usage/clients/\n\nRequirements\n------------\n\nPatchwork requires reasonably recent versions of:\n\n- Python 3\n\n- Django\n\n- Django REST Framework\n\n- Django Filters\n\nThe precise versions supported are listed in the `release notes`_.\n\nDevelopment Installation\n------------------------\n\n`Docker`_ is the recommended installation method for a Patchwork development\nenvironment. To install Patchwork:\n\n1. Install `Docker`_ and `docker-compose`_.\n\n2. Clone the Patchwork repo::\n\n       $ git clone https://github.com/getpatchwork/patchwork.git\n\n3. (Optional) Create a ``.env`` file in the root directory of the project and\n   store your ``UID`` and ``GID`` attributes there::\n\n       $ cd patchwork \u0026\u0026 printf \"UID=$(id -u)\\nGID=$(id -g)\\n\" \u003e .env\n\n   This should only be necessary if you have a ``UID`` or ``GID`` other than\n   ``1000``.\n\n4. Build the images. This will download a number of packages from the internet,\n   and compile several versions of Python::\n\n       $ docker-compose build\n\n5. Run `docker-compose up`::\n\n       $ docker-compose up\n\nThe Patchwork instance will now be deployed at `http://localhost:8000/`.\n\nFor more information, including helpful command line options and alternative\ninstallation methods, refer to the `documentation`_.\n\nTalks and Presentations\n-----------------------\n\n* **Mailing List, Meet CI** (slides__) - FOSDEM 2017\n\n* **Patches carved into stone tablets** (slides__) - Kernel Recipes Conference\n  2016\n\n* **A New Patchwork** (slides__) - FOSDEM 2016\n\n* **Patchwork: reducing your patch workload** (slides__) - Linux Plumbers\n  Conference 2011\n\n__ https://speakerdeck.com/stephenfin/mailing-list-meet-ci\n__ https://github.com/gregkh/presentation-stone-tools/blob/34a3963/stone-tools.pdf\n__ https://speakerdeck.com/stephenfin/a-new-patchwork-bringing-ci-patch-tracking-and-more-to-the-mailing-list\n__ https://www.linuxplumbersconf.org/2011/ocw/system/presentations/255/original/patchwork.pdf\n\nAdditional Information\n----------------------\n\nFor further information, refer to the `documentation`_.\n\nContact\n-------\n\nFor bug reports, patch submissions or other questions, use the `mailing list`_.\n\n.. _release notes: https://patchwork.readthedocs.io/en/latest/releases/\n.. _docker-compose: https://docs.docker.com/compose/install/\n.. _Docker: https://docs.docker.com/engine/installation/linux/\n.. _documentation: https://patchwork.readthedocs.io/\n.. _mailing list: https://ozlabs.org/mailman/listinfo/patchwork\n","funding_links":[],"categories":["Security Tools","\u003ca id=\"tag-dev\" href=\"#tag-dev\"\u003eDev\u003c/a\u003e","Python (1887)","Python","Tools"],"sub_categories":["\u003ca id=\"tag-dev.scm\" href=\"#tag-dev.scm\"\u003eSCM\u003c/a\u003e","Interfaces","Winetricks","Objective-C Tools, Libraries, and Frameworks","Mesh networks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetpatchwork%2Fpatchwork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetpatchwork%2Fpatchwork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetpatchwork%2Fpatchwork/lists"}