Skip to content

chore: promote develop to main - #125

Merged
mikemadeja merged 6 commits into
mainfrom
develop
Sep 28, 2026
Merged

mikemadeja merged 6 commits into
mainfrom
develop

Conversation

@mikemadeja

Copy link
Copy Markdown
Owner

Summary

Test plan

  • Both source PRs passed CI (Pester integration suite + PSScriptAnalyzer) before merging to develop.

🤖 Generated with Claude Code

mikemadeja and others added 6 commits September 27, 2026 12:12
…API areas

Adds Get/New/Update/Remove-PiHoleClient and Get-PiHoleClientSuggestion,
covering Pi-hole's client management API (GET/POST/PUT + batch-delete,
plus unconfigured-client suggestions). Single-item DELETE is
intentionally skipped in favor of the batch endpoint, same precedent
as Remove-PiHoleList/Remove-PiHoleDomain.

Adds Get-PiHoleNetworkGateway/Route/Interface/Device and
Remove-PiHoleNetworkDevice, covering the full Network Information API.
Unlike Clients/Domains/Lists there's no batch-delete alternative for
devices, so Remove-PiHoleNetworkDevice implements the single-item
DELETE directly. Interface/route/gateway responses vary significantly
by type and aren't fully enumerable from the spec, so they're returned
via the existing generic PascalCase-conversion helper (already used by
Get-PiHoleConfig) rather than a hand-picked set of fields - confirmed
against the real server that this also correctly surfaces at least one
live field not documented in the OpenAPI spec (interface stats.bits).

Adds Client Management as its own README/EXAMPLES category; Network
Information folds into "Configuration & Diagnostics" like the other
read-only diagnostic areas (FTLInformation, Padd, Teleporter, History).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…area

Extends Get-PiHoleConfig with -Element (request one subset of the
config tree, e.g. "dns/upstreams") and -Detailed. Adds Set-PiHoleConfig
(PATCH /config), Add/Remove-PiHoleConfigArrayItem (PUT/DELETE
/config/{element}/{value}, for array-type settings like dns/hosts and
dns/cnameRecords), and Get-PiHoleConfigProperty (the list of settings
that can never be changed via the API).

All three write functions require the app password's "app_sudo" flag
to be enabled in Pi-hole (Settings > All Settings) - Pi-hole blocks
config changes from app passwords by default, and there's no way to
enable it via the API itself (avoiding that would defeat the point).
Verified against a real server with app_sudo both disabled and
enabled: a real config value can be changed and reverted, an
array item can be added and removed, and a genuinely read-only
property (misc.readOnly) is correctly rejected.

Adds ConvertTo-PiHoleFriendlyErrorMessage (Private/Misc.ps1), used by
the three write functions' error handling: Pi-hole's own error
responses carry a clearer message/hint than the generic HTTP exception
text, and for the app_sudo case specifically, a concrete pointer to
where to enable it - previously the module surfaced only "403
(Forbidden)" or "400 (Bad Request)" with no explanation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
feat: add Client Management and Network Information, completing both API areas
…agement

# Conflicts:
#	README.md
#	docs/EXAMPLES.md
Resolves the README.md/docs/EXAMPLES.md conflicts from merging develop
(which now includes PR #122's Client Management and Network
Information) by regenerating both from the merged source instead of
hand-resolving generated-file diffs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
feat: add Config write/property functions, completing the Config API area
@mikemadeja
mikemadeja merged commit 39a52b8 into main Sep 28, 2026
5 checks passed
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.

1 participant