{"id":13618211,"url":"https://github.com/gaurav-nelson/github-action-markdown-link-check","last_synced_at":"2025-10-23T20:32:49.511Z","repository":{"id":37754156,"uuid":"178552370","full_name":"gaurav-nelson/github-action-markdown-link-check","owner":"gaurav-nelson","description":"⛔️ DEPRECATED Check all links in markdown files if they are alive or dead. 🔗✔️PS: https://github.com/tcort/github-action-markdown-link-check","archived":false,"fork":false,"pushed_at":"2025-04-15T00:39:47.000Z","size":119,"stargazers_count":416,"open_issues_count":36,"forks_count":83,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-21T03:41:33.189Z","etag":null,"topics":["action","hacktoberfest","link-checker","link-checking","markdown","markdown-link-check","scheduled-runs"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/gaurav-nelson.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null}},"created_at":"2019-03-30T11:54:24.000Z","updated_at":"2025-04-15T00:41:04.000Z","dependencies_parsed_at":"2023-01-11T17:21:19.724Z","dependency_job_id":"915e5722-d9a0-43ef-8a8d-4df7cca9eb30","html_url":"https://github.com/gaurav-nelson/github-action-markdown-link-check","commit_stats":{"total_commits":89,"total_committers":28,"mean_commits":"3.1785714285714284","dds":0.5955056179775281,"last_synced_commit":"d53a906aa6b22b8979d33bc86170567e619495ec"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav-nelson%2Fgithub-action-markdown-link-check","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav-nelson%2Fgithub-action-markdown-link-check/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav-nelson%2Fgithub-action-markdown-link-check/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav-nelson%2Fgithub-action-markdown-link-check/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gaurav-nelson","download_url":"https://codeload.github.com/gaurav-nelson/github-action-markdown-link-check/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250172681,"owners_count":21386995,"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":["action","hacktoberfest","link-checker","link-checking","markdown","markdown-link-check","scheduled-runs"],"created_at":"2024-08-01T20:01:56.312Z","updated_at":"2025-10-23T20:32:49.499Z","avatar_url":"https://github.com/gaurav-nelson.png","language":"Shell","funding_links":["https://liberapay.com/gaurav-nelson/donate","https://liberapay.com/gaurav-nelson/"],"categories":["Shell"],"sub_categories":[],"readme":"\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ch1\u003e ⛔️ Deprecation notice (Apr 2025) \u003c/h1\u003e\n      \u003cp\u003e\n        This repository is now ⛔️ \u003cstrong\u003edeprecated\u003c/strong\u003e and is no longer actively maintained.\n      \u003c/p\u003e\n      \u003cp\u003e\n        For support and further development, please use the maintained fork available at\n        \u003ca href=\"https://github.com/tcort/github-action-markdown-link-check\"\u003eTcort GitHub Action Markdown Link Check\u003c/a\u003e.\n      \u003c/p\u003e\n      \u003chr /\u003e\n      \u003cp\u003e\n        I have also developed a new tool called\n        \u003ca href=\"https://github.com/UmbrellaDocs/linkspector\"\u003eLinkspector\u003c/a\u003e,\n        which offers improved functionality and reduced false positives.\n        You can try this tool as an alternative if it fits your needs.\n      \u003c/p\u003e\n      \u003cp\u003e\n        Try \u003ca href=\"https://github.com/UmbrellaDocs/action-linkspector\"\u003eGitHub Action Linkspector\u003c/a\u003e!\n      \u003c/p\u003e\n      \u003chr /\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### GitHub Action - Markdown link check 🔗✔️\n[![GitHub Marketplace](https://img.shields.io/badge/GitHub%20Marketplace-Markdown%20link%20check-brightgreen?style=for-the-badge)](https://github.com/marketplace/actions/markdown-link-check)\n\u003ca href=\"https://liberapay.com/gaurav-nelson/donate\"\u003e\u003cimg alt=\"Donate using Liberapay\" src=\"https://liberapay.com/assets/widgets/donate.svg\"\u003e\u003c/a\u003e\n\nThis GitHub action checks all Markdown files in your repository for broken links. (Uses [tcort/markdown-link-check](https://github.com/tcort/markdown-link-check))\n\n## How to use\n1. Create a new file in your repository `.github/workflows/action.yml`.\n1. Copy-paste the following workflow in your `action.yml` file:\n\n   ```yml\n   name: Check Markdown links\n\n   on: push\n\n   jobs:\n     markdown-link-check:\n       runs-on: ubuntu-latest\n       steps:\n       - uses: actions/checkout@master\n       - uses: gaurav-nelson/github-action-markdown-link-check@v1\n   ```\n\n### Real-life usage samples\n\nFollowing is a list of some of the repositories which are using GitHub Action -\nMarkdown link check.\n\n1. [netdata](https://github.com/netdata/netdata/blob/master/.github/workflows/docs.yml) ![](https://img.shields.io/github/stars/netdata/netdata?style=social)\n1. [GoogleChrome/lighthouse (Weekly cron job)](https://github.com/GoogleChrome/lighthouse/blob/master/.github/workflows/cron-weekly.yml)\n   ![](https://img.shields.io/github/stars/GoogleChrome/lighthouse?style=social)\n1. [tendermint/tendermint](https://github.com/tendermint/tendermint/blob/master/.github/workflows/markdown-links.yml)\n   ![](https://img.shields.io/github/stars/tendermint/tendermint?style=social)\n1. [pyroscope-io/pyroscope](https://github.com/pyroscope-io/pyroscope/blob/main/.github/workflows/lint-markdown.yml)\n   ![](https://img.shields.io/github/stars/pyroscope-io/pyroscope?style=social)\n\nIf you are using this on production, consider [buying me a coffee](https://liberapay.com/gaurav-nelson/) ☕.\n\n## Configuration\n\n- [Custom variables](#custom-variables)\n- [Scheduled runs](#scheduled-runs)\n- [Disable check for some links](#disable-check-for-some-links)\n- [Check only modified files in a pull request](#check-only-modified-files-in-a-pull-request)\n- [Check multiple directories and files](#check-multiple-directories-and-files)\n- [Status code 429: Too many requests](#too-many-requests)\n- [GitHub links failure fix](#github-links-failure-fix)\n\n### Custom variables\nYou customize the action by using the following variables:\n\n| Variable | Description | Default value |\n|:----------|:--------------|:-----------|\n|`use-quiet-mode`| Specify `yes` to only show errors in output.| `no`|\n|`use-verbose-mode`|Specify `yes` to show detailed HTTP status for checked links. |`no` |\n|`config-file`|Specify a [custom configuration file](https://github.com/tcort/markdown-link-check#config-file-format) for markdown-link-check. You can use it to remove false-positives by specifying replacement patterns and ignore patterns. The filename is interpreted relative to the repository root.|`mlc_config.json`|\n|`folder-path` |By default the `github-action-markdown-link-check` action checks for all markdown files in your repository. Use this option to limit checks to only specific folders. Use comma separated values for checking multiple folders. |`.` |\n|`max-depth` |Specify how many levels deep you want to check in the directory structure. The default value is `-1` which means check all levels.|`-1` |\n|`check-modified-files-only` |Use this variable to only check modified markdown files instead of checking all markdown files. The action uses `git` to find modified markdown files. Only use this variable when you run the action to check pull requests.|`no`|\n|`base-branch`|Use this variable to specify the branch to compare when finding modified markdown files. |`master`|\n|`file-extension`|By default the `github-action-markdown-link-check` action checks files in your repository with the `.md` extension. Use this option to specify a different file extension such as `.markdown` or `.mdx`.|`.md`|\n|`file-path` | Specify additional files (with complete path and extension) you want to check. Use comma separated values for checking multiple files. See [Check multiple directories and files](#check-multiple-directories-and-files) section for usage.| - |\n\n#### Sample workflow with variables\n\n```yml\nname: Check Markdown links\n\non: push\n\njobs:\n  markdown-link-check:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@master\n    - uses: gaurav-nelson/github-action-markdown-link-check@v1\n      with:\n        use-quiet-mode: 'yes'\n        use-verbose-mode: 'yes'\n        config-file: 'mlc_config.json'\n        folder-path: 'docs/markdown_files'\n        max-depth: 2\n```\n\n### Scheduled runs\nIn addition to checking links on every push, or pull requests, its also a good\nhygiene to check for broken links regularly as well. See\n[Workflow syntax for GitHub Actions - on.schedule](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onschedule)\nfor more details.\n\n#### Sample workflow with scheduled job\n\n```yml\nname: Check Markdown links\n\non:\n  push:\n    branches:\n    - master\n  schedule:\n  # Run everyday at 9:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07)\n  - cron: \"0 9 * * *\"\n\njobs:\n  markdown-link-check:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@master\n    - uses: gaurav-nelson/github-action-markdown-link-check@v1\n      with:\n        use-quiet-mode: 'yes'\n        use-verbose-mode: 'yes'\n        config-file: 'mlc_config.json'\n        folder-path: 'docs/markdown_files'\n```\n\n### Disable check for some links\nYou can include the following HTML comments into your markdown files to disable\nchecking for certain links in a markdown document.\n\n1. `\u003c!-- markdown-link-check-disable --\u003e` and `\u003c!-- markdown-link-check-enable--\u003e`: Use these to disable links for all links appearing between these\n    comments.\n   - Example:\n     ```md\n     \u003c!-- markdown-link-check-disable --\u003e\n     ## Section\n\n     Disbale link checking in this section. Ignore this [Bad Link](https://exampleexample.cox)\n     \u003c!-- markdown-link-check-enable --\u003e\n     ```\n2. `\u003c!-- markdown-link-check-disable-next-line --\u003e` Use this comment to disable link checking for the next line.\n3. `\u003c!-- markdown-link-check-disable-line --\u003e` Use this comment to disable link\n   checking for the current line.\n\n### Check only modified files in a pull request\n\nUse the following workflow to only check links in modified markdown files in a\npull request.\n\nWhen\nyou use this variable, the action finds modified files between two commits:\n- latest commit in you PR\n- latest commit in the `master` branch. If you are suing a different branch to\n  merge PRs, specify the branch using `base-branch`.\n\n\u003e **NOTE**: We can also use GitHub API to get all modified files in a PR, but that\n\u003e would require tokens and stuff, create an issue or PR if you need that.\n\n```yml\non: [pull_request]\nname: Check links for modified files\njobs:\n  markdown-link-check:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@master\n    - uses: gaurav-nelson/github-action-markdown-link-check@v1\n      with:\n        use-quiet-mode: 'yes'\n        use-verbose-mode: 'yes'\n        check-modified-files-only: 'yes'\n\n```\n\n### Check multiple directories and files\n\n```yml\non: [pull_request]\nname: Check links for modified files\njobs:\n  markdown-link-check:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@master\n    - uses: gaurav-nelson/github-action-markdown-link-check@v1\n      with:\n        use-quiet-mode: 'yes'\n        folder-path: 'md/dir1, md/dir2'\n        file-path: './README.md, ./LICENSE, ./md/file4.markdown'\n```\n\n### Too many requests\nUse `retryOn429`, `retry-after`, `retryCount`, and `fallbackRetryDelay` in your custom configuration file.\nSee https://github.com/tcort/markdown-link-check#config-file-format for details.\n\nOr mark 429 status code as alive:\n```json\n{\n  \"aliveStatusCodes\": [429, 200]\n}\n```\n\n### GitHub links failure fix\nUse the following `httpHeaders` in your custom configuration file to fix GitHub links failure.\n\n```json\n{\n  \"httpHeaders\": [\n    {\n      \"urls\": [\"https://github.com/\", \"https://guides.github.com/\", \"https://help.github.com/\", \"https://docs.github.com/\"],\n      \"headers\": {\n        \"Accept-Encoding\": \"zstd, br, gzip, deflate\"\n      }\n    }\n  ]\n}\n```\n\n## Example Usage\n\nConsider a workflow file that checks for the status of hyperlinks on push to the master branch,\n\n``` yml\nname: Check .md links\n\non:\n  push: [master]\n\njobs:\n  markdown-link-check:\n    runs-on: ubuntu-latest\n    # check out the latest version of the code\n    steps:\n    - uses: actions/checkout@v3\n\n    # Checks the status of hyperlinks in .md files in verbose mode\n    - name: Check links\n      uses: gaurav-nelson/github-action-markdown-link-check@v1\n      with:\n        use-verbose-mode: 'yes'\n```\nA file `test.md` exists, containing\n\n![image](https://user-images.githubusercontent.com/53875297/159135478-87194037-f3d6-4ca9-9da8-f01dac482fbc.png)\n\nOn running the workflow described above, the output shown below is obtained\n\n![image](https://user-images.githubusercontent.com/53875297/159135426-9f439d39-8bb3-40f0-9255-9efe2b493c1a.png)\n\n\n## Versioning\nGitHub Action - Markdown link check follows the [GitHub recommended versioning strategy](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md).\n\n1. To use a specific released version of the action ([Releases](https://github.com/gaurav-nelson/github-action-markdown-link-check/releases)):\n   ```yml\n   - uses: gaurav-nelson/github-action-markdown-link-check@1.0.1\n   ```\n1. To use a major version of the action:\n   ```yml\n   - uses: gaurav-nelson/github-action-markdown-link-check@v1\n   ```\n1. You can also specify a [specific commit SHA](https://github.com/gaurav-nelson/github-action-markdown-link-check/commits/master) as an action version:\n   ```yml\n   - uses: gaurav-nelson/github-action-markdown-link-check@44a942b2f7ed0dc101d556f281e906fb79f1f478\n   ```\n\n\u003chr\u003e\n\u003cp align=\"center\"\u003e\n \u003ca name=\"coffee\" href=\"https://liberapay.com/gaurav-nelson/\"\u003e\n  \u003cimg src=\"https://i.imgur.com/1Q1YoHz.gif\" alt=\"Buy me a coffee.\"\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaurav-nelson%2Fgithub-action-markdown-link-check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaurav-nelson%2Fgithub-action-markdown-link-check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaurav-nelson%2Fgithub-action-markdown-link-check/lists"}