Skip to content

@lipkau lipkau released this Oct 3, 2017 · 177 commits to master since this release

[2.0.0] - 2017-08-17

A new major version! ConfluencePS has been totally refactored to introduce new features and greatly improve efficiency.

"A new major version" means limited older functionality was intentionally broken. In addition, there are a ton of good changes, so some big picture notes first:

  • All functions changed from "Wiki" prefix to "Confluence", like Get-ConfluencePage
    • But the module accommodates for any prefix you want, e.g. Import-Module ConfluencePS -Prefix Wiki
  • Functions changed or removed:
    • Get-WikiLabelApplied [removed; functionality added to Get-ConfluencePage -Label foo]
    • Get-WikiPageLabel > Get-ConfluenceLabel
    • New-WikiLabel > Add-ConfluenceLabel
  • Get-* functions now support paging, and defining your preferred page size
  • -Limit and -Expand parameters were removed from functions
    • With paging implementation, modifying the returned object limit isn't necessary
    • And allows for richer objects to be returned by default
  • -ApiUri and -Credential parameters added to every function
    • This is useful if you have more than one Confluence instance
    • Set-ConfluenceInfo now defines ApiUri and Credential defaults for the current session
    • And you can override any single function:
    • Get-ConfluenceSpace -ApiUri 'https://wiki2.example.com' -Credential (Get-Credential)
  • All functions now output custom object types, like [ConfluencePS.Page]
    • Allows for returning more object properties...
    • ...and only displaying the most relevant in the default output
    • Also enables a much improved pipeline flow
    • This behavior removed the need for the -Expand parameter
  • Private functions are leveraged heavily to reduce repeat code
    • Invoke-Method is the most prominent example

If you like drinking from the firehose, here's everything we closed for 2.0, because we probably forgot to list something here. Otherwise, read on for summarized details.

Added

  • All Get-* functions now support paging
  • -ApiUri and -Credential parameters added to functions
    • Set-ConfluenceInfo behavior is mostly unchanged (see below)
  • Objects returned are now custom typed, like [ConfluencePS.Page]
    • Try piping ConfluencePS objects into Format-List * to see all properties

Changed

  • Function prefix defaults to "Confluence" instead of "Wiki" (Get-ConfluenceSpace)
    • If you like "Wiki", you can Import-Module ConfluencePS -Prefix Wiki
  • Add-ConfluenceLabel
    • Name used to be New-WikiLabel
    • The "Add" verb better reflects the function's behavior
  • Get-ConfluenceChildPage
    • Default behavior returns only immediate child pages. Which also means...
    • Added -Recurse to return all pages below the given page, not just immediate child objects
      • NOTE: Recurse is not available in on-prem installs right now, only Atlassian cloud instances
    • -ParentID > -PageID
  • Get-ConfluenceLabel
    • Name used to be Get-WikiPageLabel
    • Now returns [ConfluencePS.ContentLabelSet] objects
      • Which are relationships of [ConfluencePS.Label] & [ConfluencePS.Page] objects
  • Get-ConfluencePage
    • Get-ConfluencePage (with no parameters) doesn't work anymore
      • With paging supported, this would be a ton of pages
      • Get-ConfluenceSpace | Get-ConfluencePage still works, if you really need it
    • Now returns [ConfluencePS.Page] objects
    • New -Label parameter filters returned pages by applied label(s)
    • New -Space parameter accepts Space objects
  • Get-ConfluenceSpace
    • Now returns [ConfluencePS.Space] objects
    • -Key renamed to -SpaceKey ("Key" still works as an alias)
    • -Name parameter removed
  • New-ConfluencePage
    • New -Parent parameter accepts Page objects
    • New -Space parameter accepts Space objects
  • New-ConfluenceSpace
    • -Key renamed to -SpaceKey ("Key" still works as an alias)
  • Set-ConfluenceInfo
    • Now adds the URI/Credential to $PSDefaultParameterValues
      • -ApiUri & -Credential parameters now exist on every function
      • Set-ConfluenceInfo defines their defaults for the current session
      • Meaning they could still be overwritten on any single command
    • No longer automatically prompts for credentials if -Credential is absent
      • Allows for anonymous authentication to public instances
    • New -PromptCredentials parameter displays a Get-Credential dialog while connecting
    • New -PageSize parameter optionally defines default page size for the session
  • Set-ConfluencePage
    • Now returns [ConfluencePS.Page] objects
    • -CurrentVersion parameter removed (determined and incremented automatically now)
    • New -Parent parameter accepts Page objects

Removed

  • -Limit and -Expand parameters
    • Get-* function paging removes the need for fiddling with returned object limits
    • Custom object types hold relevant properties, removing the need to manually "expand" results
  • Get-WikiLabelApplied
    • Functionality replaced with Get-ConfluencePage -Label foo

Much ❤

@lipkau refactored the entire module, and is the only reason 2.0 is a reality. In short, he is amazing. Thank you!

Assets 2
You can’t perform that action at this time.