CodeMade.GithubUpdateChecker 1.1.0

dotnet add package CodeMade.GithubUpdateChecker --version 1.1.0
                    
NuGet\Install-Package CodeMade.GithubUpdateChecker -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CodeMade.GithubUpdateChecker" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CodeMade.GithubUpdateChecker" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="CodeMade.GithubUpdateChecker" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CodeMade.GithubUpdateChecker --version 1.1.0
                    
#r "nuget: CodeMade.GithubUpdateChecker, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CodeMade.GithubUpdateChecker@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CodeMade.GithubUpdateChecker&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=CodeMade.GithubUpdateChecker&version=1.1.0
                    
Install as a Cake Tool

GitHub Update Checker

NuGet License

A .NET library that checks for release updates on GitHub repositories and displays native desktop notifications to users.

Requires .NET 8 or later.

Features

  • ✅ Cross-platform support (Windows 10+, macOS, Linux)
  • ✅ Native desktop notifications
  • ✅ Configurable notification frequency
  • ✅ Customizable version tag formats
  • ✅ Minimal dependencies

Installation

Install via NuGet Package Manager:

dotnet add package CodeMade.GitHubUpdateChecker

Or via Package Manager Console:

Install-Package CodeMade.GitHubUpdateChecker

Quick Start

var currentVersion = Assembly.GetExecutingAssembly().GetName().Version;
var checker = VersionChecker.Create("myusername", "myrepo", currentVersion, "My App Name");
Task.Run(() => checker.NotifyIfNewVersion());

Configuration

Custom Notification Frequency

var checker = VersionChecker.Create(
  "myusername", 
  "myrepo", 
  currentVersion, 
  "My App Name");
checker.NotificationFrequency = TimeSpan.FromHours(12); // Notify every 12 hours
Task.Run(() => checker.NotifyIfNewVersion());

Version Tag Prefix

If your releases use tags like v1.0.0:

var checker = VersionChecker.Create(
    "myusername", 
    "myrepo", 
    currentVersion, 
    "My App Name",
    versionPrefix: "v"
);

Custom Version Formatter

If your version tags have a custom format:

var checker = VersionChecker.Create(
    "myusername", 
    "myrepo", 
    currentVersion, 
    "My App Name",
    versionPrefix: null,
    versionFormatter: version => $"Release-{version.Major}.{version.Minor}"
);

Custom Storage

If you need to customize where the last notification time is stored, you can implement ITempData and create the VersionChecker manually:

using CodeMade.GithubUpdateChecker;

public class MyCustomStorage : ITempData
{
    public T? Read<T>(string key)
    {
        // Your custom read implementation
        // e.g., read from database, app settings, etc.
    }

    public void Write<T>(string key, T value)
    {
        // Your custom write implementation
    }
}

// Create VersionChecker with custom storage
var versionGetter = new GitHubVersionGetter("myusername", "myrepo");
var notifier = new NotificationSender("My App Name");
var customStorage = new MyCustomStorage();

var checker = new VersionChecker(
    versionGetter,
    currentVersion,
    notifier,
    customStorage,
    "My App Name"
);

await checker.NotifyIfNewVersion();

Default Behavior

  • Notification frequency: Once per day
  • Storage: Temporary file in system temp directory
  • Version format: Standard semantic versioning (e.g., 1.0.0)
  • Tag prefix: None

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License

Credits

Cross platform desktop notifications are implemented using the NativeNotification library

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net8.0-windows10.0.17763 is compatible.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 296 11/13/2025
0.1.12 288 11/13/2025 0.1.12 is deprecated.
0.1.11 712 12/11/2023
0.1.10 212 12/11/2023
0.1.9 232 12/8/2023
0.1.8 241 11/27/2023
0.1.7 253 11/27/2023
0.1.1 257 11/26/2023