Skip to content

Commit 1e23292

Browse files
authored
update readme (#75)
* update readme * create tags on version changes
1 parent d8a4997 commit 1e23292

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,30 @@ jobs:
5959
}
6060
env:
6161
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
62+
63+
- name: Extract version and create tag
64+
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
65+
shell: pwsh
66+
run: |
67+
# Extract version from csproj
68+
[xml]$csproj = Get-Content src/AdysTech.CredentialManager/AdysTech.CredentialManager.csproj
69+
$version = $csproj.Project.PropertyGroup.Version | Select-Object -First 1
70+
$tagName = "v$version"
71+
72+
Write-Host "Package version: $version"
73+
Write-Host "Tag name: $tagName"
74+
75+
# Check if tag already exists
76+
git fetch --tags
77+
$tagExists = git tag -l $tagName
78+
79+
if ($tagExists) {
80+
Write-Host "Tag $tagName already exists, skipping tag creation"
81+
} else {
82+
Write-Host "Creating new tag: $tagName"
83+
git config user.name "github-actions[bot]"
84+
git config user.email "github-actions[bot]@users.noreply.github.com"
85+
git tag -a $tagName -m "Release $version"
86+
git push origin $tagName
87+
Write-Host "Tag $tagName created and pushed"
88+
}

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
[![NuGet](https://img.shields.io/nuget/v/AdysTech.CredentialManager)](https://www.nuget.org/packages/AdysTech.CredentialManager)
44
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5+
[![Build and Deploy](https://github.com/AdysTech/CredentialManager/actions/workflows/build.yml/badge.svg)](https://github.com/AdysTech/CredentialManager/actions/workflows/build.yml)
56

67
A .NET library for storing and retrieving credentials from the Windows Credential Store.
78
Wraps the native `CredWrite`, `CredRead`, `CredEnumerate`, and `CredDelete` APIs via P/Invoke,
@@ -278,3 +279,12 @@ The project requires Windows for testing (credential store access via interactiv
278279
## License
279280

280281
[MIT](LICENSE) — Copyright (c) 2016-2026 Adys Tech
282+
283+
## Historical context
284+
C# wrapper around CredWrite / CredRead functions to store and retrieve from Windows Credential Store.
285+
Windows OS comes equipped with a very secure robust [Credential Manager](https://technet.microsoft.com/en-us/library/jj554668.aspx) from Windows XP onwards, and [good set of APIs](https://msdn.microsoft.com/en-us/library/windows/desktop/aa374731(v=vs.85).aspx#credentials_management_functions) to interact with it. However .NET Framework did not provide any standard way to interact with this vault.
286+
287+
Microsoft Peer Channel blog (WCF team) has written [a blog post](https://docs.microsoft.com/en-us/archive/blogs/peerchan/application-password-security) in 2005 which provided basic structure of using the Win32 APIs for credential management in .NET.
288+
I used their code, and improved up on it to add `PromptForCredentials` function to display a dialog to get the credentials from user.
289+
290+
I left the project stale for few years, and an amazing contributor @shakeyourbunny helped me to modernize the framework and fix few security audit findings. Huge thanks!

0 commit comments

Comments
 (0)