This page covers the public configuration surface for DevOp.Jira.Client.
JiraClientOptions contains the core runtime settings.
| Option | Purpose |
|---|---|
BaseUrl |
Jira Cloud site URL, for example https://your-domain.atlassian.net. |
Email |
Jira account email used for Basic authentication. |
ApiToken |
Jira API token for the account. |
MaxPageSize |
Maximum page size used by paged requests. Default is 300. |
TeamFieldKey |
Optional Jira custom field key used to populate Issue.Team. |
CustomFieldMappings |
Stable application names mapped to Jira custom field keys. |
using DevOp.Jira.Client;
var options = new JiraClientOptions
{
BaseUrl = new Uri("https://your-domain.atlassian.net"),
Email = "[email protected]",
ApiToken = "your-api-token"
};
using var client = new JiraClient(options);
using DevOp.Jira.Client.Extensions;
services.AddJiraClient(options =>
{
options.BaseUrl = new Uri("https://your-domain.atlassian.net");
options.Email = "[email protected]";
options.ApiToken = "your-api-token";
});
Configuration binding is supported for application settings.
services.AddJiraClient(configuration, sectionName: "Jira");
Example configuration shape:
{
"Jira": {
"BaseUrl": "https://your-domain.atlassian.net",
"Email": "[email protected]",
"ApiToken": "your-api-token",
"MaxPageSize": 300,
"TeamFieldKey": "customfield_67890",
"CustomFieldMappings": {
"Customer": "customfield_12345"
}
}
}
Do not commit real Jira URLs, emails, or API tokens. Use user secrets, environment variables, CI/CD secrets, or a dedicated secret store.
For local development with .NET user secrets:
dotnet user-secrets set "Jira:BaseUrl" "https://your-domain.atlassian.net"
dotnet user-secrets set "Jira:Email" "[email protected]"
dotnet user-secrets set "Jira:ApiToken" "your-api-token"
MaxPageSize controls the largest page size the client will request from Jira for paged APIs. The default is 300.
Issue search uses Jira Cloud's nextPageToken paging model. Query materialization methods such as ToListAsync() handle paging for normal usage.
Custom fields should be configured once and then referenced by stable application names.
services.AddJiraClient(options =>
{
options.CustomFieldMappings["Customer"] = "customfield_12345";
});
var customerIssues = await client.Issues.Query()
.ForCustomField("Customer", "ACME")
.ToListAsync();