{"id":14978949,"url":"https://github.com/reviewdog/errorformat","last_synced_at":"2025-05-14T23:07:47.290Z","repository":{"id":38552423,"uuid":"71033292","full_name":"reviewdog/errorformat","owner":"reviewdog","description":"Vim's quickfix errorformat implementation in Go","archived":false,"fork":false,"pushed_at":"2025-05-02T10:52:10.000Z","size":288,"stargazers_count":110,"open_issues_count":23,"forks_count":44,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-05-02T11:46:50.206Z","etag":null,"topics":["checkstyle","errorformat","go","golang","lint","vim"],"latest_commit_sha":null,"homepage":"https://reviewdog.github.io/errorformat-playground/","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/reviewdog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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},"funding":{"github":["reviewdog"],"open_collective":"reviewdog","patreon":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2016-10-16T06:04:22.000Z","updated_at":"2025-04-28T11:59:29.000Z","dependencies_parsed_at":"2024-04-29T23:44:52.073Z","dependency_job_id":"f5a6f9c4-57eb-46e1-8b9c-1802f390dd0f","html_url":"https://github.com/reviewdog/errorformat","commit_stats":{"total_commits":210,"total_committers":36,"mean_commits":5.833333333333333,"dds":0.7428571428571429,"last_synced_commit":"1d3280ed6bd4c99964cee62740518a0bc2632535"},"previous_names":["haya14busa/errorformat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reviewdog%2Ferrorformat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reviewdog%2Ferrorformat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reviewdog%2Ferrorformat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reviewdog%2Ferrorformat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reviewdog","download_url":"https://codeload.github.com/reviewdog/errorformat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254243362,"owners_count":22038046,"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":["checkstyle","errorformat","go","golang","lint","vim"],"created_at":"2024-09-24T13:58:42.043Z","updated_at":"2025-05-14T23:07:42.282Z","avatar_url":"https://github.com/reviewdog.png","language":"Go","funding_links":["https://github.com/sponsors/reviewdog","https://opencollective.com/reviewdog"],"categories":[],"sub_categories":[],"readme":"## errorformat - Vim 'errorformat' implementation in Go\n\n[![Tests](https://github.com/reviewdog/errorformat/actions/workflows/tests.yml/badge.svg)](https://github.com/reviewdog/errorformat/actions/workflows/tests.yml)\n[![codecov][codecov-badge]](https://codecov.io/gh/reviewdog/errorformat)\n[![Go Report Card](https://goreportcard.com/badge/github.com/reviewdog/errorformat)](https://goreportcard.com/report/github.com/reviewdog/errorformat)\n[![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Go Reference](https://pkg.go.dev/badge/github.com/reviewdog/errorformat.svg)](https://pkg.go.dev/github.com/reviewdog/errorformat)\n\nerrorformat is Vim's quickfix [errorformat](https://vim-jp.org/vimdoc-en/quickfix.html#error-file-format) implementation in golang.\n\nerrorformat provides default errorformats for major tools.\nYou can see defined errorformats [here](https://godoc.org/github.com/reviewdog/errorformat/fmts).\nAlso, it's easy to [add new errorformat](fmts/README.md) in a similar way to Vim's errorformat.\n\nNote that it's highly compatible with Vim implementation, but it doesn't support Vim regex.\n\n### :arrow_forward: Playground :arrow_forward:\n\nTry errorformat on [the Playground](https://reviewdog.github.io/errorformat-playground/)!\n\nThe playground uses [gopherjs](https://github.com/gopherjs/gopherjs) to try\nerrorformat implementation in Go with JavaScript :sparkles:\n\n### Usage\n\n```go\nimport \"github.com/reviewdog/errorformat\"\n```\n\n### Example\n\n#### Code:\n\n```go\nin := `\ngolint.new.go:3:5: exported var V should have comment or be unexported\ngolint.new.go:5:5: exported var NewError1 should have comment or be unexported\ngolint.new.go:7:1: comment on exported function F should be of the form \"F ...\"\ngolint.new.go:11:1: comment on exported function F2 should be of the form \"F2 ...\"\n`\nefm, _ := errorformat.NewErrorformat([]string{`%f:%l:%c: %m`, `%-G%.%#`})\ns := efm.NewScanner(strings.NewReader(in))\nfor s.Scan() {\n    fmt.Println(s.Entry())\n}\n```\n\n#### Output:\n\n```\ngolint.new.go|3 col 5| exported var V should have comment or be unexported\ngolint.new.go|5 col 5| exported var NewError1 should have comment or be unexported\ngolint.new.go|7 col 1| comment on exported function F should be of the form \"F ...\"\ngolint.new.go|11 col 1| comment on exported function F2 should be of the form \"F2 ...\"\n```\n\n### CLI tool\n\n#### Installation\n\n```\ngo get -u github.com/reviewdog/errorformat/cmd/errorformat\n```\n\n#### Usage\n\n```\nUsage: errorformat [flags] [errorformat ...]\n\nerrorformat reads compiler/linter/static analyzer result from STDIN, formats\nthem by given 'errorformat' (90% compatible with Vim's errorformat. :h\nerrorformat), and outputs formated result to STDOUT.\n\nExample:\n        $ echo '/path/to/file:14:28: error message\\nfile2:3:4: msg' | errorformat \"%f:%l:%c: %m\"\n        /path/to/file|14 col 28| error message\n        file2|3 col 4| msg\n\n        $ golint ./... | errorformat -name=golint\n\nThe -f flag specifies an alternate format for the entry, using the\nsyntax of package template.  The default output is equivalent to -f\n'{{.String}}'. The struct being passed to the template is:\n\n        type Entry struct {\n                // name of a file\n                Filename string\n                // line number\n                Lnum int\n                // column number (first column is 1)\n                Col int\n                // true: \"col\" is visual column\n                // false: \"col\" is byte index\n                Vcol bool\n                // error number\n                Nr int\n                // search pattern used to locate the error\n                Pattern string\n                // description of the error\n                Text string\n                // type of the error, 'E', '1', etc.\n                Type rune\n                // true: recognized error message\n                Valid bool\n\n                // Original error lines (often one line. more than one line for multi-line\n                // errorformat. :h errorformat-multi-line)\n                Lines []string\n        }\n\nFlags:\n  -f string\n        format template for -w=template (default \"{{.String}}\")\n  -list\n        list defined errorformats\n  -name string\n        defined errorformat name\n  -sarif.tool-name string\n        Tool name for Sarif writer format. Use -name flag if available.\n  -w string\n        writer format (template|checkstyle|jsonl|sarif) (default \"template\")\n```\n\n```\n$ cat testdata/sbt.in\n[warn] /path/to/F1.scala:203: local val in method f is never used: (warning smaple 3)\n[warn]         val x = 1\n[warn]             ^\n[warn] /path/to/F1.scala:204: local val in method f is never used: (warning smaple 2)\n[warn]   val x = 2\n[warn]       ^\n[error] /path/to/F2.scala:1093: error: value ++ is not a member of Int\n[error]     val x = 1 ++ 2\n[error]               ^\n[warn] /path/to/dir/F3.scala:83: local val in method f is never used\n[warn]         val x = 4\n[warn]             ^\n[error] /path/to/dir/F3.scala:84: error: value ++ is not a member of Int\n[error]         val x = 5 ++ 2\n[error]                   ^\n[warn] /path/to/dir/F3.scala:86: local val in method f is never used\n[warn]         val x = 6\n[warn]             ^\n$ errorformat \"%E[%t%.%+] %f:%l: error: %m\" \"%A[%t%.%+] %f:%l: %m\" \"%Z[%.%+] %p^\" \"%C[%.%+] %.%#\" \"%-G%.%#\" \u003c testdata/sbt.in\n/path/to/F1.scala|203 col 13 warning| local val in method f is never used: (warning smaple 3)\n/path/to/F1.scala|204 col 7 warning| local val in method f is never used: (warning smaple 2)\n/path/to/F2.scala|1093 col 15 error| value \u0026#43;\u0026#43; is not a member of Int\n/path/to/dir/F3.scala|83 col 13 warning| local val in method f is never used\n/path/to/dir/F3.scala|84 col 19 error| value \u0026#43;\u0026#43; is not a member of Int\n/path/to/dir/F3.scala|86 col 13 warning| local val in method f is never used\n$ cat fmts/testdata/sbt.in | errorformat -name=sbt -w=checkstyle\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003ccheckstyle version=\"1.0\"\u003e\n  \u003cfile name=\"/home/haya14busa/src/github.com/reviewdog/errorformat/fmts/testdata/resources/scala/scalac.scala\"\u003e\n    \u003cerror column=\"3\" line=\"6\" message=\"missing argument list for method error in object Predef\" severity=\"error\"\u003e\u003c/error\u003e\n    \u003cerror column=\"15\" line=\"4\" message=\"private val in object F is never used\" severity=\"warning\"\u003e\u003c/error\u003e\n    \u003cerror column=\"15\" line=\"5\" message=\"private method in object F is never used\" severity=\"warning\"\u003e\u003c/error\u003e\n  \u003c/file\u003e\n\u003c/checkstyle\u003e\n$ cat fmts/testdata/sbt.in | errorformat -name=sbt -w=jsonl\n{\"filename\":\"/home/haya14busa/src/github.com/reviewdog/errorformat/fmts/testdata/resources/scala/scalac.scala\",\"lnum\":6,\"col\":3,\"vcol\":true,\"nr\":0,\"pattern\":\"\",\"text\":\"missing argument list for method error in object Predef\",\"type\":101,\"valid\":true,\"lines\":[\"[error] /home/haya14busa/src/github.com/reviewdog/errorformat/fmts/testdata/resources/scala/scalac.scala:6: missing argument list for method error in object Predef\",\"[error] Unapplied methods are only converted to functions when a function type is expected.\",\"[error] You can make this conversion explicit by writing `error _` or `error(_)` instead of `error`.\",\"[error]   error\",\"[error]   ^\"]}\n{\"filename\":\"/home/haya14busa/src/github.com/reviewdog/errorformat/fmts/testdata/resources/scala/scalac.scala\",\"lnum\":4,\"col\":15,\"vcol\":true,\"nr\":0,\"pattern\":\"\",\"text\":\"private val in object F is never used\",\"type\":119,\"valid\":true,\"lines\":[\"[warn] /home/haya14busa/src/github.com/reviewdog/errorformat/fmts/testdata/resources/scala/scalac.scala:4: private val in object F is never used\",\"[warn]   private val unused = 1\",\"[warn]               ^\"]}\n{\"filename\":\"/home/haya14busa/src/github.com/reviewdog/errorformat/fmts/testdata/resources/scala/scalac.scala\",\"lnum\":5,\"col\":15,\"vcol\":true,\"nr\":0,\"pattern\":\"\",\"text\":\"private method in object F is never used\",\"type\":119,\"valid\":true,\"lines\":[\"[warn] /home/haya14busa/src/github.com/reviewdog/errorformat/fmts/testdata/resources/scala/scalac.scala:5: private method in object F is never used\",\"[warn]   private def unusedF = {}\",\"[warn]               ^\"]}\n```\n\n### SARIF Support (experimental)\n\nIt supports [SARIF](https://sarifweb.azurewebsites.net/) (Static Analysis Results Interchange Format) as output experimentally. Use `-w=sarif` to give it a shot.\n\n\u003cdetails\u003e\n\u003csummary\u003e Example: errorformat -w=sarif\u003c/summary\u003e\n\n```shell\n$ cat fmts/testdata/sbt.in | errorformat -name=sbt -w=sarif\n{\n  \"$schema\": \"http://json.schemastore.org/sarif-2.1.0-rtm.4\",\n  \"runs\": [\n    {\n      \"results\": [\n        {\n          \"level\": \"error\",\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"fmts/testdata/resources/scala/scalac.scala\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startColumn\": 3,\n                  \"startLine\": 6\n                }\n              }\n            }\n          ],\n          \"message\": {\n            \"text\": \"missing argument list for method error in object Predef\"\n          }\n        },\n        {\n          \"level\": \"warning\",\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"fmts/testdata/resources/scala/scalac.scala\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startColumn\": 15,\n                  \"startLine\": 4\n                }\n              }\n            }\n          ],\n          \"message\": {\n            \"text\": \"private val in object F is never used\"\n          }\n        },\n        {\n          \"level\": \"warning\",\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"fmts/testdata/resources/scala/scalac.scala\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startColumn\": 15,\n                  \"startLine\": 5\n                }\n              }\n            }\n          ],\n          \"message\": {\n            \"text\": \"private method in object F is never used\"\n          }\n        }\n      ],\n      \"tool\": {\n        \"driver\": {\n          \"name\": \"sbt\"\n        }\n      }\n    }\n  ],\n  \"version\": \"2.1.0\"\n}\n```\n\n\u003c/details\u003e\n\n### Use cases of 'errorformat' outside Vim\n\n- [reviewdog/reviewdog - A code review dog who keeps your codebase healthy](https://github.com/haya14busa/reviewdog)\n- [mattn/efm-langserver - General purpose Language Server](https://github.com/mattn/efm-langserver)\n\n### :bird: Author\n\nhaya14busa (https://github.com/haya14busa)\n\n\u003c!-- From https://github.com/zchee/template --\u003e\n\n[travis-badge]: https://img.shields.io/travis/reviewdog/errorformat.svg?style=flat-square\u0026label=%20Travis%20CI\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bcharset%3Dutf-8%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgdmlld0JveD0iNSA0IDI0IDI0Ij48cGF0aCBmaWxsPSIjREREIiBkPSJNMTEuMzkyKzkuMzc0aDQuMDk2djEzLjEyaC0xLjUzNnYyLjI0aDYuMDgwdi0yLjQ5NmgtMS45MnYtMTMuMDU2aDQuMzUydjEuOTJoMS45ODR2LTMuOTA0aC0xNS4yOTZ2My45MDRoMi4yNHpNMjkuMjYzKzIuNzE4aC0yNC44NDhjLTAuNDMzKzAtMC44MzIrMC4zMjEtMC44MzIrMC43NDl2MjQuODQ1YzArMC40MjgrMC4zOTgrMC43NzQrMC44MzIrMC43NzRoMjQuODQ4YzAuNDMzKzArMC43NTMtMC4zNDcrMC43NTMtMC43NzR2LTI0Ljg0NWMwLTAuNDI4LTAuMzE5LTAuNzQ5LTAuNzUzLTAuNzQ5ek0yNS43MjgrMTIuMzgyaC00LjU0NHYtMS45MmgtMS43OTJ2MTAuNDk2aDEuOTJ2NS4wNTZoLTguNjR2LTQuOGgxLjUzNnYtMTAuNTZoLTEuNTM2djEuNzI4aC00Ljh2LTYuNDY0aDE3Ljg1NnY2LjQ2NHoiLz48L3N2Zz4=\n[circleci-badge]: https://img.shields.io/circleci/project/github/reviewdog/errorformat.svg?style=flat-square\u0026label=%20%20CircleCI\u0026logoWidth=16\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bcharset%3Dutf-8%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgdmlld0JveD0iMCAwIDIwMCAyMDAiPjxwYXRoIGZpbGw9IiNEREQiIGQ9Ik03NC43IDEwMGMwLTEzLjIgMTAuNy0yMy44IDIzLjgtMjMuOCAxMy4xIDAgMjMuOCAxMC43IDIzLjggMjMuOCAwIDEzLjEtMTAuNyAyMy44LTIzLjggMjMuOC0xMy4xIDAtMjMuOC0xMC43LTIzLjgtMjMuOHpNOTguNSAwQzUxLjggMCAxMi43IDMyIDEuNiA3NS4yYy0uMS4zLS4xLjYtLjEgMSAwIDIuNiAyLjEgNC44IDQuOCA0LjhoNDAuM2MxLjkgMCAzLjYtMS4xIDQuMy0yLjggOC4zLTE4IDI2LjUtMzAuNiA0Ny42LTMwLjYgMjguOSAwIDUyLjQgMjMuNSA1Mi40IDUyLjRzLTIzLjUgNTIuNC01Mi40IDUyLjRjLTIxLjEgMC0zOS4zLTEyLjUtNDcuNi0zMC42LS44LTEuNi0yLjQtMi44LTQuMy0yLjhINi4zYy0yLjYgMC00LjggMi4xLTQuOCA0LjggMCAuMy4xLjYuMSAxQzEyLjYgMTY4IDUxLjggMjAwIDk4LjUgMjAwYzU1LjIgMCAxMDAtNDQuOCAxMDAtMTAwUzE1My43IDAgOTguNSAweiIvPjwvc3ZnPg%3D%3D\n[codecov-badge]: https://img.shields.io/codecov/c/github/reviewdog/errorformat.svg?style=flat-square\u0026label=%20%20Codecov%2Eio\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bcharset%3Dutf-8%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDI1NiAyODEiPjxwYXRoIGZpbGw9IiNFRUUiIGQ9Ik0yMTguNTUxIDM3LjQxOUMxOTQuNDE2IDEzLjI4OSAxNjIuMzMgMCAxMjguMDk3IDAgNTcuNTM3LjA0Ny4wOTEgNTcuNTI3LjA0IDEyOC4xMjFMMCAxNDkuODEzbDE2Ljg1OS0xMS40OWMxMS40NjgtNy44MTQgMjQuNzUtMTEuOTQ0IDM4LjQxNy0xMS45NDQgNC4wNzkgMCA4LjE5OC4zNzMgMTIuMjQgMS4xMSAxMi43NDIgMi4zMiAyNC4xNjUgOC4wODkgMzMuNDE0IDE2Ljc1OCAyLjEyLTQuNjcgNC42MTQtOS4yMDkgNy41Ni0xMy41MzZhODguMDgxIDg4LjA4MSAwIDAgMSAzLjgwNS01LjE1Yy0xMS42NTItOS44NC0yNS42NDktMTYuNDYzLTQwLjkyNi0xOS4yNDVhOTAuMzUgOTAuMzUgMCAwIDAtMTYuMTItMS40NTkgODguMzc3IDg4LjM3NyAwIDAgMC0zMi4yOSA2LjA3YzguMzYtNTEuMjIyIDUyLjg1LTg5LjM3IDEwNS4yMy04OS40MDggMjguMzkyIDAgNTUuMDc4IDExLjA1MyA3NS4xNDkgMzEuMTE3IDE2LjAxMSAxNi4wMSAyNi4yNTQgMzYuMDMzIDI5Ljc4OCA1OC4xMTctMTAuMzI5LTQuMDM1LTIxLjIxMi02LjEtMzIuNDAzLTYuMTQ0bC0xLjU2OC0uMDA3YTkwLjk1NyA5MC45NTcgMCAwIDAtMy40MDEuMTExYy0xLjk1NS4xLTMuODk4LjI3Ny01LjgyMS41LS41NzQuMDYzLTEuMTM5LjE1My0xLjcwNy4yMzEtMS4zNzguMTg2LTIuNzUuMzk1LTQuMTA5LjYzOS0uNjAzLjExLTEuMjAzLjIzMS0xLjguMzUxYTkwLjUxNyA5MC41MTcgMCAwIDAtNC4xMTQuOTM3Yy0uNDkyLjEyNi0uOTgzLjI0My0xLjQ3LjM3NGE5MC4xODMgOTAuMTgzIDAgMCAwLTUuMDkgMS41MzhjLS4xLjAzNS0uMjA0LjA2My0uMzA0LjA5NmE4Ny41MzIgODcuNTMyIDAgMCAwLTExLjA1NyA0LjY0OWMtLjA5Ny4wNS0uMTkzLjEwMS0uMjkzLjE1MWE4Ni43IDg2LjcgMCAwIDAtNC45MTIgMi43MDFsLS4zOTguMjM4YTg2LjA5IDg2LjA5IDAgMCAwLTIyLjMwMiAxOS4yNTNjLS4yNjIuMzE4LS41MjQuNjM1LS43ODQuOTU4LTEuMzc2IDEuNzI1LTIuNzE4IDMuNDktMy45NzYgNS4zMzZhOTEuNDEyIDkxLjQxMiAwIDAgMC0zLjY3MiA1LjkxMyA5MC4yMzUgOTAuMjM1IDAgMCAwLTIuNDk2IDQuNjM4Yy0uMDQ0LjA5LS4wODkuMTc1LS4xMzMuMjY1YTg4Ljc4NiA4OC43ODYgMCAwIDAtNC42MzcgMTEuMjcybC0uMDAyLjAwOXYuMDA0YTg4LjAwNiA4OC4wMDYgMCAwIDAtNC41MDkgMjkuMzEzYy4wMDUuMzk3LjAwNS43OTQuMDE5IDEuMTkyLjAyMS43NzcuMDYgMS41NTcuMTA0IDIuMzM4YTk4LjY2IDk4LjY2IDAgMCAwIC4yODkgMy44MzRjLjA3OC44MDQuMTc0IDEuNjA2LjI3NSAyLjQxLjA2My41MTIuMTE5IDEuMDI2LjE5NSAxLjUzNGE5MC4xMSA5MC4xMSAwIDAgMCAuNjU4IDQuMDFjNC4zMzkgMjIuOTM4IDE3LjI2MSA0Mi45MzcgMzYuMzkgNTYuMzE2bDIuNDQ2IDEuNTY0LjAyLS4wNDhhODguNTcyIDg4LjU3MiAwIDAgMCAzNi4yMzIgMTMuNDVsMS43NDYuMjM2IDEyLjk3NC0yMC44MjItNC42NjQtLjEyN2MtMzUuODk4LS45ODUtNjUuMS0zMS4wMDMtNjUuMS02Ni45MTcgMC0zNS4zNDggMjcuNjI0LTY0LjcwMiA2Mi44NzYtNjYuODI5bDIuMjMtLjA4NWMxNC4yOTItLjM2MiAyOC4zNzIgMy44NTkgNDAuMzI1IDExLjk5N2wxNi43ODEgMTEuNDIxLjAzNi0yMS41OGMuMDI3LTM0LjIxOS0xMy4yNzItNjYuMzc5LTM3LjQ0OS05MC41NTQiLz48L3N2Zz4=\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freviewdog%2Ferrorformat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freviewdog%2Ferrorformat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freviewdog%2Ferrorformat/lists"}