Skip to content

Releases: PSModule/GitHub

v0.41.0

22 Feb 15:29
a489f06

Choose a tag to compare

🚀 [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 Active

A 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-GitHubRepository to 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 GitHubCustomProperty class in src/classes/public/Repositories/GitHubCustomProperty.ps1 with constructors accepting both REST (property_name) and GraphQL (propertyName) field names.
  • GitHubRepository class: CustomProperties property changed from [PSCustomObject] to [GitHubCustomProperty[]]. PropertyToGraphQLMap entry now maps to repositoryCustomPropertyValues(first: 100) { nodes { propertyName value } }.
  • CustomProperties removed from the GraphQL field exclusion list in Get-GitHubRepositoryByName and Get-GitHubMyRepositoryByName only — these are the private functions behind Get-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, and Get-GitHubReleaseAssetFromLatest.
  • Spelling corrections across 18 files in .github/, examples/, src/classes/, src/functions/, and tests/.

v0.40.6

15 Feb 21:07
ca9d6f7

Choose a tag to compare

🩹 [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.

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 supported

Tab-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

05 Jan 20:45
b592489

Choose a tag to compare

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

14 Oct 15:38
a11a390

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v0.40.3...v0.40.4

v0.40.3

04 Oct 16:14
34c013c

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v0.40.2...v0.40.3

v0.40.2

27 Sep 22:39
01e77fd

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v0.40.1...v0.40.2

v0.40.1

24 Sep 08:43
c851625

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v0.40.0...v0.40.1

v0.40.0

22 Sep 14:43
586dd4d

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v0.39.0...v0.40.0

v0.39.0

21 Sep 18:20
5bde93c

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v0.38.1...v0.39.0

v0.38.1

17 Sep 09:16
e66d934

Choose a tag to compare

What's Changed

Other Changes

  • 🩹 [Patch]: Prevent ArgumentCompleters from falling back to the default file path completion by @Copilot in #515
  • 🪲 [Fix]: Fixing the Secrets test for PublicKey for codespaces by Marius Storhaug (@MariusStorhaug) in #518

Full Changelog: v0.38.0...v0.38.1