Oakrey.Applications.ReportIssue 7.0.1

dotnet add package Oakrey.Applications.ReportIssue --version 7.0.1
                    
NuGet\Install-Package Oakrey.Applications.ReportIssue -Version 7.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Oakrey.Applications.ReportIssue" Version="7.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Oakrey.Applications.ReportIssue" Version="7.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Oakrey.Applications.ReportIssue" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Oakrey.Applications.ReportIssue --version 7.0.1
                    
#r "nuget: Oakrey.Applications.ReportIssue, 7.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Oakrey.Applications.ReportIssue@7.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Oakrey.Applications.ReportIssue&version=7.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Oakrey.Applications.ReportIssue&version=7.0.1
                    
Install as a Cake Tool

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 Compatible and additional computed target framework versions.
.NET net10.0-windows7.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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