{"id":13740748,"url":"https://github.com/tokopedia/gripmock","last_synced_at":"2026-01-14T11:17:12.555Z","repository":{"id":37406181,"uuid":"130831535","full_name":"tokopedia/gripmock","owner":"tokopedia","description":"gRPC Mock Server","archived":false,"fork":false,"pushed_at":"2025-07-17T10:39:06.000Z","size":6686,"stargazers_count":716,"open_issues_count":56,"forks_count":167,"subscribers_count":191,"default_branch":"master","last_synced_at":"2025-08-14T09:52:57.854Z","etag":null,"topics":["grpc","mock","mockserver"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tokopedia.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}},"created_at":"2018-04-24T09:41:50.000Z","updated_at":"2025-08-04T13:05:56.000Z","dependencies_parsed_at":"2024-06-18T13:58:54.570Z","dependency_job_id":"dc0336be-db17-4975-8e1f-49b4e52cb4f8","html_url":"https://github.com/tokopedia/gripmock","commit_stats":null,"previous_names":["jekiapp/gripmock"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/tokopedia/gripmock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokopedia%2Fgripmock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokopedia%2Fgripmock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokopedia%2Fgripmock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokopedia%2Fgripmock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tokopedia","download_url":"https://codeload.github.com/tokopedia/gripmock/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokopedia%2Fgripmock/sbom","scorecard":{"id":514620,"data":{"date":"2022-11-28","repo":{"name":"github.com/tokopedia/gripmock","commit":"2dbe6716e0227b84852ccccd476a975e53f2b34b"},"scorecard":{"version":"v4.8.0-84-gc61f6bc","commit":"c61f6bc297ee71dc4b5f2511144d6c031b946089"},"score":3.9,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) out of 30 and 0 issue activity out of 30 found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#maintained"}},{"name":"Code-Review","score":3,"reason":"5 out of last 15 changesets reviewed before merge -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"no vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE-MIT:1","Info: FSF or OSI recognized license: LICENSE-MIT:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: MIT-LICENSE.txt:1","Info: FSF or OSI recognized license: MIT-LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: COPYING:1","Info: FSF or OSI recognized license: COPYING:1","Info: License file found in expected location: LICENSE.md:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: MIT-LICENSE:1","Info: FSF or OSI recognized license: MIT-LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: MIT-LICENCE.txt:1","Info: FSF or OSI recognized license: MIT-LICENCE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENCE:1","Info: FSF or OSI recognized license: LICENCE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: MIT-LICENSE:1","Info: FSF or OSI recognized license: MIT-LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE-CC0:1","Info: FSF or OSI recognized license: LICENSE-CC0:1","Info: License file found in expected location: MIT-LICENSE.txt:1","Info: FSF or OSI recognized license: MIT-LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.rst:1","Info: FSF or OSI recognized license: LICENSE.rst:1","Info: License file found in expected location: LICENSE.rst:1","Info: FSF or OSI recognized license: LICENSE.rst:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: license.md:1","Info: FSF or OSI recognized license: license.md:1","Info: License file found in expected location: license.md:1","Info: FSF or OSI recognized license: license.md:1","Info: License file found in expected location: license.md:1","Info: FSF or OSI recognized license: license.md:1","Info: License file found in expected location: license.md:1","Info: FSF or OSI recognized license: license.md:1","Info: License file found in expected location: license.md:1","Info: FSF or OSI recognized license: license.md:1","Info: License file found in expected location: LICENSE.md:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: COPYRIGHT:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYRIGHT:1","Info: License file found in expected location: LICENSE-APACHE:1","Info: FSF or OSI recognized license: LICENSE-APACHE:1","Info: License file found in expected location: COPYRIGHT:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYRIGHT:1","Info: License file found in expected location: COPYRIGHT:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYRIGHT:1","Info: License file found in expected location: COPYRIGHT:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYRIGHT:1","Info: License file found in expected location: COPYRIGHT:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYRIGHT:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: license:1","Info: FSF or OSI recognized license: license:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE.md:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: MIT-LICENSE:1","Info: FSF or OSI recognized license: MIT-LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENCE:1","Info: FSF or OSI recognized license: LICENCE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE-MIT:1","Info: FSF or OSI recognized license: LICENSE-MIT:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE-MIT:1","Info: FSF or OSI recognized license: LICENSE-MIT:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: COPYRIGHT:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYRIGHT:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: License.md:1","Info: FSF or OSI recognized license: License.md:1","Info: License file found in expected location: License.md:1","Info: FSF or OSI recognized license: License.md:1","Info: License file found in expected location: License.md:1","Info: FSF or OSI recognized license: License.md:1","Info: License file found in expected location: License.md:1","Info: FSF or OSI recognized license: License.md:1","Info: License file found in expected location: license:1","Info: FSF or OSI recognized license: license:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: License.md:1","Warn: Any licence detected not an FSF or OSI recognized license: License.md:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.txt:1","Info: FSF or OSI recognized license: LICENSE.txt:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Warn: Any licence detected not an FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE.md:1","Info: FSF or OSI recognized license: LICENSE.md:1","Info: License file found in expected location: license.txt:1","Warn: Any licence detected not an FSF or OSI recognized license: license.txt:1","Info: License file found in expected location: COPYING:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYING:1","Info: License file found in expected location: COPYING:1","Warn: Any licence detected not an FSF or OSI recognized license: COPYING:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1","Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#license"}},{"name":"Token-Permissions","score":0,"reason":"non read-only tokens detected in GitHub workflows","details":["Warn: no topLevel permission defined: .github/workflows/integration-test.yml:1: update your workflow using https://app.stepsecurity.io/secureworkflow/tokopedia/gripmock/integration-test.yml/master?enable=permissions"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"no published package detected","details":["Warn: no GitHub publishing workflow detected"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":7,"reason":"dependency not pinned by hash detected -- score normalized to 7","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration-test.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/tokopedia/gripmock/integration-test.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating golang to golang@sha256:dc76ef03e54c34a00dcdca81e55c242d24b34d231637776c4bb5c1a8e8514253","Warn: goCommand not pinned by hash: Dockerfile:13","Info: Third-party GitHubActions are pinned","Info: no insecure (not pinned by hash) dependency downloads found in Dockerfiles","Info: no insecure (not pinned by hash) dependency downloads found in shell scripts"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#pinned-dependencies"}},{"name":"Dependency-Update-Tool","score":0,"reason":"no update tool detected","details":["Warn: Config file not detected in source location for dependabot, renovatebot, Sonatype Lift, or\n\t\t\tPyUp (Python). We recommend setting this configuration in code so it can be easily verified by others."],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#dependency-update-tool"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":null,"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 are checked with a SAST tool","Warn: CodeQL tool not detected"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#sast"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":null,"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":["Warn: no GitHub releases found"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":1,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'force pushes' disabled on branch 'master'","Info: 'allow deletion' disabled on branch 'master'","Info: status check found to merge onto on branch 'master'","Warn: number of required reviewers is only 0 on branch 'master'","Warn: codeowner review is not required on branch 'master'","Warn: branch protection not enabled for branch 'v1.11-beta'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c61f6bc297ee71dc4b5f2511144d6c031b946089/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-20T01:29:37.033Z","repository_id":37406181,"created_at":"2025-08-20T01:29:37.033Z","updated_at":"2025-08-20T01:29:37.033Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28418089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["grpc","mock","mockserver"],"created_at":"2024-08-03T04:00:51.852Z","updated_at":"2026-01-14T11:17:12.526Z","avatar_url":"https://github.com/tokopedia.png","language":"Go","funding_links":[],"categories":["Language-Specific","Go"],"sub_categories":["Go"],"readme":"# GripMock\nGripMock is a **mock server** for **gRPC** services. It uses a `.proto` file to generate implementation of gRPC service for you.\nYou can use gripmock for setting up end-to-end testing or as a dummy server in a software development phase.\nThe server implementation is in GoLang but the client can be in any programming language that supports gRPC.\n\n---\n\n### Note from the author\nHi all, Jackie here. First of all, I would like to thank you for all those who have contributed to this project. This project has been and will be maintained in my free time, and I maintain it basically by myself, so I apologize for any extremely delayed responses from my side. \n\nRegarding contribution:\n- Please raise a PR with a detailed description and state a clear motivation. \n- The code implementation should meet the standards that have been set in this repo. \n- Only well-demanded features will be accepted, so if you think a feature is uniquely suited to your use case, you can keep it to yourself.\n- Tests are mandatory, both unit tests and integration tests whenever applicable. \n\nRegarding roadmap:\n- I would like to keep gripmock as simple as possible. I want this tool to be as reliable as possible and easy to maintain.\n- My priority is to keep up with the latest updates from the frameworks (go, grpc, protoc, etc.) so that this tool can be used with the latest proto.\n- Once in a while, I'll check the issues and PR list to see what features are worth adding to gripmock. \n\n---\n\n## Quick Usage\nFirst, prepare your `.proto` file. Or you can use `hello.proto` in `example/simple/` folder. Suppose you put it in `/mypath/hello.proto`. We will use Docker image for easier example test.\n\n- Install [Docker](https://docs.docker.com/install/)\n- Run `docker pull tkpd/gripmock` to pull the image\n- We will mount `/mypath/hello.proto` (it must be a fullpath) into a container and also we expose ports needed. Run `docker run -p 4770:4770 -p 4771:4771 -v /mypath:/proto tkpd/gripmock /proto/hello.proto`\n- On a separate terminal, we will add a stub into the stub service. Run `curl -X POST -d '{\"service\":\"Gripmock\",\"method\":\"SayHello\",\"input\":{\"equals\":{\"name\":\"gripmock\"}},\"output\":{\"data\":{\"message\":\"Hello GripMock\"}}}' localhost:4771/add `\n- Now we are ready to test it with our client. You can find a client example file under `example/simple/client/`. Execute the example in your preferred language. Example for Go: `go run example/simple/client/*.go`\n\nCheck [`example`](https://github.com/tokopedia/gripmock/tree/master/example) folder for various use cases of gripmock.\n\n---\n\n## How It Works\n![Running Gripmock](/assets/images/gripmock_readme-running%20system.png)\n\nFrom client perspective, GripMock has 2 main components:\n1. GRPC server that serves on `tcp://localhost:4770`. Its main job is to serve incoming RPC calls from client and then parse the input so that it can be posted to Stub service to find the perfect stub match.\n2. Stub server that serves on `http://localhost:4771`. Its main job is to store all the stub mappings. We can add a new stub or list existing stubs using http request.\n\nMatched stub will be returned to GRPC service then further parse it to respond to the RPC call.\n\n\nFrom technical perspective, GripMock consists of 2 binaries. \nThe first binary is the gripmock itself, which will generate the gRPC server using the plugin installed in the system (see [Dockerfile](Dockerfile)). \nWhen the server successfully generated, it will be invoked in parallel with stub server which ends up opening 2 ports for client to use.\n\nThe second binary is the protoc plugin which is located in the folder [protoc-gen-gripmock](/protoc-gen-gripmock). This plugin is the one who translates protobuf declaration into a gRPC server in Go programming language. \n\n![Inside GripMock](/assets/images/gripmock_readme-inside.png)\n\n---\n\n## Stubbing\n\nStubbing is the essential mocking feature of GripMock. It will match and return the expected result into GRPC service. This is where you put all your request expectations and responses.\n\n### Dynamic stubbing\nYou could add stubbing on the fly with a simple REST API. HTTP stub server is running on port `:4771`\n\n- `GET /` Will list all stubs mapping.\n- `POST /add` Will add stub with provided stub data\n- `POST /find` Find matching stub with provided input. see [Input Matching](#input_matching) below.\n- `GET /clear` Clear stub mappings.\n- `POST /reset` Reset stub mappings by clearing all stubs and reloading them from the configured stub file path (if provided).\n- `GET /requests` List all recorded requests that have been made to the stub server.\n\nStub Format is JSON text format. It has a skeleton as follows:\n```\n{\n  \"service\":\"\u003cservicename\u003e\", // name of service defined in proto\n  \"method\":\"\u003cmethodname\u003e\", // name of method that we want to mock\n  \"input\":{ // input matching rule. see Input Matching Rule section below\n    // put rule here\n  },\n  \"output\":{ // output json if input were matched\n    \"data\":{\n      // put result fields here\n    },\n    \"headers\": {\n      // put result headers here\n    },\n    \"error\":\"\u003cerror message\u003e\" // Optional. if you want to return error instead.\n    \"code\":\"\u003cresponse code\u003e\" // Optional. Grpc response code. if code !=0  return error instead.\n  }\n}\n```\n\nFor our `hello` service example we put a stub with the text below:\n```\n  {\n    \"service\":\"Greeter\",\n    \"method\":\"SayHello\",\n    \"input\":{\n      \"equals\":{\n        \"name\":\"gripmock\"\n      }\n    },\n    \"output\":{\n      \"data\":{\n        \"message\":\"Hello GripMock\"\n      }\n    }\n  }\n```\n\n### Static stubbing\nYou could initialize gripmock with stub json files and provide the path using `--stub` argument. For example you may\nmount your stub file in `/mystubs` folder then mount it to docker like\n\n`docker run -p 4770:4770 -p 4771:4771 -v /mypath:/proto -v /mystubs:/stub tkpd/gripmock --stub=/stub /proto/hello.proto`\n\nPlease note that Gripmock still serves http stubbing to modify stored stubs on the fly.\n\n## \u003ca name=\"input_matching\"\u003e\u003c/a\u003eInput Matching\nStub will respond with the expected response only if the request matches any rule. Stub service will serve `/find` endpoint with format:\n```\n{\n  \"service\":\"\u003cservice name\u003e\",\n  \"method\":\"\u003cmethod name\u003e\",\n  \"data\":{\n    // input that is supposed to match with stored stubs\n  }\n}\n```\nSo if you do a `curl -X POST -d '{\"service\":\"Greeter\",\"method\":\"SayHello\",\"data\":{\"name\":\"gripmock\"}}' localhost:4771/find` stub service will find a match from listed stubs.\n\n### Input Matching Rule\nInput matching has 4 rules to match an input: **equals**, **equals_unordered**, **contains** and **regex**\n\u003cbr\u003e\nNested fields are allowed for input matching too for all JSON data types. (`string`, `bool`, `array`, etc.)\n\u003cbr\u003e\n**Gripmock** recursively goes over the fields and tries to match with given input.\n\u003cbr\u003e\n**equals** will match the exact field name and value of input into expected stub. example stub JSON:\n```\n{\n  .\n  .\n  \"input\":{\n    \"equals\":{\n      \"name\":\"gripmock\",\n      \"greetings\": {\n            \"english\": \"Hello World!\",\n            \"indonesian\": \"Halo Dunia!\",\n            \"turkish\": \"Merhaba Dünya!\"\n      },\n      \"ok\": true,\n      \"numbers\": [4, 8, 15, 16, 23, 42],\n      \"null\": null\n    }\n  }\n  .\n  .\n}\n```\n\n**equals_unordered** will match the exact field name and value of input into expected stub, except lists (which are compared as sets). example stub JSON:\n\n\n```\n{\n  .\n  .\n  \"input\":{\n    \"equals_unordered\":{\n      \"name\":\"gripmock\",\n      \"greetings\": {\n            \"english\": \"Hello World!\",\n            \"indonesian\": \"Halo Dunia!\",\n            \"turkish\": \"Merhaba Dünya!\"\n      },\n      \"ok\": true,\n      \"numbers\": [4, 8, 15, 16, 23, 42],\n      \"null\": null\n    }\n  }\n  .\n  .\n}\n```\n\n**contains** will match input that has the value declared expected fields. example stub JSON:\n```\n{\n  .\n  .\n  \"input\":{\n    \"contains\":{\n      \"field2\":\"hello\",\n      \"field4\":{\n        \"field5\": \"value5\"\n      } \n    }\n  }\n  .\n  .\n}\n```\n\n**matches** using regex for matching fields expectation. example:\n\n```\n{\n  .\n  .\n  \"input\":{\n    \"matches\":{\n      \"name\":\"^grip.*$\",\n      \"cities\": [\"Jakarta\", \"Istanbul\", \".*grad$\"]\n    }\n  }\n  .\n  .\n}\n```\n\n### Input Headers Matching Rule\n\nInput headers matching has 4 rules to match input headers: `equals`, `equals_unordered`, `contains`, and `matches`.\n\u003cbr\u003e\nHeaders are map of strings and the same matching rules apply for headers as for payload data.\n\u003cbr\u003e\n**Important Note:** Only one rule type is applied at a time. If multiple rule types are specified, the first matching rule will be used.\n\u003cbr\u003e\nHeaders can be specified in the `headers` field of the `input` object:\n\u003cbr\u003e\n```json\n{\n  \"service\": \"YourService\",\n  \"method\": \"YourMethod\",\n  \"input\": {\n    \"equals\": {\n      \"field1\": \"value1\"\n    },\n    \"headers\": {\n      \"equals\": {\n        \"Content-Type\": \"application/json\"\n      }\n      // Only one rule type is applied. If you specify multiple rules,\n      // the first matching rule will be used.\n    }\n  },\n  \"output\": {\n    \"data\": {\n      \"result\": \"success\"\n    }\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftokopedia%2Fgripmock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftokopedia%2Fgripmock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftokopedia%2Fgripmock/lists"}