• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rm-hull / dot-block / 29693067282
66%

Build:
DEFAULT BRANCH: main
Ran 19 Jul 2026 03:34PM UTC
Jobs 1
Files 39
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Jul 2026 03:32PM UTC coverage: 65.869% (+4.0%) from 61.877%
29693067282

push

github

web-flow
feat: support multiple (distinct) blocklists rather than merging (#210)

* feat: support multiple blocklists

Refactored blocklist architecture to support multiple concurrent sources

instead of a single global list. Each blocklist is now managed
independently, allowing for granular status reporting and selective
disabling.

```mermaid
sequenceDiagram
    participant App
    participant Updater
    participant BlockList

    App->>App: NewBlockLists()
    loop For each URL
        App->>BlockList: NewBlockList()
        App->>BlockList: LoadFromURL()
    end
    App->>Updater: NewUpdater(blockLists)
    App->>App: NewDNSDispatcher(..., blockLists)
```

- Created `blocklist.Updater` to manage multiple `BlockList` instances.
- Updated `DNSDispatcher` to iterate through all configured lists for
  blocking decisions.
- Added `BlocklistHandler` endpoints for per-list status and management.

* refactor: rename LoadFromURL to Fetch

Renamed `LoadFromURL` to `Fetch` across the blocklist package to better
reflect the underlying network operation.

* refactor: use pointers for blocklists throughout

Switch from passing `blocklist.BlockList` by value to
`*blocklist.BlockList` to ensure consistent state management, avoid
unnecessary copying, and improve memory efficiency.

- Updated `BlockList` structs to hold `lastUpdated` pointer.
- Standardized `ScannerFunc` for file processing.
- Refactored `BlockList` methods to utilize pointer receivers
consistently.

```mermaid
graph TD
    A[App/Dispatcher] -->|Manages| B(Slice of Pointers)
    B --> C[BlockList 0]
    B --> D[BlockList N]
    C -->|Shared State| E[Bloom Filter]
    C -->|Shared State| F[LastUpdated Time]
```

* Update internal/http/handlers/blocklist.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat: support blocklist metadata parsing

- Added `metadata` field to `BlockList` to store list-specific info.
- Implemented `extractMetadata` to pars... (continued)

178 of 204 new or added lines in 6 files covered. (87.25%)

1 existing line in 1 file now uncovered.

1845 of 2801 relevant lines covered (65.87%)

638.63 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
88.89
21.21% internal/blocklist/blocklist.go
11
82.81
internal/blocklist/loader.go
3
62.39
0.99% internal/app.go

Coverage Regressions

Lines Coverage ∆ File
1
62.39
0.99% internal/app.go
Jobs
ID Job ID Ran Files Coverage
1 29693067282.1 19 Jul 2026 03:34PM UTC 39
65.87
GitHub Action Run
Source Files on build 29693067282
  • Tree
  • List 39
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • e8cc4870 on github
  • Prev Build on main (#29685578259)
  • Next Build on main (#29705436859)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc