{"id":20699901,"url":"https://github.com/mrmarble/yahm","last_synced_at":"2026-04-27T03:32:30.425Z","repository":{"id":53671871,"uuid":"349211760","full_name":"MrMarble/yahm","owner":"MrMarble","description":"Simple cli tool to manage git hooks","archived":false,"fork":false,"pushed_at":"2023-08-30T14:16:30.000Z","size":329,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-17T19:14:49.096Z","etag":null,"topics":["git","hooks","pre-commit"],"latest_commit_sha":null,"homepage":"","language":"Go","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/MrMarble.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":"2021-03-18T20:42:22.000Z","updated_at":"2022-07-11T17:29:20.000Z","dependencies_parsed_at":"2024-06-20T05:40:08.131Z","dependency_job_id":"16386a93-401d-4d66-abad-69732eb84e4e","html_url":"https://github.com/MrMarble/yahm","commit_stats":null,"previous_names":["mrmarble/ghooks"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Fyahm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Fyahm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Fyahm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrMarble%2Fyahm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrMarble","download_url":"https://codeload.github.com/MrMarble/yahm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242967694,"owners_count":20214280,"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":["git","hooks","pre-commit"],"created_at":"2024-11-17T00:32:43.345Z","updated_at":"2025-12-25T03:37:43.623Z","avatar_url":"https://github.com/MrMarble.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://gopherize.me\"\u003e\n\u003cimg src=\"assets/gopher.png\" height=\"120\" alt=\"gopher with moustache\"\u003e\n\u003c/a\u003e\n\n### YAHM\nYet Another Hook Manager\n\n[![golangci-lint](https://github.com/MrMarble/yahm/actions/workflows/golangci.yml/badge.svg)](https://github.com/MrMarble/yahm/actions/workflows/golangci.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mrmarble/yahm)](https://goreportcard.com/report/github.com/mrmarble/yahm)\n![Lines of code](https://img.shields.io/tokei/lines/github/mrmarble/yahm)\n\u003c/div\u003e\n\n---\n\nYAHM is a simple cli to manage your git hooks without third dependencies like python or node.\n\n## Why?\n\nBecause I wanted to. I also don't like using [pre-commit](https://pre-commit.com/) because I don't have python on all the computers I use for coding and having to rely on third party repositories to run my hooks is a little weird, especially for running simple commands like `go test ./...` or `npm test` (although husky is :ok_hand: if you use node).\n\nI like my tools to be a single binary without system dependencies to use them anywhere without too much overhead.\n\n## Usage\n\nJust run `yahm install` on a folder containing the `.yahm.yaml` file (or pass the file using `-c`) and thats it\n\n### Config file\n\nThis is the basic structure of the config file, check this repo [.yahm.yaml](.yahm.yaml) file for more examples:\n\n```yaml\nhooks:\n  pre-commit:\n    actions:\n      - name: format\n        cmd: gofumpt -w -extra ./..\n      - name: test\n        cmd: go test ./...\n```\n\n### Planned features\nThings I'm interested in doing but may never implement lol\n\n- Load from file\n- Load from url\n- Improve git output\n- Built-in hooks. Like conventional commit messages\n- Show installed/modified hook on `yahm list`\n- Run in parallel?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrmarble%2Fyahm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrmarble%2Fyahm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrmarble%2Fyahm/lists"}