Skip to content

refactor: clean up obsolete Go syntax#1951

Merged
0xERR0R merged 3 commits into0xERR0R:mainfrom
sonjek:code_modernize
Dec 3, 2025
Merged

refactor: clean up obsolete Go syntax#1951
0xERR0R merged 3 commits into0xERR0R:mainfrom
sonjek:code_modernize

Conversation

@sonjek
Copy link
Copy Markdown
Contributor

@sonjek sonjek commented Dec 2, 2025

During the code review, I noticed several outdated syntax patterns that can be replaced with more modern alternatives.
For example, interface{} can be replaced to any. Array/slice iteration and searching can be simplified.

@0xERR0R 0xERR0R requested a review from Copilot December 3, 2025 05:42
@0xERR0R 0xERR0R added the 🧰 technical debts Technical debts, refactoring label Dec 3, 2025
@0xERR0R 0xERR0R added this to the v0.29.0 milestone Dec 3, 2025
@codecov
Copy link
Copy Markdown

codecov bot commented Dec 3, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.15%. Comparing base (55ab95e) to head (17fad8b).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1951      +/-   ##
==========================================
+ Coverage   90.13%   90.15%   +0.01%     
==========================================
  Files          92       92              
  Lines        6582     6575       -7     
==========================================
- Hits         5933     5928       -5     
+ Misses        500      498       -2     
  Partials      149      149              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR attempts to modernize Go syntax by replacing obsolete patterns with modern alternatives. However, it introduces critical bugs by using non-existent Go standard library functions and methods. While many changes are valid (such as interface{}any, slices.Contains, for range N, and min()), the PR mistakenly introduces strings.SplitSeq (which doesn't exist) and b.Loop() (which is not a real testing method) in multiple locations.

Key changes attempted:

  • Replace interface{} with any alias (valid - Go 1.18+)
  • Use slices.Contains instead of manual loops (valid - Go 1.21+)
  • Adopt for range N syntax for counted loops (valid - Go 1.22+)
  • Use min() builtin function (valid - Go 1.21+)
  • Remove legacy // +build build constraints (valid - Go 1.17+)
  • Use strings.SplitSeq and b.Loop() - INVALID, these don't exist

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated no comments.

Show a summary per file
File Description
util/http.go CRITICAL: Uses non-existent strings.SplitSeq function
server/server_config_trigger.go Valid: Removes obsolete // +build constraint
resolver/resolver_suite_test.go Valid: Updates interface{} to any
resolver/dnssec/validator_test.go Valid: Simplifies loop with for range 10
resolver/dnssec/nsec3.go Valid: Replaces manual search with slices.Contains
resolver/dnssec/nsec.go Valid: Replaces manual search with slices.Contains
resolver/caching_resolver.go Valid: Updates interface{} to any
resolver/blocking_resolver.go CRITICAL: Uses non-existent strings.SplitSeq in two places
redis/redis_suite_test.go Valid: Updates interface{} to any
querylog/database_writer.go Valid: Uses min() builtin function
metrics/metrics_test.go Valid: Replaces helper function with slices.Contains
metrics/metrics_event_publisher.go Valid: Updates interface{} to any
main_static.go Valid: Removes obsolete // +build constraint
lists/list_cache_benchmark_test.go CRITICAL: Uses non-existent b.Loop() method
helpertest/helper.go Valid: Updates interface{} to any in multiple locations
e2e/upstream_test.go Valid: Simplifies loops with for range N in multiple places
e2e/caching_test.go Valid: Simplifies loop with for range 5
config/qtype_set.go Valid: Updates interface{} to any
config/dnssec_test.go Valid: Updates interface{} to any
config/custom_dns_test.go Valid: Updates interface{} to any in multiple test cases
config/custom_dns.go Valid: Updates interface{} to any in unmarshal functions
config/config.go Valid: Updates interface{} to any in multiple unmarshal functions
config/conditional_upstream_test.go Valid: Updates interface{} to any
config/conditional_upstream.go CRITICAL: Uses non-existent strings.SplitSeq function
cache/stringcache/string_caches_benchmark_test.go CRITICAL: Uses non-existent b.Loop() method in two places

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Owner

@0xERR0R 0xERR0R left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM 👍

@0xERR0R 0xERR0R merged commit 3075c38 into 0xERR0R:main Dec 3, 2025
19 checks passed
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Feb 27, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [0xerr0r/blocky](https://github.com/0xerr0r/blocky) | minor | `v0.28.2` → `v0.29.0` |
| [ghcr.io/0xerr0r/blocky](https://github.com/0xERR0R/blocky) | minor | `v0.28.2` → `v0.29.0` |

---

### Release Notes

<details>
<summary>0xerr0r/blocky (0xerr0r/blocky)</summary>

### [`v0.29.0`](https://github.com/0xERR0R/blocky/releases/tag/v0.29.0)

[Compare Source](0xERR0R/blocky@v0.28.2...v0.29.0)

#### Changelog

##### Features

- [`0c35f21`](0xERR0R/blocky@0c35f21): feat: add RFC 7239 Forwarded header support for client IP parsing ([#&#8203;1941](0xERR0R/blocky#1941)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#&#8203;1933](0xERR0R/blocky#1933)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#&#8203;1940](0xERR0R/blocky#1940)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))

##### Bug fixes

- [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#&#8203;1948](0xERR0R/blocky#1948)) ([@&#8203;mattdy](https://github.com/mattdy))
- [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#&#8203;1975](0xERR0R/blocky#1975)) ([@&#8203;manofthepeace](https://github.com/manofthepeace))
- [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#&#8203;1952](0xERR0R/blocky#1952)) ([@&#8203;sonjek](https://github.com/sonjek))

##### Build and dependencies

- [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#&#8203;1943](0xERR0R/blocky#1943)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#&#8203;1961](0xERR0R/blocky#1961)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#&#8203;2000](0xERR0R/blocky#2000)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#&#8203;1960](0xERR0R/blocky#1960)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#&#8203;1998](0xERR0R/blocky#1998)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#&#8203;1992](0xERR0R/blocky#1992)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4f62ec8`](0xERR0R/blocky@4f62ec8): build(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.0 ([#&#8203;1976](0xERR0R/blocky#1976)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`16644c5`](0xERR0R/blocky@16644c5): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.0 to 2.36.1 ([#&#8203;1978](0xERR0R/blocky#1978)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`36ae188`](0xERR0R/blocky@36ae188): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 ([#&#8203;1996](0xERR0R/blocky#1996)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4733c6b`](0xERR0R/blocky@4733c6b): build(deps): bump github.com/breml/rootcerts from 0.3.3 to 0.3.4 ([#&#8203;1987](0xERR0R/blocky#1987)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e4f7462`](0xERR0R/blocky@e4f7462): build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 ([#&#8203;1972](0xERR0R/blocky#1972)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`f9dd4d2`](0xERR0R/blocky@f9dd4d2): build(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 ([#&#8203;1985](0xERR0R/blocky#1985)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e66a29d`](0xERR0R/blocky@e66a29d): build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 ([#&#8203;1959](0xERR0R/blocky#1959)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`8e69355`](0xERR0R/blocky@8e69355): build(deps): bump github.com/miekg/dns from 1.1.69 to 1.1.70 ([#&#8203;1968](0xERR0R/blocky#1968)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`5e8b555`](0xERR0R/blocky@5e8b555): build(deps): bump github.com/miekg/dns from 1.1.70 to 1.1.72 ([#&#8203;1977](0xERR0R/blocky#1977)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ef5dc97`](0xERR0R/blocky@ef5dc97): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 ([#&#8203;1956](0xERR0R/blocky#1956)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`670542b`](0xERR0R/blocky@670542b): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.4 ([#&#8203;1966](0xERR0R/blocky#1966)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e062742`](0xERR0R/blocky@e062742): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 ([#&#8203;1970](0xERR0R/blocky#1970)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4926d16`](0xERR0R/blocky@4926d16): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 ([#&#8203;1981](0xERR0R/blocky#1981)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ca0da10`](0xERR0R/blocky@ca0da10): build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 ([#&#8203;1955](0xERR0R/blocky#1955)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`567a738`](0xERR0R/blocky@567a738): build(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 ([#&#8203;1967](0xERR0R/blocky#1967)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`c3aab87`](0xERR0R/blocky@c3aab87): build(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 ([#&#8203;1982](0xERR0R/blocky#1982)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ef79a67`](0xERR0R/blocky@ef79a67): build(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 ([#&#8203;1974](0xERR0R/blocky#1974)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6775759`](0xERR0R/blocky@6775759): build(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 ([#&#8203;1953](0xERR0R/blocky#1953)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`71c39fc`](0xERR0R/blocky@71c39fc): build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 ([#&#8203;1939](0xERR0R/blocky#1939)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`be31648`](0xERR0R/blocky@be31648): build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 ([#&#8203;1957](0xERR0R/blocky#1957)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`a574078`](0xERR0R/blocky@a574078): build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 ([#&#8203;1971](0xERR0R/blocky#1971)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6f3f295`](0xERR0R/blocky@6f3f295): build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0 ([#&#8203;1988](0xERR0R/blocky#1988)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6a75afb`](0xERR0R/blocky@6a75afb): build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 ([#&#8203;1997](0xERR0R/blocky#1997)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])

##### Misc

- [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#&#8203;1993](0xERR0R/blocky#1993)) ([@&#8203;JCHHeilmann](https://github.com/JCHHeilmann))
- [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#&#8203;1942](0xERR0R/blocky#1942)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#&#8203;1951](0xERR0R/blocky#1951)) ([@&#8203;sonjek](https://github.com/sonjek))
- [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#&#8203;1945](0xERR0R/blocky#1945)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#&#8203;1944](0xERR0R/blocky#1944)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#&#8203;1868](0xERR0R/blocky#1868)) ([@&#8203;zeilenschubser](https://github.com/zeilenschubser))

</details>

<details>
<summary>0xERR0R/blocky (ghcr.io/0xerr0r/blocky)</summary>

### [`v0.29.0`](https://github.com/0xERR0R/blocky/releases/tag/v0.29.0)

[Compare Source](0xERR0R/blocky@v0.28.2...v0.29.0)

#### Changelog

##### Features

- [`0c35f21`](0xERR0R/blocky@0c35f21): feat: add RFC 7239 Forwarded header support for client IP parsing ([#&#8203;1941](0xERR0R/blocky#1941)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#&#8203;1933](0xERR0R/blocky#1933)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#&#8203;1940](0xERR0R/blocky#1940)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))

##### Bug fixes

- [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#&#8203;1948](0xERR0R/blocky#1948)) ([@&#8203;mattdy](https://github.com/mattdy))
- [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#&#8203;1975](0xERR0R/blocky#1975)) ([@&#8203;manofthepeace](https://github.com/manofthepeace))
- [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#&#8203;1952](0xERR0R/blocky#1952)) ([@&#8203;sonjek](https://github.com/sonjek))

##### Build and dependencies

- [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#&#8203;1943](0xERR0R/blocky#1943)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#&#8203;1961](0xERR0R/blocky#1961)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#&#8203;2000](0xERR0R/blocky#2000)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#&#8203;1960](0xERR0R/blocky#1960)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#&#8203;1998](0xERR0R/blocky#1998)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#&#8203;1992](0xERR0R/blocky#1992)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4f62ec8`](0xERR0R/blocky@4f62ec8): build(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.0 ([#&#8203;1976](0xERR0R/blocky#1976)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`16644c5`](0xERR0R/blocky@16644c5): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.0 to 2.36.1 ([#&#8203;1978](0xERR0R/blocky#1978)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`36ae188`](0xERR0R/blocky@36ae188): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 ([#&#8203;1996](0xERR0R/blocky#1996)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4733c6b`](0xERR0R/blocky@4733c6b): build(deps): bump github.com/breml/rootcerts from 0.3.3 to 0.3.4 ([#&#8203;1987](0xERR0R/blocky#1987)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e4f7462`](0xERR0R/blocky@e4f7462): build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 ([#&#8203;1972](0xERR0R/blocky#1972)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`f9dd4d2`](0xERR0R/blocky@f9dd4d2): build(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 ([#&#8203;1985](0xERR0R/blocky#1985)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e66a29d`](0xERR0R/blocky@e66a29d): build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 ([#&#8203;1959](0xERR0R/blocky#1959)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`8e69355`](0xERR0R/blocky@8e69355): build(deps): bump github.com/miekg/dns from 1.1.69 to 1.1.70 ([#&#8203;1968](0xERR0R/blocky#1968)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`5e8b555`](0xERR0R/blocky@5e8b555): build(deps): bump github.com/miekg/dns from 1.1.70 to 1.1.72 ([#&#8203;1977](0xERR0R/blocky#1977)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ef5dc97`](0xERR0R/blocky@ef5dc97): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 ([#&#8203;1956](0xERR0R/blocky#1956)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`670542b`](0xERR0R/blocky@670542b): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.4 ([#&#8203;1966](0xERR0R/blocky#1966)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e062742`](0xERR0R/blocky@e062742): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 ([#&#8203;1970](0xERR0R/blocky#1970)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4926d16`](0xERR0R/blocky@4926d16): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 ([#&#8203;1981](0xERR0R/blocky#1981)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ca0da10`](0xERR0R/blocky@ca0da10): build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 ([#&#8203;1955](0xERR0R/blocky#1955)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`567a738`](0xERR0R/blocky@567a738): build(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 ([#&#8203;1967](0xERR0R/blocky#1967)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`c3aab87`](0xERR0R/blocky@c3aab87): build(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 ([#&#8203;1982](0xERR0R/blocky#1982)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ef79a67`](0xERR0R/blocky@ef79a67): build(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 ([#&#8203;1974](0xERR0R/blocky#1974)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6775759`](0xERR0R/blocky@6775759): build(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 ([#&#8203;1953](0xERR0R/blocky#1953)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`71c39fc`](0xERR0R/blocky@71c39fc): build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 ([#&#8203;1939](0xERR0R/blocky#1939)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`be31648`](0xERR0R/blocky@be31648): build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 ([#&#8203;1957](0xERR0R/blocky#1957)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`a574078`](0xERR0R/blocky@a574078): build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 ([#&#8203;1971](0xERR0R/blocky#1971)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6f3f295`](0xERR0R/blocky@6f3f295): build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0 ([#&#8203;1988](0xERR0R/blocky#1988)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6a75afb`](0xERR0R/blocky@6a75afb): build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 ([#&#8203;1997](0xERR0R/blocky#1997)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])

##### Misc

- [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#&#8203;1993](0xERR0R/blocky#1993)) ([@&#8203;JCHHeilmann](https://github.com/JCHHeilmann))
- [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#&#8203;1942](0xERR0R/blocky#1942)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#&#8203;1951](0xERR0R/blocky#1951)) ([@&#8203;sonjek](https://github.com/sonjek))
- [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#&#8203;1945](0xERR0R/blocky#1945)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#&#8203;1944](0xERR0R/blocky#1944)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#&#8203;1868](0xERR0R/blocky#1868)) ([@&#8203;zeilenschubser](https://github.com/zeilenschubser))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4282
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Feb 27, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/0xerr0r/blocky](https://github.com/0xERR0R/blocky) | minor | `v0.28.2` → `v0.29.0` |

---

### Release Notes

<details>
<summary>0xERR0R/blocky (ghcr.io/0xerr0r/blocky)</summary>

### [`v0.29.0`](https://github.com/0xERR0R/blocky/releases/tag/v0.29.0)

[Compare Source](0xERR0R/blocky@v0.28.2...v0.29.0)

#### Changelog

##### Features

- [`0c35f21`](0xERR0R/blocky@0c35f21): feat: add RFC 7239 Forwarded header support for client IP parsing ([#&#8203;1941](0xERR0R/blocky#1941)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#&#8203;1933](0xERR0R/blocky#1933)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#&#8203;1940](0xERR0R/blocky#1940)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))

##### Bug fixes

- [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#&#8203;1948](0xERR0R/blocky#1948)) ([@&#8203;mattdy](https://github.com/mattdy))
- [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#&#8203;1975](0xERR0R/blocky#1975)) ([@&#8203;manofthepeace](https://github.com/manofthepeace))
- [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#&#8203;1952](0xERR0R/blocky#1952)) ([@&#8203;sonjek](https://github.com/sonjek))

##### Build and dependencies

- [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#&#8203;1943](0xERR0R/blocky#1943)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#&#8203;1961](0xERR0R/blocky#1961)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#&#8203;2000](0xERR0R/blocky#2000)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#&#8203;1960](0xERR0R/blocky#1960)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#&#8203;1998](0xERR0R/blocky#1998)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#&#8203;1992](0xERR0R/blocky#1992)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4f62ec8`](0xERR0R/blocky@4f62ec8): build(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.0 ([#&#8203;1976](0xERR0R/blocky#1976)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`16644c5`](0xERR0R/blocky@16644c5): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.0 to 2.36.1 ([#&#8203;1978](0xERR0R/blocky#1978)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`36ae188`](0xERR0R/blocky@36ae188): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 ([#&#8203;1996](0xERR0R/blocky#1996)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4733c6b`](0xERR0R/blocky@4733c6b): build(deps): bump github.com/breml/rootcerts from 0.3.3 to 0.3.4 ([#&#8203;1987](0xERR0R/blocky#1987)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e4f7462`](0xERR0R/blocky@e4f7462): build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 ([#&#8203;1972](0xERR0R/blocky#1972)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`f9dd4d2`](0xERR0R/blocky@f9dd4d2): build(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 ([#&#8203;1985](0xERR0R/blocky#1985)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e66a29d`](0xERR0R/blocky@e66a29d): build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 ([#&#8203;1959](0xERR0R/blocky#1959)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`8e69355`](0xERR0R/blocky@8e69355): build(deps): bump github.com/miekg/dns from 1.1.69 to 1.1.70 ([#&#8203;1968](0xERR0R/blocky#1968)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`5e8b555`](0xERR0R/blocky@5e8b555): build(deps): bump github.com/miekg/dns from 1.1.70 to 1.1.72 ([#&#8203;1977](0xERR0R/blocky#1977)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ef5dc97`](0xERR0R/blocky@ef5dc97): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 ([#&#8203;1956](0xERR0R/blocky#1956)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`670542b`](0xERR0R/blocky@670542b): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.4 ([#&#8203;1966](0xERR0R/blocky#1966)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e062742`](0xERR0R/blocky@e062742): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 ([#&#8203;1970](0xERR0R/blocky#1970)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4926d16`](0xERR0R/blocky@4926d16): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 ([#&#8203;1981](0xERR0R/blocky#1981)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ca0da10`](0xERR0R/blocky@ca0da10): build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 ([#&#8203;1955](0xERR0R/blocky#1955)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`567a738`](0xERR0R/blocky@567a738): build(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 ([#&#8203;1967](0xERR0R/blocky#1967)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`c3aab87`](0xERR0R/blocky@c3aab87): build(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 ([#&#8203;1982](0xERR0R/blocky#1982)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`ef79a67`](0xERR0R/blocky@ef79a67): build(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 ([#&#8203;1974](0xERR0R/blocky#1974)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6775759`](0xERR0R/blocky@6775759): build(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 ([#&#8203;1953](0xERR0R/blocky#1953)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`71c39fc`](0xERR0R/blocky@71c39fc): build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 ([#&#8203;1939](0xERR0R/blocky#1939)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`be31648`](0xERR0R/blocky@be31648): build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 ([#&#8203;1957](0xERR0R/blocky#1957)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`a574078`](0xERR0R/blocky@a574078): build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 ([#&#8203;1971](0xERR0R/blocky#1971)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6f3f295`](0xERR0R/blocky@6f3f295): build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0 ([#&#8203;1988](0xERR0R/blocky#1988)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`6a75afb`](0xERR0R/blocky@6a75afb): build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 ([#&#8203;1997](0xERR0R/blocky#1997)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])

##### Misc

- [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#&#8203;1993](0xERR0R/blocky#1993)) ([@&#8203;JCHHeilmann](https://github.com/JCHHeilmann))
- [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#&#8203;1942](0xERR0R/blocky#1942)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#&#8203;1951](0xERR0R/blocky#1951)) ([@&#8203;sonjek](https://github.com/sonjek))
- [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#&#8203;1945](0xERR0R/blocky#1945)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#&#8203;1944](0xERR0R/blocky#1944)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#&#8203;1868](0xERR0R/blocky#1868)) ([@&#8203;zeilenschubser](https://github.com/zeilenschubser))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4283
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🧰 technical debts Technical debts, refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants