🌟[Major]: Domeneshop API capabilities now available#16
Merged
Conversation
Bumps [PSModule/Process-PSModule/.github/workflows/workflow.yml](https://github.com/psmodule/process-psmodule) from 5.4.6 to 5.5.7. - [Release notes](https://github.com/psmodule/process-psmodule/releases) - [Commits](PSModule/Process-PSModule@205d193...ce64918) --- updated-dependencies: - dependency-name: PSModule/Process-PSModule/.github/workflows/workflow.yml dependency-version: 5.5.7 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
The GUID pins module identity (precise pinning), a stricter control than the lock-to-major risk appetite. Keep only the version range.
Store Domeneshop API credentials with Context and add a first authenticated domains command with a shared request helper. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Load function scripts in test runtime and cover credential storage, default context behavior, domain query construction, and basic auth request execution. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add public cmdlets for domains by ID, DNS CRUD, forwards CRUD, DDNS update, and invoices list/get. Reuse Context-based auth for all requests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Cover URI/method construction for domains, DNS, forwards, invoices, and DDNS commands using mocked API invocations. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
# Conflicts: # .github/workflows/Process-PSModule.yml
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Marius Storhaug (MariusStorhaug)
July 25, 2026 19:54
View session
There was a problem hiding this comment.
Pull request overview
This pull request consolidates a pre-1.0 release candidate that adds authenticated Domeneshop API functionality (Context-based credentials + domain/DNS/forward/DDNS/invoice operations) and aligns CI/testing/release tooling with the Process-PSModule v6.1.4 + Pester 6.x expectations.
Changes:
- Adds Context-backed authentication flow plus private HTTP transport helpers for Domeneshop API requests.
- Introduces public commands and command-group docs for Domains, DNS, Forwards, DDNS, and Invoices.
- Reworks and expands Pester coverage (per-command tests + Pester 6.x requirement) and updates the Process-PSModule workflow pin.
Reviewed changes
Copilot reviewed 44 out of 44 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/Process-PSModule.yml | Bumps reusable workflow pin to Process-PSModule v6.1.4 SHA. |
| README.md | Replaces template README content with a module landing/status section. |
| src/functions/private/Invoke-DomeneshopApiRequest.ps1 | Adds authenticated REST transport helper using Basic auth from resolved context. |
| src/functions/private/Get-DomeneshopApiBaseUri.ps1 | Validates and normalizes the API base URI from context. |
| src/functions/private/Auth/Get-DomeneshopConfig.ps1 | Adds config retrieval with a default fallback config object. |
| src/functions/private/Auth/Resolve-DomeneshopContext.ps1 | Adds context validation for credentials and base URI presence. |
| src/functions/private/Auth/Set-DomeneshopDefaultContext.ps1 | Persists default context selection in the Context vault. |
| src/functions/public/Get-PSModuleTest.ps1 | Refines the smoke-test command help/validation and output behavior. |
| src/functions/public/Auth/Auth.md | Adds Auth command-group documentation page. |
| src/functions/public/Auth/Connect-DomeneshopAccount.ps1 | Adds credential storage command with optional default selection and PassThru. |
| src/functions/public/Auth/Get-DomeneshopContext.ps1 | Adds retrieval/listing of stored contexts from the Context vault. |
| src/functions/public/Domains/Domains.md | Adds Domains command-group documentation page. |
| src/functions/public/Domains/Get-DomeneshopDomain.ps1 | Adds domain listing and domain-by-ID retrieval with query escaping. |
| src/functions/public/Dns/Dns.md | Adds DNS command-group documentation page. |
| src/functions/public/Dns/Add-DomeneshopDnsRecord.ps1 | Adds DNS record create (POST) command with ShouldProcess. |
| src/functions/public/Dns/Get-DomeneshopDnsRecord.ps1 | Adds DNS record list/query and record-by-ID retrieval. |
| src/functions/public/Dns/Remove-DomeneshopDnsRecord.ps1 | Adds DNS record delete command with ShouldProcess/ConfirmImpact. |
| src/functions/public/Dns/Set-DomeneshopDnsRecord.ps1 | Adds DNS record replace (PUT) command with ShouldProcess. |
| src/functions/public/Forwards/Forwards.md | Adds Forwards command-group documentation page. |
| src/functions/public/Forwards/Add-DomeneshopForward.ps1 | Adds HTTP forward create (POST) command with ShouldProcess. |
| src/functions/public/Forwards/Get-DomeneshopForward.ps1 | Adds forward listing and forward-by-host retrieval with host escaping. |
| src/functions/public/Forwards/Remove-DomeneshopForward.ps1 | Adds forward delete command with ShouldProcess/ConfirmImpact. |
| src/functions/public/Forwards/Set-DomeneshopForward.ps1 | Adds forward replace (PUT) command with ShouldProcess and host escaping. |
| src/functions/public/Ddns/Ddns.md | Adds Dynamic DNS command-group documentation page. |
| src/functions/public/Ddns/Update-DomeneshopDdns.ps1 | Adds DDNS update command building escaped query parameters and honoring WhatIf. |
| src/functions/public/Invoices/Invoices.md | Adds Invoices command-group documentation page. |
| src/functions/public/Invoices/Get-DomeneshopInvoice.ps1 | Adds invoice list + invoice-by-ID retrieval. |
| tests/Domeneshop.TestSetup.ps1 | Adds shared test setup that dot-sources functions and provides a test context. |
| tests/Domeneshop.Private.Tests.ps1 | Adds tests for private helpers (context validation/base URI/transport auth). |
| tests/Connect-DomeneshopAccount.Tests.ps1 | Adds Connect-DomeneshopAccount behavior tests (storage, defaulting, WhatIf, validation). |
| tests/Get-DomeneshopContext.Tests.ps1 | Adds Get-DomeneshopContext tests (default, missing default error, listing behavior). |
| tests/Get-DomeneshopDomain.Tests.ps1 | Adds Get-DomeneshopDomain tests (escaping, by-ID path, validation). |
| tests/Get-DomeneshopDnsRecord.Tests.ps1 | Adds Get-DomeneshopDnsRecord tests (query escaping, by-ID path). |
| tests/Add-DomeneshopDnsRecord.Tests.ps1 | Adds Add-DomeneshopDnsRecord tests (POST + WhatIf). |
| tests/Set-DomeneshopDnsRecord.Tests.ps1 | Adds Set-DomeneshopDnsRecord tests (PUT + WhatIf). |
| tests/Remove-DomeneshopDnsRecord.Tests.ps1 | Adds Remove-DomeneshopDnsRecord tests (DELETE + WhatIf). |
| tests/Get-DomeneshopForward.Tests.ps1 | Adds Get-DomeneshopForward tests (list, escaped host). |
| tests/Add-DomeneshopForward.Tests.ps1 | Adds Add-DomeneshopForward tests (POST + WhatIf). |
| tests/Set-DomeneshopForward.Tests.ps1 | Adds Set-DomeneshopForward tests (PUT + WhatIf). |
| tests/Remove-DomeneshopForward.Tests.ps1 | Adds Remove-DomeneshopForward tests (DELETE + WhatIf). |
| tests/Update-DomeneshopDdns.Tests.ps1 | Adds Update-DomeneshopDdns tests (query escaping + WhatIf). |
| tests/Get-DomeneshopInvoice.Tests.ps1 | Adds Get-DomeneshopInvoice tests (list and by-ID path). |
| tests/PSModuleTest.Tests.ps1 | Removes the earlier single-file scaffold test. |
| tests/Get-PSModuleTest.Tests.ps1 | Adds a Pester 6.x-required smoke test that dot-sources functions before invocation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Marius Storhaug (MariusStorhaug)
July 25, 2026 22:29
View session
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marius Storhaug (MariusStorhaug)
added a commit
to MSXOrg/docs
that referenced
this pull request
Jul 25, 2026
PowerShell module authors now have one unambiguous canonical form for generated online help links, preventing `.LINK` URLs from alternating between equivalent-looking routes. ## Changed: Generated function help links use trailing slashes Every public function now uses its generated online reference URL as the first `.LINK` entry. Both ungrouped and grouped URL examples explicitly end in `/`; private-helper guidance is unchanged. ## Technical Details - Updated only `src/docs/Coding-Standards/PowerShell/Functions.md`. - Aligns the shared standard with the canonical generated help routes adopted in PSModule/Domeneshop commit `41f39ca521652c022aaa2ca940adf45f81067a2e`. - Documentation index verification, link validation, and a clean Zensical build are complete. <details> <summary>Related issues</summary> - PSModule/Domeneshop#16 </details> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marius Storhaug (MariusStorhaug)
marked this pull request as ready for review
July 25, 2026 23:18
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marius Storhaug (MariusStorhaug)
added a commit
to MSXOrg/docs
that referenced
this pull request
Jul 25, 2026
PR description guidance now requires a consistent ending section that matches the standard currently used in PSModule/Domeneshop. Contributors now get explicit, copy-pasteable structure for the separator line plus both foldable blocks with exact summary text. ## Changed: PR ending structure is now explicitly required The PR format standard now requires all PR descriptions to end with a horizontal separator and two `<details>` blocks, in a fixed order and with exact summary text. --- <details> <summary>Technical details</summary> - Updated `Ways-of-Working/PR-Format` to require the exact end-of-description structure. - Replaced prior "Technical Details" heading guidance with required foldable block guidance. - Updated the example snippet to use `Technical details` and `Relevant issues (or links)` exactly. </details> <details> <summary>Relevant issues (or links)</summary> - PSModule/Domeneshop#16 </details> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
# Conflicts: # tests/Auth.Tests.ps1 # tests/Ddns.Tests.ps1 # tests/Domains.Tests.ps1 # tests/Invoices.Tests.ps1 # tests/TestLayout.Tests.ps1
Marius Storhaug (MariusStorhaug)
temporarily deployed
to
github-pages
July 26, 2026 00:34 — with
GitHub Actions
Inactive
|
✅ New release: PowerShell Gallery - Domeneshop 1.0.0 |
|
✅ New release: GitHub - Domeneshop 1.0.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Domeneshop users gain authenticated access to the module's domain, DNS, forwarding, DDNS, and invoice capabilities through a consolidated pre-1.0 release candidate.
New: Domeneshop API capabilities
The module adds Context-based credential handling and commands for querying domains, managing DNS records and forwards, updating DDNS, and retrieving invoices. Command safety, validation, focused tests, and command-group documentation are included in the release candidate.
New: Guided credential setup
Running
Connect-DomeneshopAccountwithout-Secretor its-Keyalias opens the Domeneshop API settings page and securely prompts for the secret. If a browser is unavailable, the command warns and continues to the secure prompt. Explicit string and SecureString inputs remain supported, and-WhatIfdoes not open the browser, prompt, or change stored contexts.Changed: Release tooling and documentation
The release candidate adopts Process-PSModule v6.1.13, enforces Pester 6.x across every test file, consolidates public command tests into root-level group suites, migrates the generated documentation site to Zensical, replaces README placeholders with the standard module landing page, and links each public command's help to its canonical generated documentation.
Technical details
fb1bdb8fefd243292f779d2a856a38db6fe6daf4..github/mkdocs.ymlto.github/zensical.toml, satisfying v6.1.13's Zensical-only documentation pipeline.tests/<Group>.Tests.ps1suites (Auth,Ddns,Dns,Domains,Forwards, andInvoices), while ungrouped and cross-cutting suites remain separate at the root. Deterministic layout coverage verifies every public command has a matchingDescribeblock in its expected suite.https://domene.shop/admin?view=apilaunch,Read-Host -AsSecureString,Keyalias, side-effect-free-WhatIfbehavior, and a warning-only browser fallback that preserves secure prompting.https://psmodule.io/Domeneshop/Functions/<FunctionName>/for ungrouped commands andhttps://psmodule.io/Domeneshop/Functions/<Group>/<FunctionName>/for grouped commands. Deterministic tests require the exact trailing-slash route and reject missing, incorrect, or secondary-first links.PowerShellVersion = 7.6andCompatiblePSEditions = Core; legacy Windows PowerShell compatibility branches are intentionally excluded.srcandtests, andgit diff --checkpasses.9834688(run30180761797), including Build-Site and all module-local suites across Linux, macOS, and Windows.Relevant issues (or links)