{"id":15089964,"url":"https://github.com/ruscur/snowpatch","last_synced_at":"2025-09-26T09:31:43.887Z","repository":{"id":6255547,"uuid":"55202877","full_name":"ruscur/snowpatch","owner":"ruscur","description":"Enabling continuous integration for patch-based development workflows.","archived":false,"fork":false,"pushed_at":"2024-04-19T19:59:56.000Z","size":461,"stargazers_count":79,"open_issues_count":1,"forks_count":10,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-01-15T01:41:54.177Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/ruscur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2016-04-01T04:06:29.000Z","updated_at":"2024-09-24T11:56:19.000Z","dependencies_parsed_at":"2024-04-19T20:52:21.795Z","dependency_job_id":"10607788-9092-4086-adf5-bc338fe6a938","html_url":"https://github.com/ruscur/snowpatch","commit_stats":{"total_commits":195,"total_committers":5,"mean_commits":39.0,"dds":0.5076923076923077,"last_synced_commit":"1c606aadabc564ed0fe1b4b9c67f5f283a2f2afd"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruscur%2Fsnowpatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruscur%2Fsnowpatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruscur%2Fsnowpatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruscur%2Fsnowpatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruscur","download_url":"https://codeload.github.com/ruscur/snowpatch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234303253,"owners_count":18811041,"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":"2024-09-25T09:03:44.253Z","updated_at":"2025-09-26T09:31:43.535Z","avatar_url":"https://github.com/ruscur.png","language":"Rust","readme":"snowpatch - CI for patches\n==========================\n\nOverview\n-------\n\nsnowpatch is a continuous integration tool for projects using a patch-based,\nmailing-list-centric git workflow. This workflow is used by a number of\nwell-known open source projects such as the Linux kernel.\n\nsnowpatch serves as a bridge between a patch tracking system and a continuous\nintegration automation server. snowpatch monitors the patch queue for incoming\npatches, applies patches on top of an existing tree, triggers appropriate\nbuilds and test suites, and reports the results.\n\nAt present, snowpatch only supports\n[Patchwork](http://jk.ozlabs.org/projects/patchwork/) as its source of patches \nand state, and GitHub Actions as its test runner.\n\nsnowpatch is designed in line with Patchwork's philosophy of supplementing,\nrather than replacing, existing workflows. For projects which already use\nPatchwork as their core patch management tool, snowpatch does not impose any\nadditional changes to the development workflow.\n\nsnowpatch requires nothing more than a Patchwork account and GitHub account\nwith appropriate permissions and an API key. Many projects using patch-based\nworkflows are highly decentralised, using Patchwork instances they do not\nadminister, and build machines hidden behind corporate firewalls. As such,\nsnowpatch is designed not to require administrator access.\n\nsnowpatch is deliberately minimalistic, which distinguishes it from tools like\n[Zuul](https://zuul-ci.org) which are more sophisticated and may be more\nappropriate for projects with a better ability to adapt their workflow around a\ncomprehensive CI system. Other patch tracking systems that provide integrated\nsupport for CI systems, such as\n[Patchew](https://github.com/patchew-project/patchew), may also be appropriate\nfor projects with suitable workflows.\n\nsnowpatch is named in honour of\n[skiboot](https://github.com/open-power/skiboot), the project which inspired the\ncreation of snowpatch.\n\n\nProject Status\n--------------\n\nsnowpatch is in the \"Odd Fixes\" state.  The Linux kernel describes this as:\n\n\u003e\"It has a maintainer but they don't have time to do much other than throw\n\u003ethe odd patch in.\"\n\nsnowpatch is still happily running the developer CI for a few projects so it will\ncontinue to get fixes, but substantial new features are unlikely unless someone\n(which could be you!) has a surge of time and motivation.\n\nInstalling\n----------\n\nsnowpatch is a [Rust](https://www.rust-lang.org) program.  In order to compile\nit, you will need Rust and its package manager, Cargo.  snowpatch should run on\nany target that supports Rust and Git, however it has only been tested on Linux.\nWe do not provide pre-built binaries at this stage.\n\n### Non-Rust dependencies\n\n* [`git`](https://git-scm.com): we try to use the\n  [`git2-rs`](https://github.com/alexcrichton/git2-rs) library where\n  possible, but we still need the binary for a few operations.\n* [OpenSSH](https://www.openssh.com) headers\n\n### Building manually\n\nTo compile snowpatch manually, clone the git repository and run `cargo build\n--release`. The executable can be found in `target/release/snowpatch` or\nexecuted using `cargo run`.\n\n\nDocumentation\n-------------\n\nFor usage information, run `snowpatch --help`.\n\nExample configurations can be found in the [`examples`](examples) directory.\n\nAdditional documentation can be found in the [`docs`](docs) directory.\n\n\nContributing\n------------\n\nOpen a pull request.\n\nContact\n------\n\nJust do stuff through GitHub issues \u0026 pull requests.\n\nsnowpatch is maintained by\n[Andrew Donnellan](mailto:ajd@linux.ibm.com).\n\n\nLicence\n-------\nCopyright © 2016-2023 IBM Corporation.\n\nThis program is free software; you can redistribute it and/or modify it under\nthe terms of the GNU General Public License as published by the Free Software\nFoundation; either version 2 of the License, or (at your option) any later\nversion.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE.  See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with\nthis program; if not, write to the Free Software Foundation, Inc., 51 Franklin\nStreet, Fifth Floor, Boston, MA 02110-1301, USA.\n","funding_links":[],"categories":["Security Tools","Tools"],"sub_categories":["Interfaces","Winetricks","Objective-C Tools, Libraries, and Frameworks","Mesh networks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruscur%2Fsnowpatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruscur%2Fsnowpatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruscur%2Fsnowpatch/lists"}