Skip to content

Conversation

@LKaemmerling
Copy link
Collaborator

Closes #140

@LKaemmerling LKaemmerling requested a review from Copilot October 16, 2025 19:06
Copy link
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 introduces DNS zone management support to the Hetzner Cloud API client, addressing issue #140. The implementation adds comprehensive functionality for managing DNS zones, resource record sets (RRSets), and related DNS operations through the Hetzner Cloud API.

  • Adds core DNS zone management models: Zones, Zone, RRSet, and supporting classes
  • Implements full CRUD operations for zones and resource record sets
  • Provides DNS-specific operations like zonefile import/export and nameserver management

Reviewed Changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
src/HetznerAPIClient.php Adds zones() method to expose DNS zone management functionality
src/Models/Zones/Zones.php Implements main Zones collection class with CRUD operations for zone management
src/Models/Zones/Zone.php Defines individual Zone model with operations like delete, update, protection changes, and RRSet management
src/Models/Zones/RRSet.php Implements Resource Record Set model with CRUD operations and record management
src/Models/Zones/Record.php Simple data class representing a DNS record with value and comment
src/Models/Zones/ZoneMode.php Constants class defining zone modes (primary/secondary)
src/Models/Zones/ZoneRequestOpts.php Request options class for filtering zone queries
src/Models/Zones/RRSetRequestOpts.php Request options class for filtering RRSet queries
src/Models/Zones/RRSetProtection.php Protection model for resource record sets
src/Models/Zones/PrimaryNameserver.php Data class for primary nameserver configuration
src/Models/Zones/AuthoritativeNameservers.php Data class for authoritative nameserver information
tests/Unit/Models/Zones/*.json Test fixtures containing sample API responses for zones and RRSets
tests/Unit/Models/Zones/ZonesTest.php Unit tests for Zones collection operations
tests/Unit/Models/Zones/ZoneTest.php Unit tests for individual Zone operations
tests/Unit/Models/Zones/RRSetTest.php Unit tests for RRSet operations

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

LKaemmerling and others added 3 commits October 16, 2025 21:08
@LKaemmerling LKaemmerling requested a review from Copilot October 16, 2025 19:10
Copy link
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

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


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@LKaemmerling LKaemmerling merged commit c94d82f into master Oct 16, 2025
10 checks passed
@LKaemmerling LKaemmerling deleted the dns branch October 16, 2025 19:12
@ThomasLandauer
Copy link
Contributor

Is this the same functionality as https://registry.terraform.io/providers/germanbrew/hetznerdns/latest/docs ?

@LKaemmerling
Copy link
Collaborator Author

@ThomasLandauer
Copy link
Contributor

Oops, sorry for that stupid question! That other project is the Terraform provider, while this here is the PHP representation of Hetzner resources (servers etc.)...

So what this PR brings, is the ability to manage (i.e. query etc.) DNS records too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DNS Support

4 participants