{"id":16592437,"url":"https://github.com/hauleth/git-riff","last_synced_at":"2026-04-16T01:32:57.602Z","repository":{"id":140295116,"uuid":"132929133","full_name":"hauleth/git-riff","owner":"hauleth","description":"Super simple git hooks launcher","archived":false,"fork":false,"pushed_at":"2020-12-18T13:44:10.000Z","size":9,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-25T23:41:34.032Z","etag":null,"topics":["git","git-hooks","hooks"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hauleth.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":"2018-05-10T16:49:52.000Z","updated_at":"2025-02-11T13:03:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"683bd4a7-f34a-4562-a49c-fb4416e0a615","html_url":"https://github.com/hauleth/git-riff","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hauleth/git-riff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fgit-riff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fgit-riff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fgit-riff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fgit-riff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hauleth","download_url":"https://codeload.github.com/hauleth/git-riff/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fgit-riff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31867710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["git","git-hooks","hooks"],"created_at":"2024-10-11T23:20:54.383Z","updated_at":"2026-04-16T01:32:57.573Z","avatar_url":"https://github.com/hauleth.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git riff\n\nSuper simple [Git hooks][git-hooks] launcher.  It doesn't manage hooks basing on\nsome file, it just launch them.  So this is more suitable for managing personal\nset of hooks instead of managing hooks on organization level.\n\n## Installation\n\nFetch [git-riff](git-riff) and run it in your repository with `install` option.\nJust like this:\n\n    ./git-riff install\n\nAnd it is done.  If you have some hooks already then you can skip `git-riff` from\noverwriting them by running it like that:\n\n    yes n | ./git-riff install\n\nIf you want your hooks to be managed by `git-riff` then check out\n[Usage](#usage) section.\n\nIf you do not give a damn and want to thrash all your existing hooks then this\nis for you:\n\n    yes | ./git-riff install\n\n## Usage\n\n`git-riff` allows you to group your hooks basing on their functionality like\nthat:\n\n```\n.git/\n└── hooks\n   ├── # unimportant stuff\n   └── hooks.d\n      ├── email\n      │   └── pre-commit\n      ├── style-check\n      │   └── pre-commit\n      ├── trailing-whitespaces\n      │   └── pre-commit\n      ├── unresolved-merge\n      │   └── pre-commit\n      └── wip-check\n          └── pre-push\n```\n\nSo you create directory named `foo` in `.git/hooks/hooks.d` and there you create\nexecutable files that are exactly the same as any other hooks and when hook is\nfired all hooks are traversed and ran.\n\nIf you want to share your hooks as part of the project then you can create\ndirectory in your project that will have the same structure as `hooks.d`\nmentioned above, ex.:\n\n```\n.\n└── hooks\n   └── lint\n       └── pre-commit\n```\n\nAnd then tell `git-riff` to check this directory via setting local configuration\noption:\n\n```\ngit config --local hooks.path $PWD/hooks\n```\n\n## License\n\nSee [LICENSE](LICENSE).\n\n[git-hooks]: https://git-scm.com/docs/githooks\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhauleth%2Fgit-riff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhauleth%2Fgit-riff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhauleth%2Fgit-riff/lists"}