{"id":15823538,"url":"https://github.com/bbortt/owl","last_synced_at":"2025-05-08T19:47:38.811Z","repository":{"id":48991417,"uuid":"341999127","full_name":"bbortt/owl","owner":"bbortt","description":"GIT hooks made easy.","archived":false,"fork":false,"pushed_at":"2021-10-17T12:43:05.000Z","size":86,"stargazers_count":0,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"canary","last_synced_at":"2024-04-26T08:41:50.603Z","etag":null,"topics":["git","hook","hooks"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/bbortt.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":"2021-02-24T18:39:02.000Z","updated_at":"2021-10-17T12:43:03.000Z","dependencies_parsed_at":"2022-09-05T07:41:49.269Z","dependency_job_id":null,"html_url":"https://github.com/bbortt/owl","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbortt%2Fowl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbortt%2Fowl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbortt%2Fowl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbortt%2Fowl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbortt","download_url":"https://codeload.github.com/bbortt/owl/tar.gz/refs/heads/canary","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231481041,"owners_count":18383149,"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","hook","hooks"],"created_at":"2024-10-05T08:20:29.816Z","updated_at":"2024-12-27T13:53:52.036Z","avatar_url":"https://github.com/bbortt.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🦉 OWL\n\n\u003e GIT hooks made easy.\n\n\u0026plus; Written in pure JS. \\\n\u0026plus; Configuration as code: Stored in readable JSON format. \\\n\u0026plus; MIT Licensed.\n\n[![@bbortt/owl](https://img.shields.io/npm/v/@bbortt/owl?label=@bbortt/owl)](https://www.npmjs.com/package/@bbortt/owl)\n[![Blazing Fast](https://img.shields.io/badge/speed-blazing%20%F0%9F%94%A5-brightgreen.svg)](https://twitter.com/acdlite/status/974390255393505280)\n[![License](https://img.shields.io/github/license/bbortt/owl)](https://github/bbortt/owl/blob/release/LICENSE)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fbbortt%2Fowl.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fbbortt%2Fowl?ref=badge_shield)\n\n**Table Of Contents**\n\n- [Installation](#installation)\n- [Configuration Files](#configuration-files)\n- [CLI](#cli)\n- [How Does It Work?](#how-does-it-work)\n- [License](#license)\n\n# Installation\n\nOnce downloaded you need to initialize the hook and create a configuration. Add `@bbortt/owl` via `npm` or `yarn` and\nexecute the installation command in order to set up the hooks:\n\n```shell\nowl install\n```\n\n## For Future use\n\nAdd `\"prepare\": \"node projects/core/src install\",` to your `scripts`, so future users will have Owl automatically\ninstalled.\n\n## Initialization\n\nYou can create a compatible rc file by hand or via `owl init` (see the [documentation](#init)). Add hooks using\nthe `owl add` command (`help` for help), or by hand too. Example:\n\n```shell\nowl add pre-commit \"npx pretty-quick --staged\"\n```\n\nTake a look at [configuration files](#configuration-files) or the [CLI documentation](#cli) for more information.\n\n# Configuration Files\n\nIn order to support multiple commands in the same hook this project reads configuration\nvia [`cosmiconfig`](https://github.com/davidtheclark/cosmiconfig). Valid files are for example `package.json`\n, `.owlrc.json` or other compatible rc files. \\\nThis does make it possible to configure hooks without using the [CLI](#cli)\ntoo. An example [`.owlrc.json`](https://github.com/bbortt/owl/blob/release/.owlrc.json):\n\n```json\n{\n  \"hooks\": {\n    \"pre-commit\": [\"npx pretty-quick --staged\"]\n  }\n}\n```\n\n## Supported Hooks\n\n- `pre-commit`\n\nMore to come in [#1](https://github.com/bbortt/owl/issues/1).\n\n# CLI\n\nThe following commands are executable through the cli `owl [COMMAND] args..`:\n\n## `install`\n\nSignature: `owl install [dir=.owl]`. \\\nArguments:\n\n- `--force` install outside process directory (useful for multi module projects).\n\nInstalls the binary into `.owl`. **Careful:** Do not manually update the generated files. They will be overwritten by\nany subsequent calls of this command (for example in a `postinstall` script).\n\n## `init`\n\nSignature: `owl init`.\n\nInitializes a configuration file called `.owlrc.json` in the root directory. It does not contain any hooks.\n\n## `add`\n\nSignature: `owl add [TYPE] [COMMAND]`.\n\nAdds a hook by type into any found configuration file. E.g.\nthe [`.owlrc.json`](https://github.com/bbortt/owl/blob/release/.owlrc.json) was completed\nusing `owl add pre-commit \"ngx pretty-quick --staged\"`.\n\nSupported hooks\nare: [ `applypatch-msg`, `commit-msg`, `fsmonitor-watchman`, `post-update`, `pre-applypatch`, `pre-commit`, `pre-merge-commit`, `pre-push`, `pre-rebase`, `pre-receive`, `prepare-commit-msg`, `update` ]\n.\n\n# How Does It Work?\n\n\u003e It really is no magic! To be documented.\n\n# License\n\nThis project is licensed under the terms of the [MIT license](https://github/bbortt/owl/blob/release/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbortt%2Fowl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbortt%2Fowl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbortt%2Fowl/lists"}