{"id":16252491,"url":"https://github.com/remarkablemark/husky-4-to-5","last_synced_at":"2025-03-19T20:31:20.876Z","repository":{"id":36972581,"uuid":"343211079","full_name":"remarkablemark/husky-4-to-5","owner":"remarkablemark","description":":dog: Migrate husky from 4 to 9.","archived":false,"fork":false,"pushed_at":"2024-04-30T05:04:58.000Z","size":1498,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-01T21:25:40.603Z","etag":null,"topics":["binary","cli","config","husky","javascript","migration","nodejs","npm","typescript","upgrade"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/husky-4-to-5","language":"TypeScript","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/remarkablemark.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["remarkablemark"],"patreon":"remarkablemark","open_collective":null,"ko_fi":"remarkablemark","tidelift":null,"community_bridge":null,"liberapay":"remarkablemark","issuehunt":null,"otechie":null,"custom":["https://b.remarkabl.org/teespring"]}},"created_at":"2021-02-28T20:46:56.000Z","updated_at":"2024-05-07T06:35:04.967Z","dependencies_parsed_at":"2023-10-11T07:34:01.975Z","dependency_job_id":"af155870-9236-46d3-8a75-68a7c0c42bb9","html_url":"https://github.com/remarkablemark/husky-4-to-5","commit_stats":{"total_commits":456,"total_committers":4,"mean_commits":114.0,"dds":"0.17324561403508776","last_synced_commit":"e6d55026a8163d3bc07bfe40175675a960668913"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Fhusky-4-to-5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Fhusky-4-to-5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Fhusky-4-to-5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Fhusky-4-to-5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remarkablemark","download_url":"https://codeload.github.com/remarkablemark/husky-4-to-5/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244501318,"owners_count":20462839,"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":["binary","cli","config","husky","javascript","migration","nodejs","npm","typescript","upgrade"],"created_at":"2024-10-10T15:13:53.267Z","updated_at":"2025-03-19T20:31:19.704Z","avatar_url":"https://github.com/remarkablemark.png","language":"TypeScript","funding_links":["https://github.com/sponsors/remarkablemark","https://patreon.com/remarkablemark","https://ko-fi.com/remarkablemark","https://liberapay.com/remarkablemark","https://b.remarkabl.org/teespring"],"categories":[],"sub_categories":[],"readme":"# husky-4-to-5\n\n[![NPM](https://nodei.co/npm/husky-4-to-5.png)](https://nodei.co/npm/husky-4-to-5/)\n\n[![NPM version](https://img.shields.io/npm/v/husky-4-to-5.svg)](https://www.npmjs.com/package/husky-4-to-5)\n[![build](https://github.com/remarkablemark/husky-4-to-5/actions/workflows/build.yml/badge.svg)](https://github.com/remarkablemark/husky-4-to-5/actions/workflows/build.yml)\n\n:dog: Migrate [husky](https://typicode.github.io/husky/) from 4 to 9.\n\n```sh\nnpx husky-4-to-5\n```\n\nAlternatively, there's [typicode/husky-4-to-8](https://github.com/typicode/husky-4-to-8) (requires npm 7+).\n\n## Install\n\n### Global\n\nInstall with npm:\n\n```sh\nnpm install --global husky-4-to-5\n```\n\nInstall with yarn:\n\n```sh\nyarn global add husky-4-to-5\n```\n\n## Usage\n\nIf the CLI is installed globally, you can execute it in the command-line:\n\n```sh\nhusky-4-to-5\n```\n\nOtherwise, you can install and execute the CLI like so:\n\n```sh\nnpx husky-4-to-5\n```\n\n## Explanation\n\nThe script:\n\n- updates `package.json` scripts:\n  - prepends `husky` to `prepare`\n- installs devDependency:\n  - [husky](https://www.npmjs.com/package/husky)\n\nFinally, the script adds the hooks from one of the config files:\n\n- `.huskyrc`\n- `.huskyrc.json`\n- `.huskyrc.js`\n- `husky.config.js`\n\nThe config file will be removed and changes to the repository will be committed.\n\nHooks may need to be manually updated to be run via the package manager. For example:\n\n```sh\njest → npx jest\n     → yarn jest\n\njest \u0026\u0026 eslint → npx jest \u0026\u0026 npx eslint\n               → yarn jest \u0026\u0026 yarn eslint\n\ncommitlint -E HUSKY_GIT_PARAMS → npx commitlint --edit $1\n                               → yarn commitlint --edit $1\n```\n\n## Lint\n\nLint files:\n\n```sh\nnpm run lint\n```\n\nFix lint errors:\n\n```sh\nnpm run lint:fix\n```\n\n## Release\n\nRelease and publish are automated with [Release Please](https://github.com/googleapis/release-please).\n\n## License\n\n[MIT](https://github.com/remarkablemark/husky-4-to-5/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremarkablemark%2Fhusky-4-to-5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremarkablemark%2Fhusky-4-to-5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremarkablemark%2Fhusky-4-to-5/lists"}