{"id":37115937,"url":"https://github.com/bsv-blockchain/go-alert-system","last_synced_at":"2026-04-09T21:10:49.160Z","repository":{"id":322641870,"uuid":"1086690208","full_name":"bsv-blockchain/go-alert-system","owner":"bsv-blockchain","description":"Lightweight Go RPC alerting service for BitcoinSV nodes","archived":false,"fork":false,"pushed_at":"2026-03-23T14:12:09.000Z","size":1054,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-24T11:11:58.464Z","etag":null,"topics":["alert-system","bitcoin","bitcoinsv","bsv","go","node","rpc"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bsv-blockchain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":".github/AGENTS.md","dco":null,"cla":null},"funding":{"github":"bsv-blockchain"}},"created_at":"2025-10-30T19:03:44.000Z","updated_at":"2026-03-23T14:12:09.000Z","dependencies_parsed_at":"2025-12-08T17:02:52.057Z","dependency_job_id":null,"html_url":"https://github.com/bsv-blockchain/go-alert-system","commit_stats":null,"previous_names":["bsv-blockchain/go-alert-system"],"tags_count":8,"template":false,"template_full_name":"bsv-blockchain/go-template","purl":"pkg:github/bsv-blockchain/go-alert-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsv-blockchain%2Fgo-alert-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsv-blockchain%2Fgo-alert-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsv-blockchain%2Fgo-alert-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsv-blockchain%2Fgo-alert-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bsv-blockchain","download_url":"https://codeload.github.com/bsv-blockchain/go-alert-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsv-blockchain%2Fgo-alert-system/sbom","scorecard":{"id":1239489,"data":{"date":"2025-11-05T15:33:37Z","repo":{"name":"github.com/bsv-blockchain/go-alert-system","commit":"e9e827aa3962450d052a7b586845b727680db3e3"},"scorecard":{"version":"v5.3.0","commit":"c22063e786c11f9dd714d777a687ff7c4599b600"},"score":6.8,"checks":[{"name":"Maintained","score":0,"reason":"project was created within the last 90 days. Please review its contents carefully","details":["Warn: Repository was created within the last 90 days."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#security-policy"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dependency-update-tool"}},{"name":"Code-Review","score":0,"reason":"Found 0/16 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/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#code-review"}},{"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/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#binary-artifacts"}},{"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/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#packaging"}},{"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/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:31","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:32","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/dependabot-auto-merge.yml:87","Warn: jobLevel 'statuses' permission set to 'write': .github/workflows/fortress-coverage.yml:116","Info: jobLevel 'actions' permission set to 'read': .github/workflows/fortress-coverage.yml:117","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/fortress-coverage.yml:112","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress-coverage.yml:2326","Info: jobLevel 'actions' permission set to 'read': .github/workflows/fortress-coverage.yml:2327","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/fortress-release.yml:59","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress-test-fuzz.yml:61","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress-test-matrix.yml:109","Warn: jobLevel 'statuses' permission set to 'write': .github/workflows/fortress-test-suite.yml:186","Info: jobLevel 'actions' permission set to 'read': .github/workflows/fortress-test-suite.yml:187","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/fortress-test-suite.yml:182","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress-test-validation.yml:49","Info: jobLevel 'actions' permission set to 'read': .github/workflows/fortress-test-validation.yml:50","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:318","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/fortress.yml:428","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:437","Info: jobLevel 'actions' permission set to 'read': .github/workflows/fortress.yml:438","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:173","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:200","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:225","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:290","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:81","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:116","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:135","Info: jobLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:148","Warn: jobLevel 'statuses' permission set to 'write': .github/workflows/fortress.yml:251","Info: jobLevel 'actions' permission set to 'read': .github/workflows/fortress.yml:252","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/fortress.yml:247","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management-fork.yml:123","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management-fork.yml:181","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management-fork.yml:225","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/pull-request-management-fork.yml:380","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management-fork.yml:381","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management.yml:92","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management.yml:131","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management.yml:481","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pull-request-management.yml:690","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management.yml:302","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management.yml:388","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/pull-request-management.yml:587","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pull-request-management.yml:588","Info: jobLevel 'contents' permission set to 'read': .github/workflows/sync-labels.yml:111","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/auto-merge-on-approval.yml:40","Info: topLevel 'contents' permission set to 'read': .github/workflows/auto-merge-on-approval.yml:39","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:23","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependabot-auto-merge.yml:35","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-benchmarks.yml:92","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-code-quality.yml:58","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-completion-finalize.yml:45","Info: topLevel 'actions' permission set to 'read': .github/workflows/fortress-completion-finalize.yml:46","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-completion-report.yml:101","Info: topLevel 'actions' permission set to 'read': .github/workflows/fortress-completion-report.yml:102","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-completion-statistics.yml:46","Info: topLevel 'actions' permission set to 'read': .github/workflows/fortress-completion-statistics.yml:47","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-completion-tests.yml:43","Info: topLevel 'actions' permission set to 'read': .github/workflows/fortress-completion-tests.yml:44","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-coverage.yml:57","Info: topLevel 'actions' permission set to 'read': .github/workflows/fortress-coverage.yml:58","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-pre-commit.yml:46","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-release.yml:49","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-security-scans.yml:63","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-setup-config.yml:181","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-test-fuzz.yml:50","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-test-magex.yml:27","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-test-matrix.yml:99","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-test-suite.yml:117","Info: topLevel 'actions' permission set to 'read': .github/workflows/fortress-test-suite.yml:118","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-test-validation.yml:38","Info: topLevel 'actions' permission set to 'read': .github/workflows/fortress-test-validation.yml:39","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress-warm-cache.yml:54","Info: topLevel 'contents' permission set to 'read': .github/workflows/fortress.yml:64","Info: topLevel 'contents' permission set to 'read': .github/workflows/pull-request-management-fork.yml:100","Info: topLevel 'contents' permission set to 'read': .github/workflows/pull-request-management.yml:43","Info: topLevel 'contents' permission set to 'read': .github/workflows/scorecard.yml:23","Info: topLevel 'contents' permission set to 'read': .github/workflows/stale-check.yml:32","Info: topLevel 'contents' permission set to 'read': .github/workflows/sync-labels.yml:44"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-benchmarks.yml:118","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-benchmarks.yml:181","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-benchmarks.yml:189","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-benchmarks.yml:265","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:172","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:182","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:250","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:392","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:435","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:465","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:609","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:674","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-test-matrix.yml:741","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-warm-cache.yml:70","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/fortress-warm-cache.yml:97","Info:  72 out of  72 GitHub-owned GitHubAction dependencies pinned","Info:   5 out of   5 third-party GitHubAction dependencies pinned","Info:   2 out of   2 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/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.1.0 not signed: https://api.github.com/repos/bsv-blockchain/go-alert-system/releases/259368381","Warn: release artifact v0.1.0 does not have provenance: https://api.github.com/repos/bsv-blockchain/go-alert-system/releases/259368381"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#signed-releases"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-3218"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (6) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#sast"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: GoBuiltInFuzzer integration found: app/config/load_fuzz_test.go:13","Info: GoBuiltInFuzzer integration found: app/config/load_fuzz_test.go:69","Info: GoBuiltInFuzzer integration found: app/config/load_fuzz_test.go:141","Info: GoBuiltInFuzzer integration found: app/config/load_fuzz_test.go:197","Info: GoBuiltInFuzzer integration found: app/models/alert_message_fuzz_test.go:12","Info: GoBuiltInFuzzer integration found: app/models/alert_message_fuzz_test.go:92","Info: GoBuiltInFuzzer integration found: app/models/alert_message_fuzz_test.go:132","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:74","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:105","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:131","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:165","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:210","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:235","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:276","Info: GoBuiltInFuzzer integration found: app/models/alert_message_types_fuzz_test.go:310","Info: GoBuiltInFuzzer integration found: app/p2p/sync_fuzz_test.go:11","Info: GoBuiltInFuzzer integration found: app/p2p/sync_fuzz_test.go:98","Info: GoBuiltInFuzzer integration found: app/p2p/sync_fuzz_test.go:152"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":4,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'master'","Warn: 'stale review dismissal' is disabled on branch 'master'","Warn: required approving review count is 1 on branch 'master'","Warn: codeowners review is not required on branch 'master'","Warn: 'last push approval' is disabled on branch 'master'","Warn: 'up-to-date branches' is disabled on branch 'master'","Info: status check found to merge onto on branch 'master'","Info: PRs are required in order to make changes on branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":10,"reason":"6 out of 6 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#ci-tests"}},{"name":"Contributors","score":3,"reason":"project has 1 contributing companies or organizations -- score normalized to 3","details":["Info: found contributions from: skyetel @bsv-blockchain @buxorg @bitcoinschema @tonicpow @bitcoin-sv"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#contributors"}}]},"last_synced_at":"2025-11-05T16:28:21.833Z","repository_id":322641870,"created_at":"2025-11-05T16:28:21.834Z","updated_at":"2025-11-05T16:28:21.834Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31314212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alert-system","bitcoin","bitcoinsv","bsv","go","node","rpc"],"created_at":"2026-01-14T13:36:32.483Z","updated_at":"2026-04-02T19:15:32.989Z","avatar_url":"https://github.com/bsv-blockchain.png","language":"Go","funding_links":["https://github.com/sponsors/bsv-blockchain"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🚨\u0026nbsp;\u0026nbsp;go-alert-system\n\n**Lightweight Go RPC alerting service for Bitcoin SV nodes.**\n\n\u003cbr/\u003e\n\n\u003ca href=\"https://github.com/bsv-blockchain/go-alert-system/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release-pre/bsv-blockchain/go-alert-system?include_prereleases\u0026style=flat-square\u0026logo=github\u0026color=black\" alt=\"Release\"\u003e\u003c/a\u003e\n\u003ca href=\"https://golang.org/\"\u003e\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/bsv-blockchain/go-alert-system?style=flat-square\u0026logo=go\u0026color=00ADD8\" alt=\"Go Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/bsv-blockchain/go-alert-system/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-OpenBSV-blue?style=flat-square\u0026logo=springsecurity\u0026logoColor=white\" alt=\"License\"\u003e\u003c/a\u003e\n\n\u003cbr/\u003e\n\n\u003ctable align=\"center\" border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"right\"\u003e\n       \u003ccode\u003eCI / CD\u003c/code\u003e \u0026nbsp;\u0026nbsp;\n    \u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n       \u003ca href=\"https://github.com/bsv-blockchain/go-alert-system/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/bsv-blockchain/go-alert-system/fortress.yml?branch=master\u0026label=build\u0026logo=github\u0026style=flat-square\" alt=\"Build\"\u003e\u003c/a\u003e\n       \u003ca href=\"https://github.com/bsv-blockchain/go-alert-system/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/bsv-blockchain/go-alert-system?style=flat-square\u0026logo=git\u0026logoColor=white\u0026label=last%20update\" alt=\"Last Commit\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"right\"\u003e\n       \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003ccode\u003eQuality\u003c/code\u003e \u0026nbsp;\u0026nbsp;\n    \u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n       \u003ca href=\"https://goreportcard.com/report/github.com/bsv-blockchain/go-alert-system\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/bsv-blockchain/go-alert-system?style=flat-square\" alt=\"Go Report\"\u003e\u003c/a\u003e\n       \u003ca href=\"https://codecov.io/gh/bsv-blockchain/go-alert-system\"\u003e\u003cimg src=\"https://codecov.io/gh/bsv-blockchain/go-alert-system/branch/master/graph/badge.svg?style=flat-square\" alt=\"Coverage\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\n  \u003ctr\u003e\n    \u003ctd align=\"right\"\u003e\n       \u003ccode\u003eSecurity\u003c/code\u003e \u0026nbsp;\u0026nbsp;\n    \u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n       \u003ca href=\"https://scorecard.dev/viewer/?uri=github.com/bsv-blockchain/go-alert-system\"\u003e\u003cimg src=\"https://api.scorecard.dev/projects/github.com/bsv-blockchain/go-alert-system/badge?style=flat-square\" alt=\"Scorecard\"\u003e\u003c/a\u003e\n       \u003ca href=\".github/SECURITY.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/policy-active-success?style=flat-square\u0026logo=security\u0026logoColor=white\" alt=\"Security\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"right\"\u003e\n       \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003ccode\u003eCommunity\u003c/code\u003e \u0026nbsp;\u0026nbsp;\n    \u003c/td\u003e\n    \u003ctd align=\"left\"\u003e\n       \u003ca href=\"https://github.com/bsv-blockchain/go-alert-system/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/bsv-blockchain/go-alert-system?style=flat-square\u0026color=orange\" alt=\"Contributors\"\u003e\u003c/a\u003e\n       \u003ca href=\"https://github.com/sponsors/bsv-blockchain\"\u003e\u003cimg src=\"https://img.shields.io/badge/sponsor-BSV-181717.svg?logo=github\u0026style=flat-square\" alt=\"Sponsor\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n### \u003ccode\u003eProject Navigation\u003c/code\u003e\n\n\u003c/div\u003e\n\n\u003ctable align=\"center\"\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"33%\"\u003e\n       📦\u0026nbsp;\u003ca href=\"#-installation\"\u003e\u003ccode\u003eInstallation\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"33%\"\u003e\n       🧪\u0026nbsp;\u003ca href=\"#-examples--tests\"\u003e\u003ccode\u003eExamples\u0026nbsp;\u0026\u0026nbsp;Tests\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"33%\"\u003e\n       📚\u0026nbsp;\u003ca href=\"#-documentation\"\u003e\u003ccode\u003eDocumentation\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n       🤝\u0026nbsp;\u003ca href=\"#-contributing\"\u003e\u003ccode\u003eContributing\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      🛠️\u0026nbsp;\u003ca href=\"#-code-standards\"\u003e\u003ccode\u003eCode\u0026nbsp;Standards\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      ⚡\u0026nbsp;\u003ca href=\"#-benchmarks\"\u003e\u003ccode\u003eBenchmarks\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      🤖\u0026nbsp;\u003ca href=\"#-ai-usage--assistant-guidelines\"\u003e\u003ccode\u003eAI\u0026nbsp;Usage\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n       📝\u0026nbsp;\u003ca href=\"#-license\"\u003e\u003ccode\u003eLicense\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n       👥\u0026nbsp;\u003ca href=\"#-maintainers\"\u003e\u003ccode\u003eMaintainers\u003c/code\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003cbr/\u003e\n\n## 📦 Installation\n\n### Run from source\n**go-alert-system** requires a [supported release of Go](https://golang.org/doc/devel/release.html#policy).\n\nTo run the application, clone this repository locally and run:\n```shell script\nexport ALERT_SYSTEM_ENVIRONMENT=testnet \u0026\u0026 go run cmd/go-alert-system/main.go\n```\n\nTo run this application with a custom configuration file, run:\n```shell script\nexport ALERT_SYSTEM_CONFIG_FILEPATH=path/to/file/config.json \u0026\u0026 go run cmd/go-alert-system/main.go\n```\n\nConfiguration files can be found in the [config](app/config/envs) directory.\n\n\u003cbr/\u003e\n\n### Container Environment\n**Note:** to use a custom settings file, it needs to be mounted and the appropriate environment variables set. Running it as below will run an ephemeral database but the container should sync up from the peers on the network on startup.\n### podman\n```\n$ podman run -u root -e ALERT_SYSTEM_ENVIRONMENT=testnet  --expose 9906 docker.io/bsvb/alert-key:latest\n```\n\n\u003cbr/\u003e\n\n## 📚 Documentation\n- **API Reference** – Dive into the godocs at [pkg.go.dev/github.com/bsv-blockchain/go-alert-system](https://pkg.go.dev/github.com/bsv-blockchain/go-alert-system)\n\n\u003cbr/\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e\u003ccode\u003eDevelopment Build Commands\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nGet the [MAGE-X](https://github.com/mrz1836/mage-x) build tool for development:\n```shell script\ngo install github.com/mrz1836/mage-x/cmd/magex@latest\n```\n\nView all build commands\n\n```bash script\nmagex help\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eRepository Features\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nThis repository includes 25+ built-in features covering CI/CD, security, code quality, developer experience, and community tooling.\n\n**[View the full Repository Features list →](.github/docs/repository-features.md)**\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e\u003ccode\u003eLibrary Deployment\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nThis project uses [goreleaser](https://github.com/goreleaser/goreleaser) for streamlined binary and library deployment to GitHub. To get started, install it via:\n\n```bash\nbrew install goreleaser\n```\n\nThe release process is defined in the [.goreleaser.yml](.goreleaser.yml) configuration file.\n\n\nThen create and push a new Git tag using:\n\n```bash\nmagex version:bump push=true bump=patch branch=master\n```\n\nThis process ensures consistent, repeatable releases with properly versioned artifacts and citation metadata.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e\u003ccode\u003ePre-commit Hooks\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nSet up the Go-Pre-commit System to run the same formatting, linting, and tests defined in [AGENTS.md](.github/AGENTS.md) before every commit:\n\n```bash\ngo install github.com/mrz1836/go-pre-commit/cmd/go-pre-commit@latest\ngo-pre-commit install\n```\n\nThe system is configured via [`.github/env/`](.github/env/README.md) and provides 17x faster execution than traditional Python-based pre-commit hooks. See the [complete documentation](http://github.com/mrz1836/go-pre-commit) for details.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGitHub Workflows\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nAll workflows are driven by modular configuration in [`.github/env/`](.github/env/README.md) — no YAML editing required.\n\n**[View all workflows and the control center →](.github/docs/workflows.md)**\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e\u003ccode\u003eUpdating Dependencies\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nTo update all dependencies (Go modules, linters, and related tools), run:\n\n```bash\nmagex deps:update\n```\n\nThis command ensures all dependencies are brought up to date in a single step, including Go modules and any tools managed by [MAGE-X](https://github.com/mrz1836/mage-x). It is the recommended way to keep your development environment and CI in sync with the latest versions.\n\n\u003c/details\u003e\n\n\u003cbr/\u003e\n\n## 🧪 Examples \u0026 Tests\n\nAll unit tests and [examples](examples) run via [GitHub Actions](https://github.com/bsv-blockchain/go-alert-system/actions) and use [Go version 1.25.x](https://go.dev/doc/go1.25). View the [configuration file](.github/workflows/fortress.yml).\n\nRun all tests (fast):\n\n```bash script\nmagex test\n```\n\nRun all tests with race detector (slower):\n```bash script\nmagex test:race\n```\n\n\u003cbr/\u003e\n\n## ⚡ Benchmarks\n\nRun the Go benchmarks:\n\n```bash script\nmagex bench\n```\n\n\u003cbr/\u003e\n\n## 🛠️ Code Standards\nRead more about this Go project's [code standards](.github/CODE_STANDARDS.md).\n\n\u003cbr/\u003e\n\n## 🤖 AI Usage \u0026 Assistant Guidelines\nRead the [AI Usage \u0026 Assistant Guidelines](.github/tech-conventions/ai-compliance.md) for details on how AI is used in this project and how to interact with AI assistants.\n\n\u003cbr/\u003e\n\n## 👥 Maintainers\n| [\u003cimg src=\"https://github.com/icellan.png\" height=\"50\" alt=\"Siggi\" /\u003e](https://github.com/icellan) | [\u003cimg src=\"https://github.com/galt-tr.png\" height=\"50\" alt=\"Galt\" /\u003e](https://github.com/galt-tr) | [\u003cimg src=\"https://github.com/mrz1836.png\" height=\"50\" alt=\"MrZ\" /\u003e](https://github.com/mrz1836) |\n|:--------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------:|\n|                                [Siggi](https://github.com/icellan)                                 |                                [Dylan](https://github.com/galt-tr)                                 |                                [MrZ](https://github.com/mrz1836)                                 |\n\n\u003cbr/\u003e\n\n## 🤝 Contributing\nView the [contributing guidelines](.github/CONTRIBUTING.md) and please follow the [code of conduct](.github/CODE_OF_CONDUCT.md).\n\n### How can I help?\nAll kinds of contributions are welcome :raised_hands:!\nThe most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:.\n\n[![Stars](https://img.shields.io/github/stars/bsv-blockchain/go-alert-system?label=Please%20like%20us\u0026style=social\u0026v=1)](https://github.com/bsv-blockchain/go-alert-system/stargazers)\n\n\u003cbr/\u003e\n\n## 📝 License\n\n[![License](https://img.shields.io/badge/license-OpenBSV-blue?style=flat\u0026logo=springsecurity\u0026logoColor=white)](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsv-blockchain%2Fgo-alert-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbsv-blockchain%2Fgo-alert-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsv-blockchain%2Fgo-alert-system/lists"}