Releases: PSModule/GitHub
v0.41.0
🚀 [Feature]: Get-GitHubRepository now returns custom properties inline (#555)
Get-GitHubRepository now includes custom properties directly on the returned object — no separate API call needed. GraphQL queries that encounter unavailable fields now return partial results with warnings instead of failing, and commands that target non-existent resources return nothing instead of throwing errors. Various spelling corrections across source files, documentation, and tests are also included.
New: Custom properties on Get-GitHubRepository results
Get-GitHubRepository now returns custom properties inline when retrieving a repository by name. Previously, retrieving custom properties required a separate call to Get-GitHubRepositoryCustomProperty.
$repo = Get-GitHubRepository -Owner 'PSModule' -Name 'GitHub'
$repo.CustomProperties | Format-Table
# Name Value
# ---- -----
# Type Module
# Status ActiveA new strongly-typed GitHubCustomProperty class provides Name and Value properties with consistent casing regardless of whether the data comes from the REST or GraphQL API.
Note: Custom properties are populated when using
Get-GitHubRepositoryto fetch a specific repository. Other commands that return repository objects (e.g., listing repositories) may not include custom properties depending on the underlying API response.
Get-GitHubRepositoryCustomProperty remains available if you only need custom properties without the full repository object.
Fixed: Queries no longer fail when some fields are unavailable
GraphQL queries that encounter fields unavailable for some repositories (such as custom properties on repos where permissions are limited) now return the available data and emit warnings for the errors. Previously, any GraphQL error — even with valid data — caused a terminating error.
Fixed: Commands no longer throw when a resource doesn't exist
Commands that query a specific repository, enterprise, or release by name now return nothing instead of throwing an error when the resource doesn't exist. This makes it safe to use these commands in conditional logic without wrapping them in try/catch.
Technical Details
- New
GitHubCustomPropertyclass insrc/classes/public/Repositories/GitHubCustomProperty.ps1with constructors accepting both REST (property_name) and GraphQL (propertyName) field names. GitHubRepositoryclass:CustomPropertiesproperty changed from[PSCustomObject]to[GitHubCustomProperty[]].PropertyToGraphQLMapentry now maps torepositoryCustomPropertyValues(first: 100) { nodes { propertyName value } }.CustomPropertiesremoved from the GraphQL field exclusion list inGet-GitHubRepositoryByNameandGet-GitHubMyRepositoryByNameonly — these are the private functions behindGet-GitHubRepository.Invoke-GitHubGraphQLQuery: Error handling split into partial-success (data + errors → warnings) and full-failure (errors only → terminating error) branches.- Null guards added to
Get-GitHubRepositoryByName,Get-GitHubMyRepositoryByName,Get-GitHubEnterpriseByName,Get-GitHubReleaseAssetByTag, andGet-GitHubReleaseAssetFromLatest. - Spelling corrections across 18 files in
.github/,examples/,src/classes/,src/functions/, andtests/.
v0.40.6
🩹 [Patch]: Remove status function for Australia region (migrated to new reporting type) (#548)
Removes the obsolete Australia region from GitHub Status functions and centralizes stamp definitions into a single $script:GitHub.Stamps property. A new Get-GitHubStamp function provides a public API for listing and retrieving available stamps, and all status functions now use it as their single source of truth.
- Fixes #545
Removed Australia region
The Australia status page (https://au.githubstatus.com) has been migrated to a new reporting type and is no longer available through the GitHub Status API. All status functions have been updated to remove Australia from the available stamps.
Centralized stamp definitions
Stamp definitions have been moved from a standalone $script:StatusBaseURL hashtable into the $script:GitHub.Stamps property, making them part of the main module configuration object. This provides a single source of truth for all stamp-related logic across functions, completers, and tests.
New Get-GitHubStamp function
A new public function Get-GitHubStamp exposes the available stamps:
# List all available stamps
Get-GitHubStamp
# Get a specific stamp by name
Get-GitHubStamp -Name 'Europe'Parameter changes
The -Stamp parameter has been renamed to -Name across all status functions for consistency. The original -Stamp name remains available as an alias for backward compatibility:
# Both of these work
Get-GitHubStatus -Name 'Europe'
Get-GitHubStatus -Stamp 'Europe' # Alias, still supportedTab-completion
Status functions now support tab-completion for the -Name parameter via a registered argument completer that reads from Get-GitHubStamp, so completion options stay in sync with the defined stamps automatically.
v0.40.5
What's Changed
Other Changes
- Display "N/A" for tokens without expiration metadata by @Copilot in #539
Full Changelog: v0.40.4...v0.40.5
v0.40.4
What's Changed
Other Changes
- 🩹 [Patch]: Add Linter settings + fix documentation structure by Marius Storhaug (@MariusStorhaug) in #535
Full Changelog: v0.40.3...v0.40.4
v0.40.3
What's Changed
Other Changes
- 🩹 [Patch]: Bump Process-PSModule to v5 by Marius Storhaug (@MariusStorhaug) in #533
Full Changelog: v0.40.2...v0.40.3
v0.40.2
What's Changed
Other Changes
- 🩹 [Patch]: Performance improvement by saving the GitHub App info in GitHubAppContext by Marius Storhaug (@MariusStorhaug) in #531
Full Changelog: v0.40.1...v0.40.2
v0.40.1
What's Changed
Other Changes
- 🩹 [Patch]: Update
Connect-GitHubAppto support installation ID parameter by Marius Storhaug (@MariusStorhaug) in #525
Full Changelog: v0.40.0...v0.40.1
v0.40.0
What's Changed
Other Changes
- 🚀 [Breaking pre-release]: Refactor GitHubPermission and improve initialization and comparison logic by Marius Storhaug (@MariusStorhaug) in #524
Full Changelog: v0.39.0...v0.40.0
v0.39.0
What's Changed
Other Changes
- 🚀 [Breaking pre-release]: Remove
AppIDfromGitHubAppby Marius Storhaug (@MariusStorhaug) in #523
Full Changelog: v0.38.1...v0.39.0
v0.38.1
What's Changed
Other Changes
- 🩹 [Patch]: Prevent ArgumentCompleters from falling back to the default file path completion by @Copilot in #515
- 🪲 [Fix]: Fixing the
Secretstest forPublicKeyforcodespacesby Marius Storhaug (@MariusStorhaug) in #518
Full Changelog: v0.38.0...v0.38.1