1
0
mirror of https://github.com/cmur2/dyndnsd.git synced 2025-12-14 13:48:10 +01:00

Compare commits

...

164 Commits

Author SHA1 Message Date
renovate[bot]
b7e2c58e5d docker: update alpine Docker tag to v3.23.0 2025-12-04 02:34:58 +00:00
cn
627b1c4dc5 release: 3.12.0 2025-12-04 01:05:11 +01:00
cn
da79ef902d dyndnsd: add tests for regular expressions 2025-12-04 01:03:16 +01:00
cn
8589cf801f project: update changelog 2025-12-04 00:28:32 +01:00
Jesús Daniel Colmenares Oviedo
c743c778bc dyndnsd: add support for regular expressions 2025-12-04 00:26:34 +01:00
renovate[bot]
415635f373 ci: update actions/checkout action to v6 2025-11-27 09:57:52 +01:00
dependabot[bot]
694a3e4c21 gems: update rubocop-rspec requirement from ~> 3.7.0 to ~> 3.8.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.7.0...v3.8.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-version: 3.8.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 12:51:52 +01:00
renovate[bot]
74aec5f873 docker: update alpine Docker tag to v3.22.2 2025-10-09 16:37:24 +02:00
cn
34f2c01543 ci: run vulnscan less often 2025-10-02 20:37:01 +02:00
cn
62e2067e5b release: 3.11.0 2025-10-02 20:27:15 +02:00
renovate[bot]
62df373c77 project: update aquasecurity/trivy to v0.67.0 2025-10-02 20:23:25 +02:00
7a1302082b Merge branch 'master' into update-3.3 2025-10-02 20:20:44 +02:00
dependabot[bot]
ea3591564d gems: update rubocop requirement from ~> 1.80.0 to ~> 1.81.1
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.80.0...v1.81.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.81.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 19:08:22 +02:00
renovate[bot]
bc2262e2bb project: update hadolint/hadolint to v2.14.0 2025-09-25 11:06:33 +02:00
renovate[bot]
5871ef4c18 project: update hadolint/hadolint to v2.13.1 2025-09-04 10:02:45 +02:00
dependabot[bot]
62e1843365 gems: update rubocop-rspec requirement from ~> 3.6.0 to ~> 3.7.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.6.0...v3.7.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-version: 3.7.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 23:22:22 +02:00
dependabot[bot]
7def8ea8a6 gems: update rubocop requirement from ~> 1.79.1 to ~> 1.80.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.79.1...v1.80.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.80.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-26 00:17:58 +02:00
renovate[bot]
9b553eb117 ci: update actions/checkout action to v5 2025-08-14 10:24:52 +02:00
dependabot[bot]
5e6f0e1e33 gems: update rubocop requirement from ~> 1.78.0 to ~> 1.79.1
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.78.0...v1.79.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.79.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 19:50:27 +02:00
renovate[bot]
01175ec8f9 docker: update alpine Docker tag to v3.22.1 2025-07-17 10:18:27 +02:00
dependabot[bot]
8d2c2f9c90 gems: update rubocop requirement from ~> 1.77.0 to ~> 1.78.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.77.0...v1.78.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.78.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 19:02:43 +02:00
dependabot[bot]
d3522e2c92 gems: update rubocop requirement from ~> 1.76.1 to ~> 1.77.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.76.1...v1.77.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.77.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 15:26:28 +02:00
dependabot[bot]
d92ee500c9 gems: update rubocop requirement from ~> 1.75.1 to ~> 1.76.1
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.75.1...v1.76.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.76.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 20:39:22 +02:00
cn
0ddb87cc57 gems: update solargraph 2025-06-05 23:56:42 +02:00
cn
685854aad3 project: update Renovate config migration 2025-06-05 23:03:03 +02:00
renovate[bot]
3825f57521 docker: update alpine Docker tag to v3.22.0 2025-06-05 23:02:12 +02:00
dependabot[bot]
bf8d1d5bbe gems: update rubocop-rspec requirement from ~> 3.5.0 to ~> 3.6.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-version: 3.6.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 17:11:56 +02:00
renovate[bot]
4becd05aa9 project: update aquasecurity/trivy to v0.61.0 2025-04-01 12:51:44 +02:00
dependabot[bot]
60fdaf9a94 gems: update logger requirement from ~> 1.6.0 to >= 1.6, < 1.8
Updates the requirements on [logger](https://github.com/ruby/logger) to permit the latest version.
- [Release notes](https://github.com/ruby/logger/releases)
- [Commits](https://github.com/ruby/logger/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: logger
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 23:17:59 +02:00
dependabot[bot]
8ad610ceb3 gems: update rubocop requirement from ~> 1.74.0 to ~> 1.75.1
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.74.0...v1.75.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 23:17:26 +02:00
cn
0de309112b ci: ignore vulns on old rubies 2025-03-31 23:14:42 +02:00
dependabot[bot]
066afeb866 gems: update rubocop requirement from ~> 1.73.1 to ~> 1.74.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.73.1...v1.74.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 12:39:37 +01:00
841c6f8b79 project: less frequent trivy updates 2025-03-11 17:08:09 +01:00
renovate[bot]
12c7e8996c project: update aquasecurity/trivy to v0.60.0 2025-03-11 17:06:22 +01:00
dependabot[bot]
1055197b08 gems: update rubocop-rspec requirement from ~> 3.4.0 to ~> 3.5.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 19:52:02 +01:00
dependabot[bot]
08a705ed9a gems: update rubocop-rake requirement from ~> 0.6.0 to ~> 0.7.1
Updates the requirements on [rubocop-rake](https://github.com/rubocop/rubocop-rake) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rake/releases)
- [Changelog](https://github.com/rubocop/rubocop-rake/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rake/compare/v0.6.0...v0.7.1)

---
updated-dependencies:
- dependency-name: rubocop-rake
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 19:49:37 +01:00
renovate[bot]
927fec98f2 docker: update alpine Docker tag to v3.21.3 2025-02-27 23:09:29 +01:00
dependabot[bot]
1e36454711 gems: update rubocop requirement from ~> 1.71.0 to ~> 1.73.1
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.71.0...v1.73.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-27 23:08:36 +01:00
cn
a2e4480e0a project: don't run solargraph by default 2025-02-27 23:02:48 +01:00
cn
466dd30ff4 gem: support Ruby 3.4 2025-02-27 23:02:48 +01:00
cn
07a2be0e7d gems: ignore irrelevant vulns in dev dependency solargraph 2025-02-27 23:02:48 +01:00
renovate[bot]
c2eab91a17 project: update aquasecurity/trivy to v0.59.1 2025-02-06 15:33:20 +01:00
renovate[bot]
957e9d851d project: update aquasecurity/trivy to v0.59.0 2025-02-03 10:15:22 +01:00
dependabot[bot]
45b5a7fb5f gems: update rubocop-rspec requirement from ~> 3.3.0 to ~> 3.4.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-02 21:13:29 +01:00
dependabot[bot]
8e0fc18f7c gems: update rubocop requirement from ~> 1.70.0 to ~> 1.71.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.70.0...v1.71.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-02 21:13:18 +01:00
dependabot[bot]
59c50396fb gems: update rubocop requirement from ~> 1.69.0 to ~> 1.70.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.69.0...v1.70.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 13:29:48 +01:00
renovate[bot]
d11dcc9b39 docker: update alpine Docker tag to v3.21.2 2025-01-09 10:04:27 +01:00
dependabot[bot]
9be5e929fb gems: update rubocop-rspec requirement from ~> 3.2.0 to ~> 3.3.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 16:26:00 +01:00
renovate[bot]
39796681ab docker: update alpine Docker tag to v3.21.0 2024-12-12 16:13:29 +01:00
dependabot[bot]
9a8b04085f gems: update rubocop requirement from ~> 1.68.0 to ~> 1.69.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.68.0...v1.69.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 13:31:00 +01:00
dependabot[bot]
90127eb00c gems: update rubocop requirement from ~> 1.67.0 to ~> 1.68.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.67.0...v1.68.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-14 22:25:59 +01:00
dependabot[bot]
b18c1d779f gems: update rubocop-rspec requirement from ~> 3.1.0 to ~> 3.2.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 12:15:27 +01:00
dependabot[bot]
9a77a511cd gems: update rubocop requirement from ~> 1.66.0 to ~> 1.67.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.66.0...v1.67.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 18:10:09 +02:00
dependabot[bot]
cfb5463bff gems: update rubocop-rspec requirement from ~> 3.0.1 to ~> 3.1.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.0.1...v3.1.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-11 11:46:33 +02:00
renovate[bot]
45e82dc86a docker: update alpine Docker tag to v3.20.3 2024-09-12 10:39:51 +02:00
dependabot[bot]
8656fd141b gems: update rubocop requirement from ~> 1.65.0 to ~> 1.66.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.65.0...v1.66.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 14:05:16 +02:00
renovate[bot]
b9d9f41913 project: update aquasecurity/trivy to v0.54.1 2024-08-01 16:12:13 +02:00
renovate[bot]
b88b109259 docker: update alpine Docker tag to v3.20.2 2024-07-25 08:52:21 +02:00
dependabot[bot]
80e91fcb5d gems: update rubocop requirement from ~> 1.64.0 to ~> 1.65.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.64.0...v1.65.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 14:17:02 +02:00
renovate[bot]
5d09b50b0e project: update aquasecurity/trivy to v0.53.0 2024-07-04 14:49:25 +02:00
renovate[bot]
e18bc8910c docker: update alpine Docker tag to v3.20.1 2024-06-27 10:15:08 +02:00
renovate[bot]
e145885b57 ci: update docker/build-push-action action to v6 2024-06-20 16:05:40 +02:00
dependabot[bot]
76c9208940 gems: update rubocop-rspec requirement from ~> 2.31.0 to ~> 3.0.1
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.31.0...v3.0.1)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 15:32:08 +02:00
dependabot[bot]
0ab9ace8c8 gems: update rubocop-rspec requirement from ~> 2.30.0 to ~> 2.31.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.30.0...v2.31.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 13:21:42 +02:00
renovate[bot]
27867076f3 project: update aquasecurity/trivy to v0.52.0 2024-06-06 10:50:20 +02:00
dependabot[bot]
8a270e37fc gems: update rubocop-rspec requirement from ~> 2.29.2 to ~> 2.30.0
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.29.2...v2.30.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 13:59:06 +02:00
renovate[bot]
d1e3d6f9d2 project: update aquasecurity/trivy to v0.51.4 2024-05-30 09:10:56 +02:00
dependabot[bot]
dc0eb621e7 gems: update rubocop requirement from ~> 1.63.5 to ~> 1.64.0
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.63.5...v1.64.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 16:16:29 +02:00
renovate[bot]
78b4f956cd project: update aquasecurity/trivy to v0.51.2 2024-05-23 13:42:13 +02:00
Christian Nicolai
85c6378d73 ci: update wait time for Docker E2E test 2024-05-23 13:41:34 +02:00
renovate[bot]
556f087a10 docker: update alpine Docker tag to v3.20.0 2024-05-23 13:41:34 +02:00
Christian Nicolai
c962f3eb84 gems: downgrade solargraph to version 0.49.0
This revert be33b1917a due to https://github.com/castwide/solargraph/issues/701
2024-05-23 13:39:55 +02:00
dependabot[bot]
581885daa0 gems: update rubocop-rspec requirement from ~> 2.26.1 to ~> 2.29.2
Updates the requirements on [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.26.1...v2.29.2)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-16 22:18:52 +02:00
dependabot[bot]
267a96bf73 gems: update rubocop requirement from ~> 1.61.0 to ~> 1.63.5
Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.61.0...v1.63.5)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-16 21:46:44 +02:00
renovate[bot]
44a4a28094 project: update aquasecurity/trivy to v0.51.1 2024-05-16 21:46:29 +02:00
3f962fa3bb docs: remove Depfu badge 2024-05-16 21:43:41 +02:00
1171e0cb92 gems: disable Depfu for Dependabot since PR creation fails 2024-05-16 21:41:43 +02:00
cn
6a933194f3 project: fix Renovate config 2024-05-16 17:26:48 +02:00
cn
e546d03d9f ci: add Renovate config validator 2024-05-16 17:26:48 +02:00
renovate[bot]
65d52675c9 project: update aquasecurity/trivy to v0.50.4 2024-04-25 10:58:03 +02:00
renovate[bot]
636d6f6379 project: update aquasecurity/trivy to v0.50.1 2024-03-28 02:26:20 +01:00
renovate[bot]
26381244aa project: update aquasecurity/trivy to v0.50.0 2024-03-21 10:26:13 +01:00
depfu[bot]
d51937c68b gems: update rubocop to version 1.61.0 2024-03-01 16:13:13 +01:00
renovate[bot]
dbc4073b66 project: update aquasecurity/trivy to v0.49.1 2024-02-08 10:49:32 +01:00
renovate[bot]
d83f8d8e69 docker: update alpine Docker tag to v3.19.1 2024-02-01 10:19:22 +01:00
cn
8f7a796e9d release: 3.10.0 2024-01-18 23:19:49 +01:00
cn
95acdcbc70 gem: support Ruby 3.3 2024-01-18 23:14:41 +01:00
cn
81dc2aba4c gem: support Ruby 3.3 2024-01-18 23:12:23 +01:00
renovate[bot]
38fdf44c1f project: update aquasecurity/trivy to v0.48.3 2024-01-18 10:27:39 +01:00
depfu[bot]
e3d57ea3aa gems: update rubocop to version 1.60.0 2024-01-16 11:27:33 +01:00
renovate[bot]
90166c8ef2 project: update aquasecurity/trivy to v0.48.2 2024-01-11 10:02:29 +01:00
depfu[bot]
98b413eb6b gems: update rubocop-rspec to version 2.26.1 2024-01-06 23:17:22 +01:00
renovate[bot]
43df61b819 project: update aquasecurity/trivy to v0.48.1 2023-12-21 12:12:11 +01:00
renovate[bot]
8ee945ed31 docker: update alpine Docker tag to v3.19.0 2023-12-14 11:52:46 +01:00
depfu[bot]
1ae0642541 gems: update rubocop to version 1.59.0 2023-12-12 15:16:42 +01:00
depfu[bot]
be33b1917a gems: update solargraph to version 0.50.0 2023-12-09 10:16:54 +01:00
renovate[bot]
e6c9773b8e project: update aquasecurity/trivy to v0.48.0 2023-12-09 10:16:33 +01:00
renovate[bot]
5a54dbe0c7 docker: update alpine Docker tag to v3.18.5 2023-12-09 10:16:23 +01:00
depfu[bot]
aa20275888 gems: update rubocop to version 1.58.0 2023-12-02 21:48:09 +01:00
renovate[bot]
049e14afa5 project: update aquasecurity/trivy to v0.47.0 2023-11-09 11:30:38 +01:00
depfu[bot]
54544b75d1 gems: update rubocop-rspec to version 2.25.0 2023-10-28 13:35:21 +02:00
renovate[bot]
3274741721 project: update aquasecurity/trivy to v0.46.0 2023-10-19 08:50:43 +02:00
depfu[bot]
8d8a85a78f gems: update rubocop to version 1.57.0 2023-10-12 15:42:11 +02:00
renovate[bot]
cdfe350828 project: update aquasecurity/trivy to v0.45.1 2023-10-05 21:14:01 +02:00
renovate[bot]
337c86f47b docker: update alpine Docker tag to v3.18.4 2023-10-05 21:13:49 +02:00
renovate[bot]
20d359f328 ci: update docker/login-action action to v3 2023-09-14 09:00:13 +02:00
renovate[bot]
4cf6591f38 ci: update docker/setup-buildx-action action to v3 2023-09-14 08:59:46 +02:00
renovate[bot]
5a9244694a ci: update docker/build-push-action action to v5 2023-09-14 08:57:41 +02:00
depfu[bot]
015ee60420 gems: update rubocop-rspec to version 2.24.0 2023-09-09 17:06:48 +02:00
renovate[bot]
2d4b94c129 ci: update actions/checkout action to v4 2023-09-07 08:52:15 +02:00
renovate[bot]
aefd59aea8 project: update aquasecurity/trivy to v0.45.0 2023-09-07 08:52:02 +02:00
depfu[bot]
10fd5699ac gems: update rubocop to version 1.56.0 2023-08-10 11:08:20 +02:00
renovate[bot]
ecf425dd61 project: update aquasecurity/trivy to v0.44.1 2023-08-10 09:00:16 +02:00
Christian Nicolai
70ad2148b9 release: 3.9.2 2023-08-10 08:58:45 +02:00
renovate[bot]
93e252443a docker: update alpine Docker tag to v3.18.3 2023-08-10 08:57:31 +02:00
renovate[bot]
d9f0119ab8 project: update aquasecurity/trivy to v0.44.0 2023-08-03 08:45:50 +02:00
depfu[bot]
bf225b8e6a gems: update rubocop-rspec to version 2.23.0 2023-07-31 19:28:23 +02:00
depfu[bot]
6a9e05fb97 gems: update rubocop to version 1.55.0 2023-07-26 20:14:02 +02:00
renovate[bot]
bc4210d5ce project: update aquasecurity/trivy to v0.43.1 2023-07-13 08:44:06 +02:00
Christian Nicolai
a54235fcf2 release: 3.9.1 2023-07-06 09:04:57 +02:00
renovate[bot]
be87ba8f31 project: update aquasecurity/trivy to v0.43.0 2023-07-06 08:59:47 +02:00
depfu[bot]
5e947316f6 gems: update rubocop to version 1.54.0 2023-07-02 13:58:49 +02:00
cn
c71b23d35e ci: fix linting 2023-07-02 13:56:53 +02:00
cn
2258edaae6 ci: remove usage of deprecated solargraph download-core cmd
Related to cf1cd66307
2023-06-24 16:38:21 +02:00
depfu[bot]
f8878077cf gems: update rubocop to version 1.53.0 2023-06-24 16:34:01 +02:00
renovate[bot]
2deb5f3337 project: update aquasecurity/trivy to v0.42.1 2023-06-15 12:23:59 +02:00
renovate[bot]
ca92b894cb docker: update alpine Docker tag to v3.18.2 2023-06-15 12:23:07 +02:00
e45902f5cf ci: don't fail fast to see compatibility 2023-06-08 20:16:14 +02:00
Christian Nicolai
9ae88964ec release: 3.9.0 2023-06-08 10:31:34 +02:00
Christian Nicolai
90ae7543d7 gem: drop support for Rubies < 3 2023-06-08 09:47:40 +02:00
Christian Nicolai
37413bcd3b ci: use new Trivy args 2023-06-08 09:41:53 +02:00
renovate[bot]
7af351c384 project: update aquasecurity/trivy to v0.42.0 2023-06-08 09:34:21 +02:00
depfu[bot]
68dac5c6f3 gems: update rubocop to version 1.52.0 2023-06-04 12:01:17 +02:00
renovate[bot]
c7130c7ee4 project: update aquasecurity/trivy to v0.41.0 2023-06-01 08:52:34 +02:00
renovate[bot]
3c3c1fcb24 docker: update alpine Docker tag to v3.18.0 2023-06-01 08:51:16 +02:00
depfu[bot]
425318a0d1 gems: update rubocop to version 1.51.0 2023-05-14 12:48:54 +02:00
depfu[bot]
c2eda1648b gems: update rubocop-rspec to version 2.22.0 2023-05-07 21:46:16 +02:00
depfu[bot]
d72cfeddd8 gems: update rubocop-rspec to version 2.21.0 2023-05-06 14:59:34 +02:00
renovate[bot]
6463999ab4 ci: update docker/build-push-action action to v4 2023-04-19 13:20:10 +02:00
depfu[bot]
b56922c3c8 gems: update rubocop-rspec to version 2.20.0 2023-04-19 13:17:50 +02:00
renovate[bot]
71666776b4 project: update aquasecurity/trivy to v0.39.1 2023-04-13 09:17:47 +02:00
depfu[bot]
c4e6e16afb gems: update rubocop to version 1.50.0 2023-04-12 11:55:06 +02:00
depfu[bot]
05f86550be gems: update solargraph to version 0.49.0 2023-04-11 09:39:17 +02:00
renovate[bot]
edcd7e1e47 project: update aquasecurity/trivy to v0.39.0 2023-04-06 09:55:35 +02:00
depfu[bot]
6f29034aef gems: update rubocop to version 1.49.0 2023-04-04 11:59:45 +02:00
cn
dd7553d5fd release: 3.8.2 2023-04-01 22:53:50 +02:00
renovate[bot]
a21f6a4cad docker: update alpine Docker tag to v3.17.3 2023-03-30 09:05:09 +02:00
renovate[bot]
31a7f54827 project: update aquasecurity/trivy to v0.38.3 2023-03-16 09:01:40 +01:00
renovate[bot]
d415451c8e project: update aquasecurity/trivy to v0.38.2 2023-03-09 11:36:31 +01:00
depfu[bot]
699c907a84 gems: update rubocop-rspec to version 2.19.0 2023-03-07 22:48:30 +01:00
depfu[bot]
1ad23c8716 gems: update rubocop to version 1.48.0 2023-03-07 13:59:22 +01:00
depfu[bot]
c538a6b07f gems: update async to version 1.31.0 2023-03-03 14:04:25 +01:00
depfu[bot]
fe3f17cd02 gems: update rubocop to version 1.47.0 2023-03-02 15:00:27 +01:00
Christian Nicolai
0e9b17cb0b release: 3.8.1 2023-03-02 09:23:11 +01:00
renovate[bot]
0f793f92d8 project: update aquasecurity/trivy to v0.38.0 2023-03-02 09:14:59 +01:00
depfu[bot]
0fd3833b9c gems: update rubocop to version 1.46.0 2023-02-23 22:31:52 +01:00
renovate[bot]
5bc5977704 project: update aquasecurity/trivy to v0.37.3 2023-02-16 07:19:51 +01:00
renovate[bot]
684d1f0578 docker: update alpine Docker tag to v3.17.2 2023-02-16 07:15:48 +01:00
depfu[bot]
14bac86e9d gems: update rubocop to version 1.45.1 2023-02-09 20:58:21 +01:00
renovate[bot]
12afe16a78 project: update aquasecurity/trivy to v0.37.1 2023-02-02 12:03:31 +01:00
depfu[bot]
75059044de gems: update rubocop to version 1.44.0 2023-01-24 15:20:41 +01:00
Christian Nicolai
9f7ebfe59c gems: add constraint for rackup version 2023-01-19 15:56:26 +01:00
depfu[bot]
ac42413580 gems: update rubocop-rspec to version 2.18.0 2023-01-17 14:01:54 +01:00
depfu[bot]
415bb36754 gems: update rubocop-rspec to version 2.17.0 2023-01-14 20:15:14 +01:00
16 changed files with 212 additions and 57 deletions

13
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
---
version: 2
updates:
- package-ecosystem: "bundler"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "gems"
labels: ["dependabot"]
open-pull-requests-limit: 10
pull-request-branch-name:
separator: "-"

View File

@@ -1,6 +1,6 @@
{ {
extends: [ extends: [
"config:base", "config:recommended",
":dependencyDashboard", ":dependencyDashboard",
":prHourlyLimitNone", ":prHourlyLimitNone",
":prConcurrentLimitNone", ":prConcurrentLimitNone",
@@ -20,6 +20,13 @@
matchManagers: ["bundler"], matchManagers: ["bundler"],
enabled: false, enabled: false,
}, },
// Only quarter update since noisy/stable tools
{
matchPackageNames: [
"aquasecurity/trivy",
],
schedule: ["* 0-8 1 */3 *"],
},
// Commit message formats // Commit message formats
{ {
matchDatasources: ["docker"], matchDatasources: ["docker"],
@@ -30,9 +37,10 @@
commitMessagePrefix: "ci: ", commitMessagePrefix: "ci: ",
}, },
], ],
regexManagers: [ customManagers: [
{ {
fileMatch: ["\.rb$", "^Rakefile$"], customType: "regex",
managerFilePatterns: ["/.rb$/", "/^Rakefile$/"],
matchStrings: [ matchStrings: [
"renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)\\s.*_version = '(?<currentValue>.*)'\\s" "renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)\\s.*_version = '(?<currentValue>.*)'\\s"
] ]

View File

@@ -11,7 +11,7 @@ jobs:
release-dockerimage: release-dockerimage:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v6
- name: Extract dyndnsd version from tag name - name: Extract dyndnsd version from tag name
run: | run: |
@@ -33,16 +33,16 @@ jobs:
# https://github.com/marketplace/actions/build-and-push-docker-images # https://github.com/marketplace/actions/build-and-push-docker-images
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub - name: Login to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: cmur2 username: cmur2
password: ${{ secrets.DOCKER_TOKEN }} password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push Docker image for dyndnsd ${{ env.DYNDNSD_VERSION }} - name: Build and push Docker image for dyndnsd ${{ env.DYNDNSD_VERSION }}
uses: docker/build-push-action@v3 uses: docker/build-push-action@v6
with: with:
context: docker context: docker
build-args: | build-args: |

View File

@@ -15,14 +15,15 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false
matrix: matrix:
ruby-version: ruby-version:
- '2.7'
- '3.0'
- '3.1' - '3.1'
- '3.2' - '3.2'
- '3.3'
- '3.4'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v6
- name: Set up Ruby ${{ matrix.ruby-version }} - name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
@@ -36,9 +37,19 @@ jobs:
actionlint: actionlint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v6
- name: Check workflow files - name: Check workflow files
run: | run: |
echo "::add-matcher::.github/actionlint-matcher.json" echo "::add-matcher::.github/actionlint-matcher.json"
bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
./actionlint ./actionlint
renovate-config-validator:
runs-on: ubuntu-latest
container:
image: ghcr.io/renovatebot/renovate
options: --user root
steps:
- uses: actions/checkout@v6
- name: Check Renovate config
run: renovate-config-validator --strict

View File

@@ -1,10 +1,9 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
--- ---
name: vulnscan name: vulnscan
on: on:
schedule: schedule:
- cron: '7 4 * * 4' # weekly on thursday morning - cron: '7 4 1 * *' # monthly on first day's morning
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@@ -36,7 +35,7 @@ jobs:
for image in $ALL_IMAGES; do for image in $ALL_IMAGES; do
if [[ "$image" = cmur2/dyndnsd:v$major_version.* ]]; then if [[ "$image" = cmur2/dyndnsd:v$major_version.* ]]; then
echo -e "\nScanning newest patch release $image of major v$major_version...\n" echo -e "\nScanning newest patch release $image of major v$major_version...\n"
if ! trivy image --skip-update --exit-code 1 "$image"; then if ! trivy image --skip-db-update --scanners vuln --exit-code 1 "$image"; then
EXIT_CODE=1 EXIT_CODE=1
fi fi
break break

View File

@@ -1,11 +1,14 @@
require: plugins:
- rubocop-rake - rubocop-rake
- rubocop-rspec - rubocop-rspec
AllCops: AllCops:
TargetRubyVersion: '2.7' TargetRubyVersion: '3.0'
NewCops: enable NewCops: enable
Gemspec/DevelopmentDependencies:
EnforcedStyle: gemspec
Gemspec/RequireMFA: Gemspec/RequireMFA:
Enabled: false Enabled: false

View File

@@ -1,5 +1,58 @@
# Changelog # Changelog
## 3.12.0 (December 4th, 2025)
IMPROVEMENTS:
- regex instead of hosts list can be used for hostname ownership
## 3.11.0 (October 2nd, 2025)
IMPROVEMENTS:
- add Ruby 3.4 support
- update base of Docker image to Alpine 3.22.1 (from 3.19.0 before)
## 3.10.0 (January 18th, 2024)
IMPROVEMENTS:
- add Ruby 3.3 support
OTHER:
- update base of Docker image to Alpine 3.19.0 (from 3.18.3 before)
## 3.9.2 (August 10th, 2023)
OTHER:
- update base of Docker image to Alpine 3.18.3 (from 3.18.2 before)
## 3.9.1 (July 6, 2023)
OTHER:
- update base of Docker image to Alpine 3.18.2 (from 3.18.0 before)
## 3.9.0 (June 8, 2023)
IMPROVEMENTS:
- Drop EOL Ruby 2.7 support, now minimum version supported is Ruby 3.0
## 3.8.2 (April 1st, 2023)
OTHER:
- update base of Docker image to Alpine 3.17.3 (from 3.17.2 before)
## 3.8.1 (March 2nd, 2023)
OTHER:
- update base of Docker image to Alpine 3.17.2 (from 3.17.1 before)
## 3.8.0 (January 13th, 2023) ## 3.8.0 (January 13th, 2023)
IMPROVEMENTS: IMPROVEMENTS:

View File

@@ -1,6 +1,6 @@
# dyndnsd.rb # dyndnsd.rb
![ci](https://github.com/cmur2/dyndnsd/workflows/ci/badge.svg) [![Dependencies](https://badges.depfu.com/badges/4f25da8493f7a29f652ac892fbf9227b/overview.svg)](https://depfu.com/github/cmur2/dyndnsd) ![ci](https://github.com/cmur2/dyndnsd/workflows/ci/badge.svg)
A small, lightweight and extensible DynDNS server written with Ruby and Rack. A small, lightweight and extensible DynDNS server written with Ruby and Rack.
@@ -307,6 +307,37 @@ users:
``` ```
### Matching with a regular expression
Instead of relying on `hosts`, you can use `regex` to employ a regular expression, which is very useful for avoiding having to repeatedly edit the configuration file to register a new host name.
```yaml
host: "0.0.0.0"
port: 5354
username: "dyndnsd"
group: "dyndnsd"
db: "/dyndnsd/db.json"
debug: false
domain: "dyn.dc-air.home.arpa"
updater:
name: "command_with_bind_zone"
params:
zone_file: "/nsd/zones/static/dyn.dc-air.home.arpa.zone"
command: "doas service nsd reload"
ttl: "5m"
dns: "ns.dc-air.home.arpa."
email_addr: "admin.example.org"
users:
myuser:
password: "superhypermegas3kurepassword1234"
regex: '^[a-z][0-9]\.dyn\.dc\-air\.home\.arpa$'
```
However, when using `regex`, `hosts` is simply ignored if defined, so you must choose one or the other. Recommendation: use `regex` for scripts or programs and `hosts` for regular users.
**Note**: Please note that when dyndnsd evaluates the regular expression, the `Regexp::EXTENDED` and `Regexp::IGNORECASE` options are used.
## License ## License
dyndnsd.rb is licensed under the Apache License, Version 2.0. See LICENSE for more information. dyndnsd.rb is licensed under the Apache License, Version 2.0. See LICENSE for more information.

View File

@@ -3,29 +3,20 @@
require 'bundler/gem_tasks' require 'bundler/gem_tasks'
require 'rspec/core/rake_task' require 'rspec/core/rake_task'
require 'rubocop/rake_task' require 'rubocop/rake_task'
require 'bundler/audit/task'
RSpec::Core::RakeTask.new(:spec) RSpec::Core::RakeTask.new(:spec)
RuboCop::RakeTask.new RuboCop::RakeTask.new
Bundler::Audit::Task.new
desc 'Run experimental solargraph type checker' desc 'Run experimental solargraph type checker'
task :solargraph do task :solargraph do
sh 'solargraph typecheck' sh 'solargraph typecheck'
end end
namespace :solargraph do
desc 'Should be run by developer once to prepare initial solargraph usage (fill caches etc.)'
task :init do
sh 'solargraph download-core'
end
end
# renovate: datasource=github-tags depName=hadolint/hadolint # renovate: datasource=github-tags depName=hadolint/hadolint
hadolint_version = 'v2.12.0' hadolint_version = 'v2.14.0'
# renovate: datasource=github-tags depName=aquasecurity/trivy # renovate: datasource=github-tags depName=aquasecurity/trivy
trivy_version = 'v0.36.1' trivy_version = 'v0.67.0'
namespace :docker do namespace :docker do
ci_image = 'cmur2/dyndnsd:ci' ci_image = 'cmur2/dyndnsd:ci'
@@ -57,7 +48,7 @@ namespace :docker do
chmod a+w e2e/db.json chmod a+w e2e/db.json
SCRIPT SCRIPT
sh "docker run -d --name=dyndnsd-ci -v $(pwd)/e2e:/etc/dyndnsd -p 8080:8080 -p 5353:5353 #{ci_image}" sh "docker run -d --name=dyndnsd-ci -v $(pwd)/e2e:/etc/dyndnsd -p 8080:8080 -p 5353:5353 #{ci_image}"
sh 'sleep 1' sh 'sleep 5'
puts '----------------------------------------' puts '----------------------------------------'
# `dig` needs `sudo apt-get install -y -q dnsutils` # `dig` needs `sudo apt-get install -y -q dnsutils`
sh <<~SCRIPT sh <<~SCRIPT
@@ -75,7 +66,14 @@ namespace :docker do
end end
end end
task default: [:rubocop, :spec, 'bundle:audit', :solargraph] namespace :bundle do
desc 'Check for vulnerabilities with bundler-audit'
task :audit do
sh 'bundler-audit check --ignore GHSA-vvfq-8hwr-qm4m' if !RUBY_VERSION.start_with?('3.0')
end
end
task default: [:rubocop, :spec, 'bundle:audit']
desc 'Run all tasks desired for CI' desc 'Run all tasks desired for CI'
task ci: ['solargraph:init', :default, 'docker:lint', :build, 'docker:build', 'docker:e2e'] task ci: [:default, 'docker:lint', :build, 'docker:build', 'docker:e2e']

View File

@@ -1,11 +1,11 @@
FROM alpine:3.17.1 FROM alpine:3.23.0
EXPOSE 5353 8080 EXPOSE 5353 8080
ARG DYNDNSD_VERSION ARG DYNDNSD_VERSION
RUN apk --no-cache add openssl ca-certificates && \ RUN apk --no-cache add openssl ca-certificates && \
apk --no-cache add ruby ruby-etc ruby-io-console ruby-json ruby-webrick && \ apk --no-cache add ruby ruby-webrick && \
apk --no-cache add --virtual .build-deps linux-headers ruby-dev build-base tzdata && \ apk --no-cache add --virtual .build-deps linux-headers ruby-dev build-base tzdata && \
gem install --no-document dyndnsd -v ${DYNDNSD_VERSION} && \ gem install --no-document dyndnsd -v ${DYNDNSD_VERSION} && \
rm -rf /usr/lib/ruby/gems/*/cache/ && \ rm -rf /usr/lib/ruby/gems/*/cache/ && \

View File

@@ -1,11 +1,11 @@
FROM alpine:3.17.1 FROM alpine:3.23.0
EXPOSE 5353 8080 EXPOSE 5353 8080
COPY pkg/dyndnsd-*.gem /tmp/dyndnsd.gem COPY pkg/dyndnsd-*.gem /tmp/dyndnsd.gem
RUN apk --no-cache add openssl ca-certificates && \ RUN apk --no-cache add openssl ca-certificates && \
apk --no-cache add ruby ruby-etc ruby-io-console ruby-json ruby-webrick && \ apk --no-cache add ruby ruby-webrick && \
apk --no-cache add --virtual .build-deps linux-headers ruby-dev build-base tzdata && \ apk --no-cache add --virtual .build-deps linux-headers ruby-dev build-base tzdata && \
gem install --no-document /tmp/dyndnsd.gem && \ gem install --no-document /tmp/dyndnsd.gem && \
rm -rf /usr/lib/ruby/gems/*/cache/ && \ rm -rf /usr/lib/ruby/gems/*/cache/ && \

View File

@@ -25,25 +25,27 @@ Gem::Specification.new do |s|
s.executables = ['dyndnsd'] s.executables = ['dyndnsd']
s.extra_rdoc_files = Dir['README.md', 'CHANGELOG.md', 'LICENSE'] s.extra_rdoc_files = Dir['README.md', 'CHANGELOG.md', 'LICENSE']
s.required_ruby_version = '>= 2.7' s.required_ruby_version = '>= 3.0'
s.add_runtime_dependency 'async', '~> 1.30.0' s.add_dependency 'async', '~> 1.31.0'
s.add_runtime_dependency 'async-dns', '~> 1.3.0' s.add_dependency 'async-dns', '~> 1.3.0'
s.add_runtime_dependency 'metriks' s.add_dependency 'base64', '~> 0.2.0' # needed for async
s.add_runtime_dependency 'opentelemetry-exporter-jaeger', '~> 0.22.0' s.add_dependency 'logger', '>= 1.6', '< 1.8'
s.add_runtime_dependency 'opentelemetry-instrumentation-rack', '~> 0.22.0' s.add_dependency 'metriks'
s.add_runtime_dependency 'opentelemetry-sdk', '~> 1.2.0' s.add_dependency 'opentelemetry-exporter-jaeger', '~> 0.22.0'
s.add_runtime_dependency 'rack', '~> 3.0' s.add_dependency 'opentelemetry-instrumentation-rack', '~> 0.22.0'
s.add_runtime_dependency 'rackup' s.add_dependency 'opentelemetry-sdk', '~> 1.2.0'
s.add_runtime_dependency 'webrick', '>= 1.6.1' s.add_dependency 'rack', '~> 3.0'
s.add_dependency 'rackup', '~> 2'
s.add_dependency 'webrick', '>= 1.6.1'
s.add_development_dependency 'bundler' s.add_development_dependency 'bundler'
s.add_development_dependency 'bundler-audit', '~> 0.9.0' s.add_development_dependency 'bundler-audit', '~> 0.9.0'
s.add_development_dependency 'rack-test' s.add_development_dependency 'rack-test'
s.add_development_dependency 'rake' s.add_development_dependency 'rake'
s.add_development_dependency 'rspec' s.add_development_dependency 'rspec'
s.add_development_dependency 'rubocop', '~> 1.43.0' s.add_development_dependency 'rubocop', '~> 1.81.1'
s.add_development_dependency 'rubocop-rake', '~> 0.6.0' s.add_development_dependency 'rubocop-rake', '~> 0.7.1'
s.add_development_dependency 'rubocop-rspec', '~> 2.16.0' s.add_development_dependency 'rubocop-rspec', '~> 3.8.0'
s.add_development_dependency 'solargraph', '~> 0.48.0' s.add_development_dependency 'solargraph', '~> 0.55.0'
end end

View File

@@ -107,7 +107,7 @@ module Dyndnsd
puts "DynDNSd version #{Dyndnsd::VERSION}" puts "DynDNSd version #{Dyndnsd::VERSION}"
puts "Using config file #{config_file}" puts "Using config file #{config_file}"
config = YAML.safe_load(File.read(config_file)) config = YAML.safe_load_file(config_file)
setup_logger(config) setup_logger(config)
@@ -138,7 +138,7 @@ module Dyndnsd
# @param params [Hash{String => String}] # @param params [Hash{String => String}]
# @return [Array<String>] # @return [Array<String>]
def extract_v4_and_v6_address(params) def extract_v4_and_v6_address(params)
return [] if !(params['myip']) return [] if !params['myip']
begin begin
IPAddr.new(params['myip'], Socket::AF_INET) IPAddr.new(params['myip'], Socket::AF_INET)
IPAddr.new(params['myip6'], Socket::AF_INET6) IPAddr.new(params['myip6'], Socket::AF_INET6)
@@ -207,7 +207,7 @@ module Dyndnsd
params = Rack::Utils.parse_query(env['QUERY_STRING']) params = Rack::Utils.parse_query(env['QUERY_STRING'])
# require hostname parameter # require hostname parameter
return [422, {'X-DynDNS-Response' => 'hostname_missing'}, []] if !(params['hostname']) return [422, {'X-DynDNS-Response' => 'hostname_missing'}, []] if !params['hostname']
hostnames = params['hostname'].split(',') hostnames = params['hostname'].split(',')
@@ -218,9 +218,22 @@ module Dyndnsd
# we can trust this information since user was authorized by middleware # we can trust this information since user was authorized by middleware
user = env['REMOTE_USER'] user = env['REMOTE_USER']
# check for hostnames that the user does not own if @users[user].key?('regex')
forbidden_hostnames = hostnames - @users[user].fetch('hosts', []) pattern = @users[user].fetch('regex')
return [422, {'X-DynDNS-Response' => 'host_forbidden'}, []] if forbidden_hostnames.any? begin
regex = Regexp.new(pattern, Regexp::IGNORECASE | Regexp::EXTENDED)
rescue RegexpError => e
Dyndnsd.logger.warn "Invalid regex pattern '#{pattern}': #{e.message}"
return [422, {'X-DynDNS-Response' => 'host_forbidden'}, []]
end
# check for hostnames that match the regex
matches = hostnames.any? { |str| regex.match?(str) }
return [422, {'X-DynDNS-Response' => 'host_forbidden'}, []] if !matches
else
# check for hostnames that the user does not own
forbidden_hostnames = hostnames - @users[user].fetch('hosts', [])
return [422, {'X-DynDNS-Response' => 'host_forbidden'}, []] if forbidden_hostnames.any?
end
if params['offline'] == 'YES' if params['offline'] == 'YES'
myips = [] myips = []

View File

@@ -89,7 +89,7 @@ module Dyndnsd
# @return [Array{Array{Object}}] # @return [Array{Array{Object}}]
def self.parse_endpoints(endpoint_list) def self.parse_endpoints(endpoint_list)
endpoint_list.map { |addr_string| addr_string.split('@') } endpoint_list.map { |addr_string| addr_string.split('@') }
.map { |addr_parts| [addr_parts[0], addr_parts[1].to_i || 53] } .map { |addr_parts| [addr_parts[0], addr_parts[1]&.to_i || 53] }
.map { |addr| [:tcp, :udp].map { |type| [type] + addr } } .map { |addr| [:tcp, :udp].map { |type| [type] + addr } }
.flatten(1) .flatten(1)
end end

View File

@@ -1,5 +1,5 @@
# frozen_string_literal: true # frozen_string_literal: true
module Dyndnsd module Dyndnsd
VERSION = '3.8.0' VERSION = '3.12.0'
end end

View File

@@ -18,6 +18,10 @@ describe Dyndnsd::Daemon do
}, },
'test2' => { 'test2' => {
'password' => 'ihavenohosts' 'password' => 'ihavenohosts'
},
'test3' => {
'password' => 'superhypermegas3kurepassword1234',
'regex' => '^[a-z0-9]+-test3\.example\.org$'
} }
} }
} }
@@ -74,6 +78,22 @@ describe Dyndnsd::Daemon do
expect(last_response.body).to eq("good 2001:db8::1\ngood 2001:db8::1") expect(last_response.body).to eq("good 2001:db8::1\ngood 2001:db8::1")
end end
it 'supports regex matches for hostnames' do
authorize 'test3', 'superhypermegas3kurepassword1234'
get '/nic/update?hostname=abc123-test3.example.org&myip=1.2.3.4'
expect(last_response).to be_ok
expect(last_response.body).to eq('good 1.2.3.4')
get '/nic/update?hostname=foo-test3.example.org,bar-test3.example.org&myip=2001:db8::1'
expect(last_response).to be_ok
expect(last_response.body).to eq("good 2001:db8::1\ngood 2001:db8::1")
get '/nic/update?hostname=abc123.example.org'
expect(last_response).to be_ok
expect(last_response.body).to eq('nohost')
end
it 'rejects request if one hostname is invalid' do it 'rejects request if one hostname is invalid' do
authorize 'test', 'secret' authorize 'test', 'secret'
@@ -120,6 +140,10 @@ describe Dyndnsd::Daemon do
get '/nic/update?hostname=foo.example.org,notmyhost.example.org' get '/nic/update?hostname=foo.example.org,notmyhost.example.org'
expect(last_response).to be_ok expect(last_response).to be_ok
expect(last_response.body).to eq('nohost') expect(last_response.body).to eq('nohost')
get '/nic/update?hostname=abc123-test3.example.org'
expect(last_response).to be_ok
expect(last_response.body).to eq('nohost')
end end
it 'updates a host on IP change' do it 'updates a host on IP change' do