Releases: PSModule/Confluence
Release list
0.1.0
🚀 [Feature]: Manage Atlassian Confluence Cloud from PowerShell (#17)
Confluence is now a working PowerShell module: connect to an Atlassian Confluence Cloud site once and manage pages, spaces, blog posts, folders, comments, labels, content properties, attachments, and restrictions as first-class PowerShell commands. This first version ports the generalized Confluence REST v2 client into the PSModule source layout and wires it to the Process-PSModule build.
New: 41 Confluence commands
Grouped by resource area:
- Auth —
Connect-Confluence,Disconnect-Confluence,Get-ConfluenceContext - Config —
Get-ConfluenceConfig,Set-ConfluenceConfig - API —
Invoke-ConfluenceRestMethod(the single generic REST entry point every command wraps) - Spaces —
Get-ConfluenceSpace,Get-ConfluenceSpacePermission,Get-ConfluenceSpaceProperty, plus space administration:New-ConfluenceSpace(create),Update-ConfluenceSpace(partial update),Set-ConfluenceSpace(declarative create-or-replace),Remove-ConfluenceSpace(permanent, asynchronous delete) - Site / Pages / BlogPosts / Folders / Comments / Labels / ContentProperties / Attachments / Restrictions / Users — read/write commands per area; page edits use
Update-ConfluencePage(renamed fromSet-ConfluencePage, since it performs a partial update and theSetverb is reserved for declarative create-or-replace as inSet-ConfluenceSpace)
Each command documents its required OAuth granular scope in its help, and errors surface Atlassian's X-Failure-Category (for example FAILURE_CLIENT_SCOPE_CHECK) so permission/scope failures are easy to spot. Every command's help links to its documentation page (https://psmodule.io/Confluence/Functions/<Area>/<Command>/) followed by the relevant Atlassian API reference.
New: reusable connections via Context
Credentials and module configuration persist through the Context module, declared via #Requires so the build records it as a manifest dependency. Connect once — the token is stored as a SecureString. Store multiple sites or accounts as named contexts and target any of them with -Context.
$token = Read-Host -AsSecureString
Connect-Confluence -Site 'msxorg' -Username 'you@example.com' -Token $token -SpaceKey 'DOCS'
$space = Get-ConfluenceSpace -Key 'DOCS'
New-ConfluencePage -SpaceId $space.id -Title 'Release notes' -Body '<p>Hello</p>'How it is built
- One function per file under
src/functions/{public,private}, grouped by resource area; module state insrc/variables/private. - No
header.ps1and no sourcemanifest.psd1— the build generates the manifest, derives the module tags from the repository topics, and reads the#Requires(PowerShell 7.0 and Context) from the source. - Comment-based help follows the GitHub module style: indented sections, fenced examples, and a documentation-page
.LINKfirst. - Examples (
Connecting,Pages) and a credential-free surface test, plus a skipped integration scaffold that readsCONFLUENCE_*environment secrets. Tests require Pester 6.x.
Tests and secrets
No tenant-specific data is included — examples use generic placeholders. The integration tests are skipped unless connection details are provided through the repository's Actions secret and variables (CONFLUENCE_SITE, CONFLUENCE_USERNAME, CONFLUENCE_API_TOKEN, CONFLUENCE_SPACE_KEY), which this PR wires into the Process-PSModule workflow through TestData. Each public function also carries a #SkipTest:FunctionTest marker so the framework's source-code test suite passes while per-function tests are deferred.
Technical details
- Merged
main: kept the implemented-module README over the placeholder (#15), adopted the Pester 6.x requirement (#16), and picked up the Process-PSModule workflow bump to v5.5.7 (#14). - Validated locally: 0 syntax parse errors, 0 PSScriptAnalyzer findings (repo linter and framework build rules), every public command's first
.LINKresolves to its docs page, and the module assembles and imports with all 41 public functions. - Change type is minor (new functionality on a pre-1.0.0 module). Repository topics set to supply the manifest tags;
major/minor/patch/NoReleaselabels created for the release automation. - No linked issue — this work was driven directly; a tracking issue can be added for traceability. Opened as a draft for review.
v0.0.6
What's Changed
Other Changes
- 🪲 [Fix]: Fix linter settings and docs by Marius Storhaug (@MariusStorhaug) in #6
Full Changelog: v0.0.5...v0.0.6
v0.0.5
What's Changed
Other Changes
- 🩹 [Patch]: Bump Process-PSModule to v5 by Marius Storhaug (@MariusStorhaug) in #5
Full Changelog: v0.0.4...v0.0.5
v0.0.4
What's Changed
Other Changes
- Bump actions/checkout from 4 to 5 by Dependabot (@dependabot)[bot] in #4
Full Changelog: v0.0.3...v0.0.4
v0.0.3
What's Changed
Other Changes
- Bump PSModule/Process-PSModule from 3 to 4 by Dependabot (@dependabot) in #3
New Contributors
- Dependabot (@dependabot) made their first contribution in #3
Full Changelog: v0.0.2...v0.0.3
v0.0.2
What's Changed
Other Changes
- 🩹 [Patch]: Add linter and git configuration + license year by Marius Storhaug (@MariusStorhaug) in #2
Full Changelog: v0.0.1...v0.0.2
v0.0.1
What's Changed
Other Changes
- init by Marius Storhaug (@MariusStorhaug) in #1
New Contributors
- Marius Storhaug (@MariusStorhaug) made their first contribution in #1
Full Changelog: https://github.com/PSModule/Confluence/commits/v0.0.1