अब मेरे पास उममी क्लाएंट है, मुझे इसे पैकेज करने की जरूरत है और इसे एक Nuget पैकेज के रूप में उपलब्ध बनाने के लिए. यह एक बहुत ही सरल प्रक्रिया है लेकिन कुछ बातें पता करने के लिए हैं.
[विषय
मैंने उनकी नकल करने का फैसला किया खाल और बेहतरीन मिचवर पैकेज का उपयोग मेरे Nuget पैकेज को संस्करण के लिए करें. यह एक सरल पैकेज है जो संस्करण संख्या निर्धारित करने के लिए gvit संस्करण टैग प्रयोग करता है.
इसे प्रयोग करने के लिए मैं ने बस मेरे लिए निम्नलिखित जोड़ दिया Umami.Net.csproj फ़ाइल:
<PropertyGroup>
<MinVerTagPrefix>v</MinVerTagPrefix>
</PropertyGroup>
जिस तरह से मैं अपने संस्करण को एक साथ टैग कर सकते हैं v और पैकेज ठीक से संस्करण किया जाएगा.
git tag v0.0.8
git push origin v0.0.8
इस टैग को धक्का देंगे, तो मेरे पास एक Git क्रिया सेटअप है उस टैग के लिए इंतजार करने के लिए और Nuget पैकेज बनाने के लिए.
मेरे पास एक Githrate है जो Nuget पैकेज को बनाता है और इसे Githb पैकेज भंडार में धक्का देता है. यह एक सादा प्रक्रिया है जो प्रयोग करती है dotnet pack पैकेज को निर्माण करने का कमांड तथा तब dotnet nuget push Exget भंडार में इसे पुश करने के लिए कमांड.
name: Publish Umami.NET
on:
push:
tags:
- 'v*.*.*' # This triggers the action for any tag that matches the pattern v1.0.0, v2.1.3, etc.
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x' # Specify the .NET version you need
- name: Restore dependencies
run: dotnet restore ./Umami.Net/Umami.Net.csproj
- name: Build project
run: dotnet build --configuration Release ./Umami.Net/Umami.Net.csproj --no-restore
- name: Pack project
run: dotnet pack --configuration Release ./Umami.Net/Umami.Net.csproj --no-build --output ./nupkg
- name: Publish to NuGet
run: dotnet nuget push ./nupkg/*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.UMAMI_NUGET_API_KEY }}
env:
NUGET_API_KEY: ${{ secrets.UMAMI_NUGET_API_KEY }}
यह बहुत सरल है, मैं एक जोड़ें README.md परियोजना और एक रूट के लिए फ़ाइल icon.png परियोजना की रूट में फ़ाइल. वह README.md पैकेज और इसके विवरण के रूप में फ़ाइल प्रयोग में लिया गया है icon.png पैकेज के प्रतीक के रूप में फ़ाइल उपयोग में लिया जाएगा.
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>12</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>true</IsPackable>
<PackageId>Umami.Net</PackageId>
<Authors>Scott Galloway</Authors>
<PackageIcon>icon.png</PackageIcon>
<RepositoryUrl>https://github.com/scottgal/mostlylucidweb/tree/main/Umami.Net</RepositoryUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>web</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<Description>
Adds a simple Umami endpoint to your ASP.NET Core application.
</Description>
</PropertyGroup>
मेरे पढ़ने में.md फ़ाइल मेरे पास Gimb भंडार में लिंक है और पैकेज का वर्णन है.
नीचे दिए गए उत्पादनों को पुन: व्यवस्थित करें:
यह उममी ट्रैक एपीआई के लिए.नेट कोर ग्राहक है. यह उममी नोड ग्राहक पर आधारित है, जो मिल सकता है यहाँ.
आप देख सकते हैं कि कैसे उमा को एक डाकर पात्र के रूप में सेट किया जा सकता है यहाँ. आप इस बारे में अधिक विस्तृत पढ़ सकते हैं मेरे ब्लॉग पर बनाने के बारे में यहाँ.
इस क्लाएंट का उपयोग करने के लिए आपको निम्न एग्रेसन कॉन्फ़िगरेशन की आवश्यकता है:
{
"Analytics":{
"UmamiPath" : "https://umamilocal.mostlylucid.net",
"WebsiteId" : "32c2aa31-b1ac-44c0-b8f3-ff1f50403bee"
},
}
कहाँ UmamiPath अपने उममी उदाहरण और का पथ है WebsiteId वेबसाइट का आईडी है जिसे आप ट्रैक करना चाहते हैं.
क्लाइंट का प्रयोग करने के लिए आपको निम्नलिखित जोड़ने की जरूरत है Program.cs:
using Umami.Net;
services.SetupUmamiClient(builder.Configuration);
यह सेवा संग्रह में उममी क्लाएंट जोड़ेगा.
तो आप दो तरीकों से क्लाएंट का उपयोग कर सकते हैं:
UmamiClient अपनी क्लास में और फोन करने के लिए Track विधि: // Inject UmamiClient umamiClient
await umamiClient.Track("Search", new UmamiEventData(){{"query", encodedQuery}});
UmamiBackgroundSender पृष्ठभूमि में घटनाओं को ट्रैक करने के लिए (यह किसी को प्रयोग करता है) IHostedService पृष्ठभूमि में घटनाओं को भेजने के लिए: // Inject UmamiBackgroundSender umamiBackgroundSender
await umamiBackgroundSender.Track("Search", new UmamiEventData(){{"query", encodedQuery}});
क्लाएंट घटना को उममी एपीआई में भेज देगा और यह जमा किया जाएगा.
वह UmamiEventData कुंजी मूल्य जोड़े का शब्दकोश है जो कि घटना डाटा के रूप में उममी एपीआई में भेजा जाएगा.
इसके अतिरिक्त कम स्तर ऐसे तरीक़े हैं जिन्हें उममी एपीआई में घटनाओं को भेजने के लिए प्रयोग किया जा सकता है ।
दोनों पर UmamiClient और UmamiBackgroundSender आप निम्न विधि कॉल कर सकते हैं.
Send(UmamiPayload? payload = null, UmamiEventData? eventData = null,
string eventType = "event")
आप एक में पास नहीं है UmamiPayload वस्तु, ग्राहक आप के लिए उपयोग कर एक होगा WebsiteId ए.एस.सन से।
public UmamiPayload GetPayload(string? url = null, UmamiEventData? data = null)
{
var httpContext = httpContextAccessor.HttpContext;
var request = httpContext?.Request;
var payload = new UmamiPayload
{
Website = settings.WebsiteId,
Data = data,
Url = url ?? httpContext?.Request?.Path.Value,
IpAddress = httpContext?.Connection?.RemoteIpAddress?.ToString(),
UserAgent = request?.Headers["User-Agent"].FirstOrDefault(),
Referrer = request?.Headers["Referer"].FirstOrDefault(),
Hostname = request?.Host.Host,
};
return payload;
}
आप देख सकते हैं कि यह भरें UmamiPayload वस्तु के साथ WebsiteId Aagss.jon से, Url, IpAddress, UserAgent, Referrer और Hostname से HttpContext.
नोट: घटना क़िस्म केवल "मिनट" हो सकता है या "अनुष्ट" को प्रति उममी एपीआई में.
तो यह है कि आप अब एमुमा स्थापित कर सकते हैं. Nuget से और इसे अपने unuck में उपयोग करें. Nuc.NT कोर अनुप्रयोग में. मुझे आशा है कि आप इसे उपयोगी पाते हैं. मैं आगे की पोस्टों में जाँच जारी रखेंगे.
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.