ktsu.CredentialCache
1.2.3
Prefix Reserved
See the version list below for details.
dotnet add package ktsu.CredentialCache --version 1.2.3
NuGet\Install-Package ktsu.CredentialCache -Version 1.2.3
<PackageReference Include="ktsu.CredentialCache" Version="1.2.3" />
<PackageVersion Include="ktsu.CredentialCache" Version="1.2.3" />
<PackageReference Include="ktsu.CredentialCache" />
paket add ktsu.CredentialCache --version 1.2.3
#r "nuget: ktsu.CredentialCache, 1.2.3"
#:package ktsu.CredentialCache@1.2.3
#addin nuget:?package=ktsu.CredentialCache&version=1.2.3
#tool nuget:?package=ktsu.CredentialCache&version=1.2.3
ktsu.CredentialCache
A secure credential storage and management system for .NET applications.
Introduction
CredentialCache is a .NET library that provides a secure and convenient way to store, retrieve, and manage credentials in applications. It offers a flexible caching mechanism for various credential types while handling encryption, security, and persistence automatically.
Features
- Secure Storage: Encrypts sensitive credentials using platform-specific security features
- Memory Caching: Efficiently caches credentials in memory for quick access
- Multiple Credential Types: Supports usernames/passwords, API keys, tokens, and certificates
- Automatic Expiration: Time-based expiration for cached credentials
- Credential Rotation: Support for credential rotation and refresh workflows
- Thread Safety: Safe for concurrent access from multiple threads
- Extensible: Easily extend with custom credential types and storage providers
Installation
Package Manager Console
Install-Package ktsu.CredentialCache
.NET CLI
dotnet add package ktsu.CredentialCache
Package Reference
<PackageReference Include="ktsu.CredentialCache" Version="x.y.z" />
Usage Examples
Basic Example
using ktsu.CredentialCache;
// Create a credential cache
var cache = new CredentialCache();
// Store a credential
var credential = new UsernamePasswordCredential
{
Username = "user@example.com",
Password = "securePassword123",
Domain = "example.com"
};
cache.Store("myAppLogin", credential);
// Retrieve the credential later
if (cache.TryGet("myAppLogin", out UsernamePasswordCredential retrievedCredential))
{
Console.WriteLine($"Retrieved username: {retrievedCredential.Username}");
// Use the credential for authentication
}
Working with API Credentials
// Store an API key
var apiCredential = new ApiKeyCredential
{
Key = "api_12345abcde",
Secret = "apisecret_xyz789",
Endpoint = "https://api.example.com"
};
// Store with expiration
cache.Store("apiAccess", apiCredential, TimeSpan.FromHours(1));
// Check if credential exists and is not expired
if (cache.Contains("apiAccess"))
{
var cred = cache.Get<ApiKeyCredential>("apiAccess");
// Use the API credential
}
Advanced Usage with Persistent Storage
// Create a cache with persistent storage
var options = new CredentialCacheOptions
{
PersistToStorage = true,
StoragePath = "credentials.dat",
EncryptionLevel = EncryptionLevel.High
};
var persistentCache = new CredentialCache(options);
// Store a credential that will be saved to disk
var oauthCredential = new OAuthCredential
{
AccessToken = "access_token_123",
RefreshToken = "refresh_token_456",
ExpiresAt = DateTimeOffset.UtcNow.AddHours(1)
};
persistentCache.Store("oauth", oauthCredential);
// Later, even after application restart:
var loadedCache = new CredentialCache(options);
if (loadedCache.TryGet("oauth", out OAuthCredential oauth))
{
if (oauth.IsExpired)
{
// Refresh the token
oauth = RefreshOAuthToken(oauth);
loadedCache.Store("oauth", oauth);
}
// Use the OAuth token
}
API Reference
CredentialCache
Class
The main class for storing and retrieving credentials.
Properties
Name | Type | Description |
---|---|---|
Count |
int |
Number of credentials in the cache |
Options |
CredentialCacheOptions |
Configuration options for this cache instance |
Methods
Name | Return Type | Description |
---|---|---|
Store(string key, ICredential credential, TimeSpan? expiration = null) |
void |
Stores a credential with optional expiration |
Get<T>(string key) where T : ICredential |
T |
Gets a credential by key (throws if not found) |
TryGet<T>(string key, out T credential) where T : ICredential |
bool |
Tries to get a credential by key |
Remove(string key) |
bool |
Removes a credential from the cache |
Contains(string key) |
bool |
Checks if a credential exists and is not expired |
Clear() |
void |
Removes all credentials from the cache |
Credential Types
Type | Description |
---|---|
UsernamePasswordCredential |
Standard username and password combination |
ApiKeyCredential |
API key and optional secret |
OAuthCredential |
OAuth access and refresh tokens |
CertificateCredential |
Certificate-based authentication |
Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please ensure your code follows security best practices when dealing with sensitive credential information.
License
This project is licensed under the MIT License - see the LICENSE.md file for details.
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. net9.0 is compatible. 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
- ktsu.AppDataStorage (>= 1.7.0)
- ktsu.StrongPaths (>= 1.3.0)
- ktsu.StrongStrings (>= 1.4.0)
-
net9.0
- ktsu.AppDataStorage (>= 1.7.0)
- ktsu.StrongPaths (>= 1.3.0)
- ktsu.StrongStrings (>= 1.4.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on ktsu.CredentialCache:
Package | Downloads |
---|---|
ktsu.ImGuiCredentialPopups
ImGuiCredentialPopups |
|
ktsu.GitIntegration
Git Integration |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.2.4-pre.16 | 115 | 5/20/2025 |
1.2.4-pre.14 | 75 | 5/17/2025 |
1.2.4-pre.13 | 125 | 5/16/2025 |
1.2.4-pre.12 | 203 | 5/15/2025 |
1.2.4-pre.11 | 199 | 5/14/2025 |
1.2.4-pre.10 | 203 | 5/13/2025 |
1.2.4-pre.9 | 229 | 5/12/2025 |
1.2.4-pre.8 | 166 | 5/11/2025 |
1.2.4-pre.7 | 104 | 5/10/2025 |
1.2.4-pre.6 | 50 | 5/9/2025 |
1.2.4-pre.5 | 117 | 5/8/2025 |
1.2.4-pre.4 | 118 | 5/7/2025 |
1.2.4-pre.3 | 116 | 5/6/2025 |
1.2.4-pre.2 | 120 | 5/4/2025 |
1.2.4-pre.1 | 119 | 5/4/2025 |
1.2.3 | 323 | 5/4/2025 |
1.2.3-pre.1 | 54 | 4/26/2025 |
1.2.2 | 268 | 4/20/2025 |
1.2.2-pre.1 | 113 | 4/4/2025 |
1.2.1 | 302 | 3/30/2025 |
1.2.1-pre.3 | 77 | 3/29/2025 |
1.2.1-pre.2 | 457 | 3/25/2025 |
1.2.1-pre.1 | 72 | 2/18/2025 |
1.2.0 | 335 | 2/17/2025 |
1.1.1-pre.1 | 73 | 2/14/2025 |
1.1.0 | 145 | 2/12/2025 |
1.0.0 | 365 | 1/2/2025 |
1.0.0-pre.78 | 70 | 2/3/2025 |
1.0.0-pre.77 | 65 | 2/2/2025 |
1.0.0-pre.76 | 77 | 1/31/2025 |
1.0.0-pre.75 | 69 | 1/28/2025 |
1.0.0-pre.74 | 62 | 1/26/2025 |
1.0.0-pre.73 | 56 | 1/24/2025 |
1.0.0-pre.72 | 65 | 1/22/2025 |
1.0.0-pre.71 | 63 | 1/20/2025 |
1.0.0-pre.70 | 65 | 1/18/2025 |
1.0.0-pre.69 | 65 | 1/16/2025 |
1.0.0-pre.68 | 46 | 1/14/2025 |
1.0.0-pre.67 | 62 | 1/12/2025 |
1.0.0-pre.66 | 60 | 1/10/2025 |
1.0.0-pre.65 | 53 | 1/8/2025 |
1.0.0-pre.64 | 67 | 1/7/2025 |
1.0.0-pre.63 | 70 | 1/5/2025 |
1.0.0-pre.62 | 85 | 1/3/2025 |
1.0.0-pre.61 | 66 | 1/3/2025 |
1.0.0-pre.60 | 89 | 1/2/2025 |
1.0.0-pre.59 | 101 | 12/29/2024 |
1.0.0-alpha.58 | 97 | 12/26/2024 |
1.0.0-alpha.57 | 71 | 12/26/2024 |
1.0.0-alpha.56 | 62 | 12/26/2024 |
1.0.0-alpha.55 | 68 | 12/26/2024 |
1.0.0-alpha.54 | 60 | 12/26/2024 |
1.0.0-alpha.53 | 66 | 12/26/2024 |
1.0.0-alpha.52 | 69 | 12/26/2024 |
1.0.0-alpha.51 | 76 | 12/26/2024 |
1.0.0-alpha.50 | 81 | 12/25/2024 |
1.0.0-alpha.49 | 85 | 12/24/2024 |
1.0.0-alpha.48 | 82 | 12/23/2024 |
1.0.0-alpha.47 | 73 | 12/23/2024 |
1.0.0-alpha.46 | 66 | 12/23/2024 |
1.0.0-alpha.45 | 84 | 12/22/2024 |
1.0.0-alpha.44 | 70 | 12/22/2024 |
1.0.0-alpha.43 | 60 | 12/22/2024 |
1.0.0-alpha.42 | 70 | 12/22/2024 |
1.0.0-alpha.41 | 63 | 12/22/2024 |
1.0.0-alpha.40 | 97 | 12/19/2024 |
1.0.0-alpha.39 | 70 | 12/19/2024 |
1.0.0-alpha.38 | 85 | 12/18/2024 |
1.0.0-alpha.37 | 82 | 12/17/2024 |
1.0.0-alpha.36 | 85 | 12/16/2024 |
1.0.0-alpha.35 | 115 | 12/10/2024 |
1.0.0-alpha.34 | 88 | 12/9/2024 |
1.0.0-alpha.33 | 90 | 12/6/2024 |
1.0.0-alpha.32 | 93 | 12/5/2024 |
1.0.0-alpha.31 | 72 | 12/5/2024 |
1.0.0-alpha.30 | 123 | 12/2/2024 |
1.0.0-alpha.29 | 69 | 12/1/2024 |
1.0.0-alpha.28 | 75 | 12/1/2024 |
1.0.0-alpha.27 | 78 | 12/1/2024 |
1.0.0-alpha.26 | 76 | 11/30/2024 |
1.0.0-alpha.25 | 73 | 11/29/2024 |
1.0.0-alpha.24 | 91 | 11/28/2024 |
1.0.0-alpha.23 | 78 | 11/27/2024 |
1.0.0-alpha.22 | 83 | 11/26/2024 |
1.0.0-alpha.21 | 117 | 11/21/2024 |
1.0.0-alpha.20 | 86 | 11/20/2024 |
1.0.0-alpha.19 | 106 | 11/18/2024 |
1.0.0-alpha.18 | 81 | 11/15/2024 |
1.0.0-alpha.17 | 84 | 11/14/2024 |
1.0.0-alpha.16 | 96 | 11/13/2024 |
1.0.0-alpha.15 | 89 | 11/12/2024 |
1.0.0-alpha.14 | 102 | 11/11/2024 |
1.0.0-alpha.13 | 110 | 11/7/2024 |
1.0.0-alpha.12 | 81 | 11/6/2024 |
1.0.0-alpha.11 | 90 | 11/5/2024 |
1.0.0-alpha.10 | 85 | 11/4/2024 |
1.0.0-alpha.9 | 78 | 11/2/2024 |
1.0.0-alpha.8 | 77 | 11/1/2024 |
1.0.0-alpha.7 | 156 | 10/21/2024 |
1.0.0-alpha.6 | 110 | 10/18/2024 |
1.0.0-alpha.5 | 111 | 10/12/2024 |
1.0.0-alpha.4 | 80 | 10/12/2024 |
1.0.0-alpha.3 | 67 | 10/12/2024 |
1.0.0-alpha.2 | 69 | 10/12/2024 |
1.0.0-alpha.1 | 65 | 10/12/2024 |
## v1.2.3 (patch)
Changes since v1.2.2:
- Remove Directory.Build.props and Directory.Build.targets files; add copyright notices to CredentialCache files. ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance README with detailed project description, features, installation instructions, and usage examples. Update project SDK references in .csproj files for CredentialCache and its tests. ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.2.3-pre.1 (prerelease)
Changes since v1.2.2:
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.2.2 (patch)
Changes since v1.2.1:
- Remove Copilot instructions document ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.2.2-pre.1 (prerelease)
Incremental prerelease update.
## v1.2.1 (patch)
Changes since v1.2.0:
- Update packages ([@matt-edmondson](https://github.com/matt-edmondson))
- Add LICENSE template ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.2.1-pre.3 (prerelease)
Changes since v1.2.1-pre.2:
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.2.1-pre.2 (prerelease)
Changes since v1.2.1-pre.1:
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.2.1-pre.1 (prerelease)
Incremental prerelease update.
## v1.2.0 (minor)
Changes since v1.1.0:
- Apply new editorconfig ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.1.1-pre.1 (prerelease)
Changes since v1.1.0:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.1.0 (minor)
Changes since v1.0.0:
- Add mailmap ([@matt-edmondson](https://github.com/matt-edmondson))
- Make Create method public in ICredentialFactory<T> ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.58 (prerelease)
Changes since v1.0.0-alpha.57:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.57 (prerelease)
Changes since v1.0.0-alpha.56:
- Sync icon.png ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.56 (prerelease)
Changes since v1.0.0-alpha.55:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.55 (prerelease)
Changes since v1.0.0-alpha.54:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.54 (prerelease)
Changes since v1.0.0-alpha.53:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.53 (prerelease)
Changes since v1.0.0-alpha.52:
- Replace LICENSE file with LICENSE.md and update copyright information ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.52 (prerelease)
Changes since v1.0.0-alpha.51:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.51 (prerelease)
Changes since v1.0.0-alpha.50:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync icon.png ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.50 (prerelease)
Changes since v1.0.0-alpha.49:
- Bump the ktsu group with 2 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.49 (prerelease)
Changes since v1.0.0-alpha.48:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.48 (prerelease)
Changes since v1.0.0-alpha.47:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.47 (prerelease)
Changes since v1.0.0-alpha.46:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.46 (prerelease)
Changes since v1.0.0-alpha.45:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.45 (prerelease)
Changes since v1.0.0-alpha.44:
## v1.0.0-alpha.44 (prerelease)
Changes since v1.0.0-alpha.43:
## v1.0.0-alpha.43 (prerelease)
Changes since v1.0.0-alpha.42:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.42 (prerelease)
Changes since v1.0.0-alpha.41:
## v1.0.0-alpha.41 (prerelease)
Changes since v1.0.0-alpha.40:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.40 (prerelease)
Changes since v1.0.0-alpha.39:
- Update VERSION to 1.0.0-alpha.40 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.39 (prerelease)
Changes since v1.0.0-alpha.38:
- Update VERSION to 1.0.0-alpha.39 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.38 (prerelease)
Changes since v1.0.0-alpha.37:
- Update VERSION to 1.0.0-alpha.38 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.37 (prerelease)
Changes since v1.0.0-alpha.36:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.37 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.36 (prerelease)
Changes since v1.0.0-alpha.35:
- Update VERSION to 1.0.0-alpha.36 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 2 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.35 (prerelease)
Changes since v1.0.0-alpha.34:
- Update VERSION to 1.0.0-alpha.35 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.34 (prerelease)
Changes since v1.0.0-alpha.33:
- Update VERSION to 1.0.0-alpha.34 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.33 (prerelease)
Changes since v1.0.0-alpha.32:
- Update VERSION to 1.0.0-alpha.33 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 2 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.32 (prerelease)
Changes since v1.0.0-alpha.31:
- Update VERSION to 1.0.0-alpha.32 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.31 (prerelease)
Changes since v1.0.0-alpha.30:
- Bump MSTest.TestAdapter from 3.6.3 to 3.6.4 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump MSTest.TestFramework from 3.6.3 to 3.6.4 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.31 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.30 (prerelease)
Changes since v1.0.0-alpha.29:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Update VERSION to 1.0.0-alpha.30 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.29 (prerelease)
Changes since v1.0.0-alpha.28:
- Update ktsu.AppDataStorage and ktsu.StrongPaths package references to latest versions ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.28 (prerelease)
Changes since v1.0.0-alpha.27:
- Update ktsu.StrongPaths package reference to version 1.1.30 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.27 (prerelease)
Changes since v1.0.0-alpha.26:
- Update package references to latest versions ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.26 (prerelease)
Changes since v1.0.0-alpha.25:
- Update VERSION to 1.0.0-alpha.26 ([@matt-edmondson](https://github.com/matt-edmondson))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.25 (prerelease)
Changes since v1.0.0-alpha.24:
- Update VERSION to 1.0.0-alpha.25 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.24 (prerelease)
Changes since v1.0.0-alpha.23:
- Update VERSION to 1.0.0-alpha.24 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.23 (prerelease)
Changes since v1.0.0-alpha.22:
- Update VERSION to 1.0.0-alpha.23 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.22 (prerelease)
Changes since v1.0.0-alpha.21:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Update VERSION to 1.0.0-alpha.22 ([@matt-edmondson](https://github.com/matt-edmondson))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-alpha.21 (prerelease)
Changes since v1.0.0-alpha.20:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.21 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.20 (prerelease)
Changes since v1.0.0-alpha.19:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.20 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump Microsoft.NET.Test.Sdk in the microsoft group ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.19 (prerelease)
Changes since v1.0.0-alpha.18:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.19 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.18 (prerelease)
Changes since v1.0.0-alpha.17:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.18 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.17 (prerelease)
Changes since v1.0.0-alpha.16:
- Update VERSION to 1.0.0-alpha.17 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump MSTest.TestFramework from 3.6.2 to 3.6.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.16 (prerelease)
Changes since v1.0.0-alpha.15:
- Update VERSION to 1.0.0-alpha.16 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump MSTest.TestAdapter from 3.6.2 to 3.6.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.15 (prerelease)
Changes since v1.0.0-alpha.14:
- Update VERSION to 1.0.0-alpha.15 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.14 (prerelease)
Changes since v1.0.0-alpha.13:
- Update VERSION to 1.0.0-alpha.14 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.13 (prerelease)
Changes since v1.0.0-alpha.12:
- Update VERSION to 1.0.0-alpha.13 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.12 (prerelease)
Changes since v1.0.0-alpha.11:
- Update VERSION to 1.0.0-alpha.12 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.11 (prerelease)
Changes since v1.0.0-alpha.10:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.11 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.10 (prerelease)
Changes since v1.0.0-alpha.9:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.10 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.9 (prerelease)
Changes since v1.0.0-alpha.8:
- Bump MSTest.TestFramework from 3.6.1 to 3.6.2 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.9 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.8 (prerelease)
Changes since v1.0.0-alpha.7:
- Update VERSION to 1.0.0-alpha.8 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump MSTest.TestAdapter from 3.6.1 to 3.6.2 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.7 (prerelease)
Changes since v1.0.0-alpha.6:
- Bump ktsu.AppDataStorage from 1.1.19 to 1.1.20 in the ktsu group ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Update VERSION to 1.0.0-alpha.7 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.6 (prerelease)
Changes since v1.0.0-alpha.5:
- Update VERSION to 1.0.0-alpha.6 ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump ktsu.StrongPaths from 1.1.16 to 1.1.17 in the ktsu group ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-alpha.5 (prerelease)
Changes since v1.0.0-alpha.4:
- Renames to remove references to git ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.4 (prerelease)
Changes since v1.0.0-alpha.3:
- Add a way to register credential factories ([@matt-edmondson](https://github.com/matt-edmondson))
- Add credential factories ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.3 (prerelease)
Changes since v1.0.0-alpha.1:
- Update VERSION ([@matt-edmondson](https://github.com/matt-edmondson))
- Update VERSION to 1.0.0-alpha.3 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-alpha.1 (prerelease)
Incremental prerelease update.
## v1.0.0-pre.78 (prerelease)
Changes since v1.0.0-pre.77:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-pre.77 (prerelease)
Changes since v1.0.0-pre.76:
## v1.0.0-pre.76 (prerelease)
Changes since v1.0.0-pre.75:
## v1.0.0-pre.75 (prerelease)
Changes since v1.0.0-pre.74:
- Bump MSTest from 3.7.2 to 3.7.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-pre.74 (prerelease)
Changes since v1.0.0-pre.73:
## v1.0.0-pre.73 (prerelease)
Changes since v1.0.0-pre.72:
## v1.0.0-pre.72 (prerelease)
Changes since v1.0.0-pre.71:
- Bump MSTest from 3.7.1 to 3.7.2 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-pre.71 (prerelease)
Changes since v1.0.0-pre.70:
- Bump coverlet.collector from 6.0.3 to 6.0.4 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-pre.70 (prerelease)
Changes since v1.0.0-pre.69:
## v1.0.0-pre.69 (prerelease)
Changes since v1.0.0-pre.68:
## v1.0.0-pre.68 (prerelease)
Changes since v1.0.0-pre.67:
- Bump MSTest from 3.7.0 to 3.7.1 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-pre.67 (prerelease)
Changes since v1.0.0-pre.66:
## v1.0.0-pre.66 (prerelease)
Changes since v1.0.0-pre.65:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-pre.65 (prerelease)
Changes since v1.0.0-pre.64:
## v1.0.0-pre.64 (prerelease)
Changes since v1.0.0-pre.63:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-pre.63 (prerelease)
Changes since v1.0.0-pre.62:
## v1.0.0-pre.62 (prerelease)
Changes since v1.0.0-pre.61:
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.0-pre.61 (prerelease)
Changes since v1.0.0-pre.60:
- Add automation scripts for metadata and version management ([@matt-edmondson](https://github.com/matt-edmondson))
- Add mailmap ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0-pre.60 (prerelease)
Changes since v1.0.0-pre.59:
- Bump ktsu.StrongStrings from 1.2.25 to 1.2.26 in the ktsu group ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump coverlet.collector from 6.0.2 to 6.0.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump the ktsu group with 3 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.0-pre.59 (prerelease)
Incremental prerelease update.