Uh oh!
There was an error while loading. Please reload this page.
🌟[Major]: Domeneshop API capabilities now available - #16
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>
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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Uh oh!
There was an error while loading. Please reload this page.
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>
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>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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
Uh oh!
There was an error while loading. Please reload this page.
✅ New release: PowerShell Gallery - Domeneshop 1.0.0 |
✅ New release: GitHub - Domeneshop 1.0.0 |
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)