Releases: qdm12/ddns-updater
Release list
v2.10.0
Long overdue release, enjoy 😉
Features
- Support for
scaleway.com(#899) - Support for
ipv64.net(#937) - Support for
vercel.com(#1065) - Support for
hetznercloud(#1046, #1129) - credits to @legend813 @likt0r @qdm12 - Support for
spaceship.com(#907)
Fixes
- DNS resolution: prevent program hanging if all DNS resolution fail consecutively (#1099)
- Route53: don't replace wildcard character
*withanywhen sending update request (#1036) - Ionos: use filepath/path for joining URL paths to avoid errors in Windows (#984)
- DonDominio: change key JSON parameter from
apikeytopassword(#969) - deSEC: only update specified ip version (#961)
- Njalla: add trailing slash to URL path (#978)
- Update logic: reuse HTTP client transport instead of cloning it (#1095)
Documentation
- Log: log out
<none>when no IP is given toipsToString - Porkbun: align name as
Porkbunin the UI (#1066) - All providers: add detail on
ipv6_suffixabout temporary IPv6 addresses - Readme:
- INWX: clarify DynDNS account requirement (#939)
- Ionos: add api-key structure clarification (#996)
- NameSilo: fix typo in namesilo.com (#888)
- Porkbun: fix example key prefixes in the readme (#995)
Maintenance
Code quality
- Config tests: take into account the OS specific file separator (#985)
Dependencies
- Bump github.com/breml/rootcerts from 0.2.19 to 0.3.5 (#1080, #1118, #1126)
- Bump github.com/go-chi/chi/v5 from 5.2.0 to 5.2.3 (#933, #1078, #1081)
- Bump github.com/miekg/dns from 1.1.62 to 1.1.72 (#962, #1117)
- Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (#1082)
- Bump golang.org/x/mod from 0.31.0 to 0.32.0 (#1079)
- Bump golang.org/x/net from 0.33.0 to 0.53.0 (#968, #1116)
- Bump golang.org/x/oauth2 from 0.24.0 to 0.36.0 (#952, #1115)
- Upgrade transitive dependencies (#1071)
CI
- Use Go version from go.mod in Github actions
- Add 429 and 403 status code as valid code for markdown link check
- Bump actions/checkout from v4 to v6
- Bump actions/setup-go from 5 to 6 (#1084)
- Bump crazy-max/ghaction-github-labeler from 5 to 6 (#1103)
- Bump DavidAnson/markdownlint-cli2-action from 17 to 23 (#1083, #1120)
- Bump docker/build-push-action from 6 to 7 (#1119)
- Bump docker/login-action from 3 to 4 (#1122)
- Bump docker/metadata-action from 5 to 6 (#1121)
- Bump docker/setup-buildx-action from 3 to 4 (#1123)
- Bump docker/setup-qemu-action from 3 to 4 (#1124)
- Bump github/codeql-action from 3 to 4 (#1069, #1086)
- Bump goreleaser/goreleaser-action from 6 to 7 (#1101)
- Bump peter-evans/dockerhub-description from 4 to 5 (#1085)
- Bump Dockerfile xcputranslate to v0.9.0
- Bump Dockerfile linter from v2.4.0 to v2.11.4
Development setup
- Prefer using ghcr.io images
- Linter:
- upgraded from v2.4.0 to v2.11.4
- add linters godoclint, iotamixing, modernize
- Build:
- bump Alpine from 3.20 to 3.23
- bump Go version from 1.23 to 1.26
- upgrade golang/mock to uber-go/mock v0.6.0
- Devcontainer: upgrade godevcontainer to v0.22
- Go upgraded from 1.23 to 1.26
- golangci-lint upgraded to v2.11.4
- Alpine upgraded from 3.20 to 3.23
- Disable package comment requirement by gopls' staticcheck
- Pull container image from ghcr.io
Contributors
@amroessam @eshirvana @foegra @floriantraber @francesco086 @jccint @jorge-carrasco @legend813 @likt0r @michaelkoelle @MrNuggelz @Mynacol @similicious @simonmarty @teranex @TheZoker @williambout
v2.9.1
Fixes
- fix program hanging if all dns resolution fail consecutively (#1099)
- route53: don't replace wildcard character * with any when sending update request (#1036)
- ionos: use filepath/path for joining URL paths to avoid errors in Windows (#984)
- dondominio: change key JSON paramater from apikey to password (#969)
- desec: only update specified ip version (#961)
- njalla: add trailing slash to URL path (#978)
v2.9.0
🎄 🎅 🎁 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:
- 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
UMASKis set - set system umask only if
UMASKis 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
domainoptional 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 newerLookupNetIPresolver function to usenetip.Addrdirectly
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/godevcontainerimage tag to v0.20-alpine
v2.8.2
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:
- 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)
- NoIP: handle response body messages before checking HTTP status code
- 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
- GoIP: fix domain field documentation
- eTLD must be goip.de or goip.it, not eTLD+1
- remove old
domainoptional parameter documentation
- DuckDNS: fix domain documentation on eTLD being duckdns.org
v2.8.1
v2.8.0
Pre-built binaries are attached at the bottom of this release notes in the Assets section. Feel free to 👍 the release!
Features
- Read both domain ("eTLD+1") and owner (aka host) from the
domainfield- retro-compatible change,
hostorownerfield still work if set - documentation updated to only use the
domainfield
- retro-compatible change,
- Use umask from operating system to set permissions on created files
UMASKoption to configure a custom umask value to use
Fixes
- PublicIP HTTP echo: remove
googleprovider which no longer works - Porkbun:
- noip: force
useProviderIPtofalsewhen using IPv6 - Don Dominio: remove unneeded
namefield - Upgrade github.com/qdm12/gosettings from v0.4.1 to v0.4.4-rc1
- Bump github.com/breml/rootcerts from 0.2.17 to 0.2.18 (#814)
Changes
- Deprecate
provider_ipconfig field completely- change should not affect any existing configurations
- change solves issues with dual stack updates (#767)
- this option was unneeded and added unneeded complexity
Documentation
- Readme: add instructions to build latest binary
- Documentation updated to only use the
domainfield for both the domain and owner/host. - Readme: add
README.mdanddocs/versioned links for each recent releases - Readme: add AUR package name to features list section
- Goip: fix documentation for the
hostparameter field - OVH: link to page to retrieve the
consumer_keyvalue - Porkbun: fix discrepancy in parameter field names
- Readme: remove outdated Kanban Github board link
Maintenance
Code health
- Rename
cmd/updatertocmd/ddns-updaterto have binaries named asddns-updaterby default internal/providers:- split out settings validation in its own pure function
- move domain check to each provider validation function
- typo 'agend' fixed to 'agent' in user agent banned error (#790)
internal/models: remove unusedDomainHoststruct- rename
hosttoowner- Retro-compatible change,
hostfield still works - Code updated to use owner variable name
- Retro-compatible change,
internal/providers/porkbun: refactor API code to use a generichttpPostfunctioninternal/persistence/json: change mutex to be non embedded in Database struct- CI: ignore
duckdns.orgfor links check
Dependencies
- Drop dependency on github.com/chmike/domain
- Bump golang.org/x/net from 0.26.0 to 0.29.0 (#806)
- Bump golang.org/x/oauth2 from 0.21.0 to 0.23.0 (#802)
- Bump github.com/qdm12/gosplash from 0.1.0 to 0.2.0 (#783)
- Bump github.com/miekg/dns from 1.1.61 to 1.1.62 (#815)
- Bump golang.org/x/mod from 0.18.0 to 0.21.0 (#801)
- Bump github.com/go-chi/chi/v5 from 5.0.12 to 5.1.0 (#755)
- Upgrade temporary build image Alpine from 3.19 to 3.20
- Bump docker/build-push-action from 5 to 6 (#747)
- Bump DavidAnson/markdownlint-cli2-action from 16 to 17 (#811)
v2.7.1
ℹ️ This is a bugfix release built with fixes only on top of the v2.7.0 program
Fixes
- publicip/http: remove google provider which no longer works
- Porkbun: fix wildcard behavior and alias deletion
- Noip: force useProviderIP to false for IPv6
- Don Dominio: remove unneeded
namefield
Documentation fixes
- readme: add
readmeanddocs/versioned links - goip: fix documentation for the
hostfield
Other minor fixes
- Upgrade github.com/qdm12/gosettings from v0.4.1 to v0.4.4-rc1
- Upgrade github.com/breml/rootcerts from 0.2.17 to 0.2.18
- CI: ignore duckdns.org for links check
v2.6.1
ℹ️ This is a bugfix release built with fixes only on top of the v2.6.0 program
Fixes
custom: url building fixed⚠️ - Web UI: IPs chronological order fixed (reverse) 🖱️
- IP echo: allow custom urls for http ip providers
inwx: allow wildcard hostsionos: wildcard handlingname.com- update root domain record fixed
- detect existing root domain records
noip- IPv6 handling fixed
- handle
useprovideripset to true correctly
porkbun: wildcard update fixed
v2.7.0
Pre-built binaries are attached at the bottom of this release notes in the Assets section. Feel free to 👍 the release!
Features
- Web UI: improvements and fixes (#687)
- changeip.com support
- route53 simple routing support (#715)
CONFIG_FILEPATH(or--config-filepath) option to specify a configuration file path- healthchecks.io
- fail and exit codes support
HEALTH_HEALTHCHECKSIO_BASE_URLoption
- container:
/updater/databuilt-in with correct ownership (#634) publicip/http:- add multiple providers for all IP versions: icanhazip, ident, nnev, wtfismyip, seeip.org
- add changeip for ipv4orv6
publicip/info: add ip2location.io providerSERVER_ENABLEDoption defaulting toyes- Print version when the first argument is
version,-versionor--version - server: serve root at /rooturl on top of /rooturl/
- validate domain strings for providers using it (#638)
Fixes
See v2.6.1 for fixes incorporated in this release compared to v2.6.0
- container: rename
/updater/appto/updater/ddns-updaterso it can easily be found in running processes (see #729) - health server: only run it when running in a container
- trim spaces from each "host" value
cloudflare: prevent empty "key" value if "email" is setgodaddy: link to comment when status code 403 is receivedovh: add no host case handling
Documentation
- readme: update for standalone binaries
- update description and title to be generic and non-specific to containers
- describe availability as container image and prebuilt binaries
- split features in subsections
- readme: fix public ip echo custom url prefix
url:https://instead ofhttps:// - readme:
RESOLVER_ADDRESSdescription improved - readme:
HEALTH_HEALTHCHECKSIO_UUIDdescription improved - readme: reference Qnap setup guide (issue #708)
- readme: better explain container directory and file creation
- readme: fix missing allinkl document link
- contributing document with example provider
- add example provider in code and docs/example.md
- merge contributing guides together
- add contributing section on adding a new provider
- contributing: change 'remote containers extension' to new 'dev containers extension' (#696)
- devcontainer: change 'remote containers extension' to new 'dev containers extension'
docs/infomaniak.md: add missing details and guide (#677)docs/: fix typoidentifiersuffix->identifier suffix
Maintenance
Coding
- migrate to service architecture with github.com/qdm12/goservices (#743)
porkbun: add context to top level errors- linter
- remove invalid configuration file fields
- add multiple linters
cloudflare: unexportcreateRecordmethod- public ip: better error messages stating the provider type if unknown
- cmd/updater: split main function into smaller functions
gcp: validate credentials JSON object has "type" field- change ttl type from int/uint/int32 to uint32
Dependencies
- drop Google SDK dependency
- depend only on golang.org/x/oauth2
- reduce program size from 17MB to 11.5MB
- bump github.com/qdm12/gosettings from 0.4.0-rc9 to 0.4.1 (#683)
- bump github.com/breml/rootcerts from 0.2.14 to 0.2.17 (#612, #631, #741)
- bump github.com/miekg/dns from 1.1.57 to 1.1.61 (#600, #745)
- bump golang.org/x/mod from 0.14.0 to 0.18.0 (#637, #736)
- bump github.com/go-chi/chi/v5 from 5.0.11 to 5.0.12 (#654)
- bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#662)
- Upgrade Go from 1.21 to 1.22
CI
- bump actions/checkout from 3 to 4 (#599)
- bump actions/setup-go from 2 to 5 (#630)
- bump crazy-max/ghaction-github-labeler from 4 to 5 (#596)
- bump DavidAnson/markdownlint-cli2-action from 14 to 16 (#629, #688)
- bump docker/login-action from 2 to 3 (#597)
- bump docker/setup-qemu-action from 2 to 3 (#584)
- bump golangci-lint to v1.56.2
- bump goreleaser/goreleaser-action from 5 to 6 (#737)
- bump peter-evans/dockerhub-description from 3 to 4 (#610)
- pin docker/build-push-action to v5
v2.6.0
Features
- Support CLI flags 🎏 (equivalent to environment variable names)
- Automated binaries releasing on GitHub for commonly used platforms
- IPv6: add JSON parameter
ipv6_suffixand deprecateIPV6_PREFIX(retro-compatible change) (#611) - Public IP fetching 📥
- DNS fetching uses DNS over TLS (DoT) only 🔒,
googleremoved due to no support for DoT - Ipify support for HTTP "IPv4 or IPv6" fetching
- Remove NoIP HTTP option (only plaintext HTTP fetching)
- Add Spdyn for HTTP IPv4 or IPv6 fetching
- Add ipleak for all HTTP modes
- DNS fetching uses DNS over TLS (DoT) only 🔒,
- Existing providers features ♻️
- DonDominio: add support for subdomains and wildcard host values
- Porkbun: json decode error messages for log messages
- Custom provider ✏️ (bugged, fixed in next release v2.7.0)
- Sends HTTP GET request to url given with ip information
- Configurable ipv4 and ipv6 query parameter keys
- Configurable response success detection with a regex
- Treat non status OK 200 responses as failures
- 🆕 Providers
- Shoutrrr 📢
- Bumped from v0.7.0 to v0.8.0
- Add
SHOUTRRR_DEFAULT_TITLE, disableSHOUTRRR_PARAMSand only add&title=parameter to shoutrrr address if it's not set in the address already
- healthchecks.io support with configuration option
HEALTH_HEALTHCHECKSIO_UUID🩺 - Logging 📜
- Log tree of settings at start
- Shoutrrr debug logs
- "IPv6 is not supported on this system" logged if all IP fetching tries fail with an IPv6 error
- Reduce log spamming: log each IP fetching error at the debug level and log them all at the error level in a single line, if all the fetching tries fail.
LISTENING_ADDRESSconfiguration key (#590) to replaceLISTENING_PORT(retro-compatible change) 👂- Docker images tags are now with and without the
vprefix. For example:v2.6.0and:2.6.0🤷 internal/config: append:53to the resolver address if no port is given- More exact times for state updates, events and ban time checking 🕙
Fixes
- Core updating mechanism
- Get database events by IP version (#514)
- Skip update if public IP is not found
- Do not save invalid IP if the public IP is not found
- Set initial fail status if the public ip fetching failed
- Public IP fetching
- IPv6: replace bad regex with custom IPv6 extract function, affects allinkl, dnsomatic, google, he and noip
- Remove plaintext HTTP option
noip - over HTTPs:
- use address of Cloudflare for "ipv4 or ipv6"
- remove opendns option
- over DNS: add opendns option
- Provider specific fixes
- Desec:
- default host to "@" if empty
- allow wildcard hosts
- DNSOMatic:
- remove username validation regex
- treat 'all' host as proxied to reduce updates, and does the IP comparison using the last IP stored in updates.json.
- DonDominio: update code to use newer
https://dondns.dondominio.com/jsonendpoint - DuckDNS:
- send ip address if
"provider_ip": false - support for IPv6 (#542)
- send ip address if
- Dyn: always give
myip=parameter,provider_ipsetting disabled - Dynv6: set url ip field as 'auto' when
"provider_ip": true(#549) - DynDNS: allow wildcard hosts
- Gandi: personal access token support (#568)
- Google: removed since no longer functional
- Infomaniak: handle new response prefixes
- Inwx: fix success codes detection
- Njalla: do not compare ip received when using
"provider_ip": true - Noip: do not check for received IP when using
"provider_ip": true - OpenDNS: IP received comparison check fixed
- Porkbun: delete ALIAS record before creating an A or AAAA record
- Spdyn: validate the host field value even if the token is set
- Desec:
- Web UI
- Bump HTTP timeout from 10s to 20s due to slow NoIP servers
- Logging:
- correct IP version for the "ipv4 no lookup" log line
- IPv4 only and IPv6 only debug logging (#513)
- Creation date set correctly by CI
- Settings:
- Ignore echo services absent from
PUBLICIP_FETCHERS - Web UI listening port validation:
- Check start of unprivileged ports on Linux
- Check if running program has bind capability on Linux
- Ignore echo services absent from
Documentation
- Readme:
- Fix documentation for
SHOUTRRR_DEFAULT_TITLE - Fix all dead links
- Fix shoutrrr bad link (#609)
- Remove outdated
ddnsshttp public ip fetching - Use relative links, now compatible with Docker Hub description sync job
- Fix documentation for
docs/directory:- fix all dead links
- cloudflare: wildcard hosts are allowed
- gcp: fix typo for provider name (#465)
- dnsomatic: fix settings fields (#463)
- infomaniak: add missing
usernamefield in example (#467) - opendns: fix bad provider name
dyntoopendnsin example (#470) - noip: add missing
usernamefield in example (#469) - inwx:
- fix bad provider name
opendns->inwx(#468) - remove trail comma in JSON example
- fix bad provider name
- add missing
provider_ipfield in examples (#466) - add missing
ip_versionparameter for allinkl, name.com, netcup and porkbun - update
ip_versiondescription for all providers - nowdns:
- add missing
ip_versionparameter - remove trail comma in JSON example
- add missing
- Add Kubernetes examples & documentation (#402)
- Github:
- Update all labels
- More explicit title requirement in issue templates
- Remove automated @qdm12 assignee
- Fix typos (#532)
Maintenance
CI
- Add markdown workflow
- Remove docker hub description workflow
- Build workflow ignores md files for spellcheck
- Add goreleaser steps to build and attach binaries on release
- Bump linter
golangci-lintfrom v1.52.2 to v1.55.2 - Add mocks check step
- Force matching Shoutrrr link with go.mod shoutrrr version (#491)
- Add dependabot configuration
- Add build-skip workflow for required workflows
- Bump github/codeql-action from 2 to 3 (#583)
- Bump docker/setup-buildx-action from 2 to 3 (#587)
- Bump docker/metadata-action from 4 to 5 (#585)
- Bump docker/build-push-action from 4.0.0 to 5.1.0 (#582)
Dependencies
- Remove dependency on
golang.org/x/net - Bump breml/rootcerts from v0.2.11 to v0.2.14
- Bump github.com/miekg/dns from v1.1.42 to v1.1.57
- Bump golang.org/x/net from v0.1.0 to v0.17.0 (#540)
- Bump chi from v1.5.4 to v5.0.11
- Bump Go from 1.20 to 1.21
- Bump Alpine from 3.18 to 3.19
- Bump google.golang.org/grpc from 1.50.1 to 1.56.3 (#552)
- Bump github.com/stretchr/testify from v1.8.1 to v1.8.4
- Bump golang.org/x/mod from v0.12.0 to v0.14.0
Code
- Dockerfile:
- Remove outdated
SHOUTRRR_DEFAULT_TITLE - Add
HEALTH_SERVER_ADDRESS=127.0.0.1:9999
- Remove outdated
- Migrate from
net.IP*tonet/netip.Addrandnet/netip.Prefix - Drop
github.com/qdm12/golibsdependencyinternal/persistence/json: drop dependency on golibspkg/publicip/info: remove dependency on golibscmd/updater: replace golibs/connectivity withinternal/health'sCheckHTTPfunctioninternal/settings: remove dependency onqdm12/golibs/verification
- Configuration reading reworked to use
qdm12/gosettings@v0.4.0-rc9 pkg/publicip/dns: set dial timeout as the value of the parent fetcher timeout- Namecheap: make code only IPv4 compatible
- Servercow: use injected domain instead of re-decoding it from JSON
internal/update:- simplify shouldUpdateRecord functions
shouldUpdateRecordNoLookupandshouldUpdateRecordWithLookup - simplify log calls
- rename run.go to service.go
- simplify shouldUpdateRecord functions
persistence/json:- simplify
StoreNewIPmethod - improve data check error messages
- simplify
internal/data: remove unusedGetEventsmethodinternal/models: remove unneededHTMLstring alias type- OVH: remove unneeded sentinel errors
internal/provider/providers:- replace ip nil check with
useProviderIPcheck (affects duckdns, infomaniak and namecheap) - review HTTP headers: add missing header(s), remove unneeded headers
- review error wrappings for
client.Doand wrap using stringdoing http request - review error wrappings for validation errors
- Use
errors.BadRequestforbadrequestresponses only - Change HTTP request creation error wrappings to be a string only
- Add missing HTTP request creation error wrappings
- remove intermediary errors and wrap them with strings instead of other sentinel errors
- replace ip nil check with
internal/provider/errors: review update errors and wrappingsErrBadHTTPStatus->ErrHTTPStatusNotValidErrNumberOfResultsReceived->ErrResultsCountReceivedErrNoResultReceived->ErrReceivedNoResultErrAbuse->ErrBannedAbuseErrInvalidSystemParam->ErrSystemParamNotValidErrNoIPInResponse->ErrReceivedNoIPErrUnsuccessfulResponse->ErrUnsuccessful- Remove
ErrRequestEncodeandErrRequestMarshaland wrap errors with string instead - Remove
ErrUnmarshalResponseand wrap errors with string instead - Add
ErrResponseTooShort- RemoveErrNotFoundand replace with more precise not found errors - Add
ErrRecordResourceSetNotFounderror - Sort errors list alphabetically
- Change
Empty->NotSet - Change
Malformed->NotValid
internal/shoutrrrnew package- .gitignore: fix
/datapath
Note: re-released as v2.6.0 to have permissions fixed for goreleaser to work (c338c28)