• v2.9.0 78f30614b1

    Stable

    saavagebueno released this 2024-12-24 04:18:18 -05:00 | 28 commits to master since this release

    📅 Originally published on GitHub: Tue, 24 Dec 2024 10:38:28 GMT
    🏷️ Git tag created: Tue, 24 Dec 2024 09:18:18 GMT

    🎄 🎅 🎁 Merry Christmas 🎁🎅 🎄

    Features

    • Support for domene.shop (#810)
    • Support for loopia.se (#842)
    • Support for vultr.com (#829)
    • Support myaddr.tools (#885)
    • Support for namesilo.com (#866)
    • Custom provider: allow empty ipv4 and ipv6 keys (see issue #875)
    • Possibility to run health server outside Docker and to disable it in a container
      • disable health server if the health listening address:port is empty
      • default health listening address:port to the empty string
      • Docker default health listening address:port to 127.0.0.1:9999

    Fixes

    • Common update mechanism:
      • do not update if public IP address is within multiple IP addresses resolved
      • IPv6 hostname resolution fixed (it was previously only resolving IPv4)
    • Porkbun:
      • update API endpoint (#837)
      • delete default parked DNS entries if needed (#774)
        • delete default @ ALIAS entry when creating a record for the root domain or the wildcard domain
        • delete default * CNAME entry when creating a record for the wildcard domain
    • Gandi.net:
      • update API endpoint
      • leave ttl unmodified if the user does not specify it
    • DonDominio: wildcard support fixed
    • Netcup.de: allow wildcard domains (#863)
    • GCP: prevent crash for missing record (#846)
    • New file/directory permissions fixed given umask (see #813 for more details)
      • remove bad calculation of "our own" umask
      • remove umask "union effect"
      • do not touch system umask unless UMASK is set
      • set system umask only if UMASK is set
    • NoIP: handle response body messages before checking HTTP status code
    • Log: use go-chi realip middleware (#874)
    • Trim space and lower case all HTTP response 'plain' bodies
    • OVH: handling of invalid JSON error bodies fixed
    • Aliyun: error context fixed when handling bad request errors

    Documentation

    • Readme: specify duckdns and goip are handled differently for multiple domains
    • GoIP: fix domain field documentation and add domain examples
      • eTLD must be goip.de or goip.it, not eTLD+1
      • remove old domain optional parameter documentation
    • DuckDNS: fix domain documentation on eTLD being duckdns.org and add domain examples

    Maintenance

    Code quality

    • do not re-check the owner is not empty within provider specific code
    • format code using gofumpt
    • Upgrade linter from v1.56.2 to v1.61.0
    • add new linters fatcontext, intrange and mirror
    • internal/update: use newer LookupNetIP resolver function to use netip.Addr directly

    Dependencies

    • Upgrade Go from 1.22 to 1.23
    • Bump github.com/breml/rootcerts from 0.2.18 to 0.2.19 (#870)
    • Bump golang.org/x/net from 0.29.0 to 0.31.0
    • Bump github.com/qdm12/gosettings from 0.4.4-rc1 to 0.4.4
    • Bump golang.org/x/oauth2 from 0.23.0 to 0.24.0
    • Bump golang.org/x/mod from 0.21.0 to 0.22.0
    • Bump github.com/go-chi/chi/v5 from 5.1.0 to 5.2.0 (#881)
    • Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#871)

    CI

    • Bump DavidAnson/markdownlint-cli2-action from 17 to 18

    Development setup

    • change field source.organizeImports from true to "always"
    • migrate docker-compose.yml settings to devcontainer.json for codespaces support
    • update devcontainer readme
    • pin qmcgaw/godevcontainer image tag to v0.20-alpine
    Downloads