{"id":25732433,"url":"https://github.com/vigo/statoo","last_synced_at":"2025-05-07T19:00:30.564Z","repository":{"id":44736447,"uuid":"294986338","full_name":"vigo/statoo","owner":"vigo","description":"`statoo` is a super simple http GET tool for checking site health","archived":false,"fork":false,"pushed_at":"2024-09-09T08:15:18.000Z","size":145,"stargazers_count":33,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-31T13:04:57.645Z","etag":null,"topics":["command-line-tool","golang","health-check","http-client","http-status","monitoring","status"],"latest_commit_sha":null,"homepage":"","language":"Go","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/vigo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"vigo","patreon":"vigoo"}},"created_at":"2020-09-12T16:50:32.000Z","updated_at":"2024-09-09T08:15:22.000Z","dependencies_parsed_at":"2023-01-23T05:46:15.202Z","dependency_job_id":"dd159b74-88f1-4e16-ad14-6623a73fdbe7","html_url":"https://github.com/vigo/statoo","commit_stats":{"total_commits":84,"total_committers":3,"mean_commits":28.0,"dds":"0.023809523809523836","last_synced_commit":"7f1cc311eb1435a02c7110b52a628bbc91ffbeba"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Fstatoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Fstatoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Fstatoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Fstatoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vigo","download_url":"https://codeload.github.com/vigo/statoo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252940883,"owners_count":21828766,"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":["command-line-tool","golang","health-check","http-client","http-status","monitoring","status"],"created_at":"2025-02-26T03:41:01.172Z","updated_at":"2025-05-07T19:00:30.511Z","avatar_url":"https://github.com/vigo.png","language":"Go","funding_links":["https://github.com/sponsors/vigo","https://patreon.com/vigoo"],"categories":[],"sub_categories":[],"readme":"![Version](https://img.shields.io/badge/version-2.0.3-orange.svg)\n![Go](https://img.shields.io/github/go-mod/go-version/vigo/statoo)\n[![Documentation](https://godoc.org/github.com/vigo/statoo?status.svg)](https://pkg.go.dev/github.com/vigo/statoo)\n[![Go Report Card](https://goreportcard.com/badge/github.com/vigo/statoo)](https://goreportcard.com/report/github.com/vigo/statoo)\n![Go Build Status](https://github.com/vigo/statoo/actions/workflows/go.yml/badge.svg)\n![GolangCI-Lint Status](https://github.com/vigo/statoo/actions/workflows/golang-lint.yml/badge.svg)\n![Docker Lint Status](https://github.com/vigo/statoo/actions/workflows/docker-lint.yml/badge.svg)\n[![codecov](https://codecov.io/gh/vigo/statoo/branch/main/graph/badge.svg?token=BTVK8VKVZM)](https://codecov.io/gh/vigo/statoo)\n![Docker Pulls](https://img.shields.io/docker/pulls/vigo/statoo)\n![Docker Size](https://img.shields.io/docker/image-size/vigo/statoo)\n![Docker Build Status](https://github.com/vigo/statoo/actions/workflows/dockerhub.yml/badge.svg)\n[![Build and push to GitHub CR](https://github.com/vigo/statoo/actions/workflows/githubcr.yml/badge.svg)](https://github.com/vigo/statoo/actions/workflows/githubcr.yml)\n![Powered by Rake](https://img.shields.io/badge/powered_by-rake-blue?logo=ruby)\n\n\n# Statoo\n\nA super basic http tool that makes only `GET` request to given URL and returns\nstatus code of the response. Well, if you are `curl` or `http` (*httpie*) user,\nyou can make the same kind of request and get a kind-of same response since\n`statoo` is way better simple :)\n\n`statoo` injects `Accept-Encoding: gzip` request header to every http request!\n\n## Installation\n\nYou can install from the source;\n\n```bash\ngo install github.com/vigo/statoo/v2@latest\n```\n\nor, you can install from `brew`:\n\n```bash\nbrew tap vigo/statoo\nbrew install statoo\n```\n\n## Usage:\n\n```bash\nstatoo -h\n```\n\n```bash\nusage: ./statoo [-flags] URL\n\n  flags:\n\n  -version           display version information (%s)\n  -verbose           verbose output (default: false)\n  -request-header    request header, multiple allowed, \"Key: Value\", case sensitive\n  -response-header   response header for lookup -json is set, multiple allowed, \"Key: Value\"\n  -t, -timeout       default timeout in seconds (default: %d, min: %d, max: %d)\n  -h, -help          display help\n  -j, -json          provides json output\n  -f, -find          find text in response body if -json is set, case sensitive\n  -a, -auth          basic auth \"username:password\"\n  -s, -skip          skip certificate check and hostname in that certificate (default: false)\n  -commithash        displays current build/commit hash (%s)\n\n  examples:\n  \n  $ ./statoo \"https://ugur.ozyilmazel.com\"\n  $ ./statoo -timeout 30 \"https://ugur.ozyilmazel.com\"\n  $ ./statoo -verbose \"https://ugur.ozyilmazel.com\"\n  $ ./statoo -json https://vigo.io\n  $ ./statoo -json -find \"python\" https://vigo.io\n  $ ./statoo -json -find \"Python\" https://vigo.io\n  $ ./statoo -json -find \"Golang\" https://vigo.io\n  $ ./statoo -request-header \"Authorization: Bearer TOKEN\" https://vigo.io\n  $ ./statoo -request-header \"Authorization: Bearer TOKEN\" -header \"X-Api-Key: APIKEY\" https://vigo.io\n  $ ./statoo -auth \"user:secret\" https://vigo.io\n  $ ./statoo -json -response-header \"Server: GitHub.com\" https://vigo.io\n  $ ./statoo -json -response-header \"Server: GitHub.com\" -response-header \"Foo: bar\" https://vigo.io\n```\n\nLet’s try:\n\n```bash\nstatoo \"https://ugur.ozyilmazel.com\"\n# 200\n```\n\n```bash\nstatoo -verbose \"https://ugur.ozyilmazel.com\"\n# https://ugur.ozyilmazel.com -\u003e 200\n```\n\nor;\n\n```bash\nstatoo -json https://vigo.io\n```\n\nresponse;\n\n```json\n{\n    \"url\": \"https://vigo.io\",\n    \"status\": 200,\n    \"checked_at\": \"2021-05-13T18:09:26.342012Z\",\n    \"elapsed\": 210.587871,\n    \"skipcc\": false\n}\n```\n\n`elapsed` represents response is in milliseconds.\n\nLet’s find text inside of the response body. This feature is only available if\nthe `-json` flag is set! `length` represents response size in bytes\n(*gzipped*) when you search something in body!\n\n```bash\nstatoo -json -find \"Golang\" https://vigo.io\n```\n\n```json\n{\n    \"url\": \"https://vigo.io\",\n    \"status\": 200,\n    \"checked_at\": \"2022-01-26T20:08:33.735768Z\",\n    \"elapsed\": 242.93925,\n    \"length\": 7827,\n    \"find\": \"Golang\",\n    \"found\": true,\n    \"skipcc\": false\n}\n```\n\n```bash\nstatoo -json -find \"golang\" https://vigo.io # case sensitive\n```\n\n```json\n{\n    \"url\": \"https://vigo.io\",\n    \"status\": 200,\n    \"checked_at\": \"2022-01-26T20:14:03.487002Z\",\n    \"elapsed\": 253.665083,\n    \"length\": 7827,\n    \"find\": \"golang\",\n    \"found\": false,\n    \"skipcc\": false\n}\n```\n\nYou can add basic authentication via `-auth` flag\n\n```bash\nstatoo -auth \"username:password\" https://your.basic.auth.url\n```\n\nNow you can pass multiple `-request-header` flags:\n\n```bash\nstatoo -request-header \"Key1: Value1\" -request-header \"Key2: Value2\" \"https://ugur.ozyilmazel.com\"\n```\n\nYou can query/search for response headers. You can pass multiple values, all\n**case sensitive**!. Let’s lookup for `Server` and `Foo` response header values.\n`Server` value should be `GitHub.com` and `Foo` value should be `bar`:\n\n```bash\nstatoo -json -response-header \"Server: GitHub.com\" -response-header \"Foo: bar\" https://vigo.io\n```\n\nResponse:\n\n```json\n{\n    \"url\": \"https://vigo.io\",\n    \"status\": 200,\n    \"checked_at\": \"2022-07-09T17:51:14.792987Z\",\n    \"elapsed\": 305.502833,\n    \"skipcc\": false,\n    \"response_headers\": {\n        \"Foo=bar\": false,\n        \"Server=GitHub.com\": true\n    }\n}\n```\n\n`Server` response header matches exactly!\n\nIt’s better to pipe `-json` output to `jq` or `python -m json.tool` for pretty\nprint :)\n\nThat’s it!\n\nBash completions is available via;\n\n```bash\neval \"$(statoo bash-completion)\"\n```\n\n**New**\n\nYou can check current build/commit hash via;\n\n```bash\nstatoo -commithash\n```\n\n---\n\n## Rake Tasks\n\n```bash\n$ rake -T\n\nrake default               # show avaliable tasks (default task)\nrake docker:build          # Build image (locally)\nrake docker:lint           # lint Dockerfile\nrake docker:run[param]     # Run image (locally)\nrake release[revision]     # release new version major,minor,patch, default: patch\nrake test:run[verbose]     # run tests, generate coverage\nrake test:show_coverage    # show coverage after running tests\nrake test:update_coverage  # update coverage value in README\n```\n\n---\n\n## Docker\n\nhttps://hub.docker.com/r/vigo/statoo/\n\n```bash\n# latest\ndocker run vigo/statoo -h\ndocker run vigo/statoo -json -find \"Meetup organization\" https://vigo.io\n```\n\nto run docker locally via rake task:\n\n```bash\nrake docker:build\nrake docker:run[\"-h\"]\nrake docker:run[\"https://ugur.ozyilmazel.com\"]\n```\n\n---\n\n## Contributor(s)\n\n* [Uğur \"vigo\" Özyılmazel](https://github.com/vigo) - Creator, maintainer\n* [Erman İmer](https://github.com/ermanimer) - Contributor\n* [Rishi Kumar Ray](https://github.com/RishiKumarRay) - Contributor\n\n---\n\n## Contribute\n\nAll PR’s are welcome!\n\n1. `fork` (https://github.com/vigo/statoo/fork)\n1. Create your `branch` (`git checkout -b my-feature`)\n1. `commit` yours (`git commit -am 'add some functionality'`)\n1. `push` your `branch` (`git push origin my-feature`)\n1. Than create a new **Pull Request**!\n\nThis project is intended to be a safe, welcoming space for collaboration, and\ncontributors are expected to adhere to the [code of conduct][coc].\n\n---\n\n## License\n\nThis project is licensed under MIT\n\n---\n\n![Alt](https://repobeats.axiom.co/api/embed/7bd0cfb64834682c6cbac20e6168fc105bd27eeb.svg \"Repobeats analytics image\")\n\n[coc]: https://github.com/vigo/statoo/blob/main/CODE_OF_CONDUCT.md","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvigo%2Fstatoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvigo%2Fstatoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvigo%2Fstatoo/lists"}