{"id":23190374,"url":"https://github.com/felipstein/padronizacao-codigo","last_synced_at":"2025-04-05T06:41:49.177Z","repository":{"id":172312135,"uuid":"649127688","full_name":"Felipstein/padronizacao-codigo","owner":"Felipstein","description":"padronizacao-codigo","archived":false,"fork":false,"pushed_at":"2023-06-03T21:52:57.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-10T14:26:16.206Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Felipstein.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-06-03T21:42:33.000Z","updated_at":"2023-06-03T21:42:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"3d662610-f27d-46ce-be39-40a2a739922c","html_url":"https://github.com/Felipstein/padronizacao-codigo","commit_stats":null,"previous_names":["felipstein/padronizacao-codigo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Felipstein%2Fpadronizacao-codigo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Felipstein%2Fpadronizacao-codigo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Felipstein%2Fpadronizacao-codigo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Felipstein%2Fpadronizacao-codigo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Felipstein","download_url":"https://codeload.github.com/Felipstein/padronizacao-codigo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299791,"owners_count":20916186,"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-12-18T12:14:13.962Z","updated_at":"2025-04-05T06:41:49.156Z","avatar_url":"https://github.com/Felipstein.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Passo a Passo para criação de um projeto com padronização de commits e lint.\n\nPara que funcione, você precisa iniciar um repositório git no projeto.\n\n## 1. Configurar o Husky\n\nHusky é uma ferramente que intercepta comandos do git. Assim, você pode adicionar funcionalidades que serão automaticamente executadas quando algum comando git for realizado, por exemplo um commit.\n\n### Passo #1\n\nInstalar o husky\n```bash\nnpm install -D husky\n```\n\n### Passo #2\n\nPreparar o husky\n```bash\nnpx husky install\n```\n\nVocê também pode adicionar um script dentro do package.json para isso, e, inclusive, você pode criar esse script por cli:\n```bash\nnpm pkg set scripts.prepare=\"husky install\"\n\n# e então, executa-lo\nnpm run prepare\n```\n\n## 2. Configurar o commitlint dentro do husky\n\nAgora, precisamos que o husky intercepte algum commit e execute o cli do commitlint.\n\nExecute esse script para adicionar um hook:\n```bash\nnpx husky add .husky/commit-msg  'npx --no -- commitlint --edit ${1}'\n```\n\n\n## 3. Configurar o commitizen\n\no commitizen trás uma experiência diferente quando fazemos um commit. Ao invés de escrevermos `git commit -m \"e tentar acertar o commit convencional por aqui\"`. Nós podemos escrever: `git commit`, e ele começa uma sequência de perguntas para criar nosso commit padronizado.\n\n### Passo #1\n\nInstalar o commitizen\n```bash\nnpm install -D commitizen\n```\n\n### Passo #2\n\nIniciar configuração automatica do commitizen\n```bash\n# npm\nnpx commitizen init cz-conventional-changelog --save-dev --save-exact\n\n# yarn\nnpx commitizen init cz-conventional-changelog --yarn --dev --exact\n\n# pnpm\nnpx commitizen init cz-conventional-changelog --pnpm --save-dev --save-exact\n```\n\n## 4. \"Lintar\"/Indentar nosso código quando fazermos um commit\n\nPodemos usar o ESLint para lintar nosso código, deixa-lo padronizadinho e corrigido, quando algum commit ocorrer.\nPara isso, vamos usar o okonet/lint-staged.\n\n### Passo #1\n\nInstalar o lint-staged\n```bash\nnpm install -D lint-staged\n```\n\n### Passo #2\n\nConfigurar no package.json, adicione essa seção:\n```json\n\"lint-staged\": {\n  \"*.ts\": [\"npx eslint src/* --fix\"]\n},\n```\n(*.ts é todos os arquivos que ele executará esse comando)\n\n### Passo #3\n\nConfigurar com o husky\n```bash\nnpx husky add .husky/pre-commit \"npx link-staged\"\n```\n\n## [NÃO TERMINADO] (BÔNUS) Configurar o commitlint\n\nCommitlint é uma biblioteca que padroniza mensagens de um commit para o formato convencional deveras utilizado (e, se não me engano, foram eles mesmo que desenvolveram) pelo Angular.\n\n### Passo #1\n\nInstalar o commitlint\n```bash\nnpm install -D @commitlint/config-conventional @commitlint/cli\n```\n\n### Passo #2\n\nConfigurar o commitlint\n- Crie um arquivo na raiz do projeto com o nome `commitlint.config.js`\n- Adicione o código:\n```js\nmodule.exports = {\n  extends: ['@commitlint/config-conventional'],\n};\n```\n\nOu você pode executar um script que crie esse arquivo automaticamente:\n```bash\necho \"module.exports = {extends: ['@commitlint/config-conventional']}\" \u003e commitlint.config.js\n```\n\n### Passo #3\n\nPrecisamos agora utilizar o commitizen (npx git-cz) no lugar do \"git commit\", para que criamos o commit com uma outra experiência. Vamos usar o husky para isso.\n\n_Você pode reparar que, caso execute `npx git-cz`, ele irá começar um processo de commit_\n\n(Ainda não vi como configurar com husky hehe)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipstein%2Fpadronizacao-codigo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipstein%2Fpadronizacao-codigo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipstein%2Fpadronizacao-codigo/lists"}