Oakrey.Applications.ReportIssue
7.0.0
See the version list below for details.
dotnet add package Oakrey.Applications.ReportIssue --version 7.0.0
NuGet\Install-Package Oakrey.Applications.ReportIssue -Version 7.0.0
<PackageReference Include="Oakrey.Applications.ReportIssue" Version="7.0.0" />
<PackageVersion Include="Oakrey.Applications.ReportIssue" Version="7.0.0" />
<PackageReference Include="Oakrey.Applications.ReportIssue" />
paket add Oakrey.Applications.ReportIssue --version 7.0.0
#r "nuget: Oakrey.Applications.ReportIssue, 7.0.0"
#:package Oakrey.Applications.ReportIssue@7.0.0
#addin nuget:?package=Oakrey.Applications.ReportIssue&version=7.0.0
#tool nuget:?package=Oakrey.Applications.ReportIssue&version=7.0.0
Oakrey.Applications.ReportIssue
A .NET 10 WPF library for submitting in-application issue reports to Azure DevOps by using Microsoft Entra ID and the Azure DevOps REST API 7.1.
Features
- Custom WPF issue dialog with optional application-log attachment.
- Interactive Microsoft Entra authentication without storing a PAT in the desktop application.
- Silent token reuse through the MSAL in-memory token cache.
- Headless issue submission for applications that provide their own UI.
- Configurable request timeout and maximum log attachment size.
- Structured Oakrey logging without logging access tokens or report contents.
Requirements
- .NET 10 for Windows and WPF.
- An Azure DevOps organization and project.
- A Microsoft Entra public-client application registration with delegated Azure DevOps permissions sufficient to create work items and attachments.
- The application registration must allow public-client flows and use the desktop redirect URI.
Registration
Register the service and configure the Azure DevOps destination during application startup:
services.AddReportIssue(options =>
{
options.OrganizationUri = new Uri("https://dev.azure.com/your-organization");
options.Project = "your-project";
options.ClientId = "your-entra-application-client-id";
options.TenantId = "your-tenant-id";
options.WorkItemType = "Bug";
options.IncludeLogByDefault = true;
});
IApplicationInfo must also be registered. Its application name, version, and current log-file path are used to enrich the report.
Show the built-in dialog
ReportIssueResult result = await reportIssueService.ReportIssueAsync(cancellationToken);
if (result.Submitted)
{
// result.WorkItemId and result.WorkItemUrl identify the created item.
}
Submit from a custom UI
ReportIssueRequest request = new(
"Export fails for a large file",
"Open a large file and select Export.",
IncludeLog: true);
ReportIssueResult result = await reportIssueService.SubmitIssueAsync(request, cancellationToken);
ReportIssueResult distinguishes a successful submission, user cancellation, a complete failure, and a successful work-item creation with a warning when the optional log could not be attached.
Authentication
The default EntraReportIssueAccessTokenProvider first attempts silent token acquisition and falls back to interactive MSAL authentication. Applications with an existing identity layer can replace IReportIssueAccessTokenProvider in dependency injection.
No client secret or personal access token should be distributed with a desktop application.
Version 8 migration
Version 8 replaces the nonfunctional void ReportIssue() API with:
ReportIssueAsync(CancellationToken)for the built-in dialog.SubmitIssueAsync(ReportIssueRequest, CancellationToken)for custom interfaces and automated workflows.
License
MIT. Copyright (c) Oakrey 2016-present.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
-
net10.0-windows7.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Identity.Client (>= 4.81.0)
- Oakrey.Applications.Abstractions (>= 7.0.0)
- Oakrey.Log.Abstractions (>= 3.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Oakrey.Applications.ReportIssue:
| Package | Downloads |
|---|---|
|
Oakrey.Applications.Base
A foundational .NET library for building modular WPF applications. Provides application lifecycle management, MVVM ViewModel resolution, structured logging, telemetry, and sequential or parallel service preloading with full unhandled-exception coverage. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 7.0.1 | 124 | 8/6/2026 |
| 7.0.0 | 117 | 7/20/2026 |
| 6.0.2 | 114 | 7/8/2026 |
| 6.0.1 | 112 | 7/3/2026 |
| 6.0.0 | 130 | 5/22/2026 |
| 2.0.4 | 121 | 5/22/2026 |
| 2.0.3 | 115 | 5/15/2026 |
| 2.0.2 | 137 | 3/13/2026 |
| 2.0.1 | 124 | 2/11/2026 |
| 2.0.0 | 449 | 11/18/2025 |
| 1.1.2 | 193 | 10/10/2025 |
| 1.1.1 | 233 | 9/29/2025 |
| 1.1.0 | 226 | 9/23/2025 |
| 1.0.0 | 318 | 4/17/2025 |