{"id":39467311,"url":"https://github.com/3mdeb/hooks","last_synced_at":"2026-01-18T04:51:18.159Z","repository":{"id":77148858,"uuid":"549819801","full_name":"3mdeb/hooks","owner":"3mdeb","description":"pre-commit and other hooks","archived":false,"fork":false,"pushed_at":"2026-01-12T17:48:31.000Z","size":77,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-12T23:07:34.277Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/3mdeb.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-11T19:40:26.000Z","updated_at":"2025-11-28T09:53:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"b8153e5c-bada-4fe0-ae9c-59b970dd887e","html_url":"https://github.com/3mdeb/hooks","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"7f71006b0672530a3b8acf91006b1d4be8cfcf30"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/3mdeb/hooks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2Fhooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2Fhooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2Fhooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2Fhooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3mdeb","download_url":"https://codeload.github.com/3mdeb/hooks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2Fhooks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28530347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-01-18T04:51:17.494Z","updated_at":"2026-01-18T04:51:18.134Z","avatar_url":"https://github.com/3mdeb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\n## Goal\n\nThe goal of this repository is to provide a common place for (pre-commit) hooks\nused to verify the quality of deliverables (such as docuemntation) produced by\n3mdeb.\n\n## Usage\n\n* You need to clone this repository to obtain a local copy of tools and\n  configuration files. You can then use these tools against any other\n  repository/file you need.\n\n```bash\ngit clone https://github.com/3mdeb/hooks.git\n```\n\n* Refer to the section below for description of the individual tools.\n\n## Current state\n\nAt present, this repository does not meet the above goal (yet) ;)\n\nWe need to figure out how to easily setup and maintain hooks over **multiplte**\nrepositories. Until then, we can simply require to run selected tools from this\nrepository before publishing content.\n\nThis repository does provide some configs and scripts, which can be used to\nverify the basic quality of deliverables.\n\nPlease refer to the below sections to learn more about currently available\ntools.\n\n### Markdown\n\nThe goal of this tool is to verify the formatting guidelines of markdown\nfile, which we primarily use when creating documentation. **All** documentation\ncreated by 3mdeb **must** adhere to these guidelines (unless there are\nproject-specific guidelines stating otherwise).\n\nYou can refer to the [.markdownlint.yaml](.markdownlint.yaml) for guidelines\ndescription.\n\n* Run markdown linter on a file `README.md`:\n\n```bash\n./markdown.sh check README.md\n```\n\n* Automatically fix some of the problems in `README.md` file:\n\n\u003e This can significantly speed up quality improvements of the document. But\n\u003e keep in mind that you need to review automatic fixes before publishing them,\n\u003e of course.\n\n```bash\n./markdown.sh fix README.md\n```\n\n### namespell\n\n`namespell` searches files for proper nouns, where the capitalization (or lack\nthereof) of letters is important (e.g. `Zarhus` or `coreboot`) and checks if\nthey are spelled correctly. When the `-f/--fix` flag is passed, the tool\nautomatically fixes incorrectly spelled words.\n\nThere are several ways to ignore unwanted checks:\n\n* To exclude entire files/directories from being checked specify an\n[exclude](https://pre-commit.com/#config-exclude) section in\n`.pre-commit-config.yaml`.\n\n* Inline ignores are also supported\n\nInline ignore statements are comments in a file that tell `namespell` to ignore\nspecific rules/lines. They have the following structure:\n\n```bash\n\u003ccomment start\u003e namespell:disable \u003crule1, rule2\u003e\n```\n\nIf no rules are specified, all of them will be ignored.\n\nYou can use inline ignores to disable checks for an entire file or specific\nlines. If the statement is placed in the first line of the file, it will apply\nto the whole file. If it's placed at the end of a specific line, it will only\napply to that line. The example below illustrates this.\n\n```bash\n# namespell:disable Zarhus\n\nzarhus dasharo\nzarhus dasharo Coreboot # namespell:disable Dasharo\ndasharo Coreboot\n```\n\n```bash\nsomefile:3: 'dasharo' should be 'Dasharo'\nsomefile:4: 'Coreboot' should be 'coreboot'\nsomefile:5: 'dasharo' should be 'Dasharo'\nsomefile:5: 'Coreboot' should be 'coreboot'\n```\n\nAs you can see, the spelling of `Zarhus` is ignored throughout the whole file\nand the spelling of `Dasharo` is only ignored in line 4.\n\n### check-upstream-status\n\nThe goal is to enforce\n[these rules](https://docs.dasharo.com/dev-proc/source-code-structure/#commit-message-guidelines).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3mdeb%2Fhooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3mdeb%2Fhooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3mdeb%2Fhooks/lists"}