CodeMade.GithubUpdateChecker
1.1.0
dotnet add package CodeMade.GithubUpdateChecker --version 1.1.0
NuGet\Install-Package CodeMade.GithubUpdateChecker -Version 1.1.0
<PackageReference Include="CodeMade.GithubUpdateChecker" Version="1.1.0" />
<PackageVersion Include="CodeMade.GithubUpdateChecker" Version="1.1.0" />
<PackageReference Include="CodeMade.GithubUpdateChecker" />
paket add CodeMade.GithubUpdateChecker --version 1.1.0
#r "nuget: CodeMade.GithubUpdateChecker, 1.1.0"
#:package CodeMade.GithubUpdateChecker@1.1.0
#addin nuget:?package=CodeMade.GithubUpdateChecker&version=1.1.0
#tool nuget:?package=CodeMade.GithubUpdateChecker&version=1.1.0
GitHub Update Checker
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
Credits
Cross platform desktop notifications are implemented using the NativeNotification library
| Product | Versions 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. |
-
net8.0
- NativeNotification (>= 1.0.3)
- Newtonsoft.Json (>= 13.0.4)
-
net8.0-windows10.0.17763
- NativeNotification (>= 1.0.3)
- Newtonsoft.Json (>= 13.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.