Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bhupesh-v/areyouok
A fast and easy to use URL health checker ⛑️ Keep your links healthy during tough times (Out of box support for GitHub Actions)
https://github.com/bhupesh-v/areyouok
actions automation blogging linkchecker monitoring tech-blogger url url-health url-health-checker
Last synced: 3 months ago
JSON representation
A fast and easy to use URL health checker ⛑️ Keep your links healthy during tough times (Out of box support for GitHub Actions)
- Host: GitHub
- URL: https://github.com/bhupesh-v/areyouok
- Owner: Bhupesh-V
- License: mit
- Created: 2021-01-06T06:28:16.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-04T18:05:44.000Z (over 2 years ago)
- Last Synced: 2024-10-28T05:12:36.732Z (3 months ago)
- Topics: actions, automation, blogging, linkchecker, monitoring, tech-blogger, url, url-health, url-health-checker
- Language: Go
- Homepage: https://bhupesh.me/areyouok-keep-your-urls-healthy-github-actions-golang/
- Size: 4.07 MB
- Stars: 33
- Watchers: 3
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
AreYouOK?
A minimal, fast & easy to use URL health checker
## Who is `AreYouOk` made for ?
- **OSS Package Maintainers** 📦️:
With packages comes documentation which needs to be constantly updated & checked for dead/non-functioning URLs.
- **Tech Bloggers** ✍️ :
If you are someone who writes countless tutorials & owns the source for your website, Use areyouok to make sure your blogs don't contain any non-functioning URLs.
- Literally anyone who wants to check a bunch of URLs for being dead ☠️ or not, SEO experts?With time _AreYouOk_ can evolve to analyze URLs over a remote resource as well, send your ideas ✨️ through [**Discussions**](https://github.com/Bhupesh-V/areyouok/discussions)
## Installation
- Linux
```bash
curl -LJO https://github.com/Bhupesh-V/areyouok/releases/latest/download/areyouok-linux-amd64
```- MacOS
```bash
curl -LJO https://github.com/Bhupesh-V/areyouok/releases/latest/download/areyouok-darwin-amd64
```- Windows
```bash
curl -LJO https://github.com/Bhupesh-V/areyouok/releases/latest/download/areyouok-windows-amd64.exe
```Check installation by running `areyouok -v`
```bash
$ mv areyouok-darwin-amd64 areyouok
$ areyouok -v
v1.0.0
```Download builds for other architectures from [**releases**](https://github.com/Bhupesh-V/areyouok/releases/latest)
## Usage
AreYouOk provides 3 optional arguments followed by a directory path (default: current directory)
1. `-t` type of files to scan for links
2. `-i` list of files or directories to ignore for links (node_modules, .git)
3. `-r` type of report to generateSome example usages:
- Analyze all HTML files for hyperlinks. The default directory path is set to current directory.
```bash
areyouok -t=html Documents/my-directory
```
There is not limitation on file type, to analyze json files use `-t=json`. The default type is set to `md` (markdown)- To ignore certain directories or file-types use the ignore `-i` flag.
```bash
areyouok -i=_layouts,.git,_site,README.md,build.py,USAGE.md
```- By default AreYouOk outputs analyzed data directly into console. To generate a report, use the `-r` flag
```bash
areyouok -i=_layouts,.git,_site,README.md,build.py,USAGE.md -r=html ~/Documents/til/
```
Currently supported report formats are: `json`, `txt`, `html` & `github`.Different report types provide different levels of information which is briefly summarized below:
1. **JSON** (report.json)
The JSON report can be used for other computational tasks as required (E.g emailing dead urls to yourself)
```json
{
"http://127.0.0.1:8000/": {
"code": "",
"message": "Get \"http://127.0.0.1:8000/\": dial tcp 127.0.0.1:8000: connect: connection refused",
"response_time": ""
},
"http://freecodecamp.org": {
"code": "200",
"message": "OK",
"response_time": "5.44s"
},
"http://ogp.me/": {
"code": "200",
"message": "OK",
"response_time": "3.60s"
},
"http://prnbs.github.io/projects/regular-expression-parser/": {
"code": "200",
"message": "OK",
"response_time": "0.25s"
},
"https://bhupeshv.me/30-Seconds-of-C++/": {
"code": "404",
"message": "Not Found",
"response_time": "3.84s"
},
...
}
```2. **Text** (report.txt)
The text format just lists the URLs which were not successfully fetched. Useful if you just want dead urls.
Text report also puts the no.of hyperlinks analyzed along with total files & total reponse time.```
74 URLs were analyzed across 31 files in 21.69sFollowing URLs are not OK:
http://freecodecamp.org`
http://127.0.0.1:8000/
https://drive.google.com/uc?export=view&id=`
https://drive.google.com/file/d/
https://drive.google.com/uc?export=view&id=$get_last
https://github.com/codeclassroom/PlagCheck/blob/master/docs/docs.md
https://bhupeshv.me/30-Seconds-of-C++/
```
Note that the total time would vary according to your internet speed & website latency.3. **HTML** (report.html)
The html report is the most superior formats of all & can be used to have a visual representaion of analyzed links.
Below is demo of how this HTML report looks like, [**you can see it live**]()
![report-latest](https://user-images.githubusercontent.com/34342551/105046278-e80db380-5a8e-11eb-8371-124fae8b3d7f.png)4. **GitHub** (report.github)
The github report format is well suited if you are utilizing Github Actions. The format generated is largely HTML, compatible with github's commonmark markdown renderer.
Below is a demo of a Github Action which reports the analyzed URLs through github issues. [Here is a demo link](https://github.com/Bhupesh-V/til/issues/2)
![demo-action](https://user-images.githubusercontent.com/34342551/105579706-169cce80-5dae-11eb-8dd6-b51bf23e63ee.png)
## Development
#### Prerequisites
- [Go 1.16](https://golang.org/dl/#unstable)
1. Clone the repository.
```bash
git https://github.com/Bhupesh-V/areyouok.git
```
2. Run tests.
```bash
go test -v
```
3. Format & Lint the project.
```bash
gofmt -w areyouok.go && golint areyouok.go
```## Projects Using `AreYouOk`
- [til](https://github.com/Bhupesh-V/til)
- [+ Add Yours](https://github.com/Bhupesh-V/areyouok/fork)## 📝 Changelog
See the [CHANGELOG.md](CHANGELOG.md) file for details.
## ☺️ Show your support
Support me by giving a ⭐️ if this project helped you! or just [![Twitter URL](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2FBhupesh-V%2Fareyouok%2F)](https://twitter.com/intent/tweet?url=https://github.com/Bhupesh-V/areyouok&text=areyouok%20via%20@bhupeshimself)
## 📝 License
Copyright © 2020 [Bhupesh Varshney](https://github.com/Bhupesh-V).
This project is [MIT](https://github.com/Bhupesh-V/areyouok/blob/master/LICENSE) licensed.## 👋 Contributing
Please read the [CONTRIBUTING](CONTRIBUTING.md) file for the process of submitting pull requests to us.
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!