105 lines
2.9 KiB
C#
105 lines
2.9 KiB
C#
|
|
namespace TriliumMind.Models;
|
|||
|
|
|
|||
|
|
public class JiraResponse
|
|||
|
|
{
|
|||
|
|
public string expand { get; set; }
|
|||
|
|
public int startAt { get; set; }
|
|||
|
|
public int maxResults { get; set; }
|
|||
|
|
public int total { get; set; }
|
|||
|
|
public Issue[] issues { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Issue
|
|||
|
|
{
|
|||
|
|
public string expand { get; set; }
|
|||
|
|
public string id { get; set; }
|
|||
|
|
public string self { get; set; }
|
|||
|
|
public string key { get; set; }
|
|||
|
|
public Fields fields { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Fields
|
|||
|
|
{
|
|||
|
|
public string summary { get; set; } // Title
|
|||
|
|
public Assignee assignee { get; set; }
|
|||
|
|
public Reporter reporter { get; set; }
|
|||
|
|
public string updated { get; set; }
|
|||
|
|
public Status status { get; set; }
|
|||
|
|
public Issuetype issuetype { get; set; }
|
|||
|
|
public DateTimeOffset UpdatedAt
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
// "2025-09-03T15:31:51.000+0900" → "2025-09-03T15:31:51.000+09:00"
|
|||
|
|
var fixedValue = updated.Insert(updated.Length - 2, ":");
|
|||
|
|
return DateTimeOffset.Parse(fixedValue);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public DateTime? duedate { get; set; }
|
|||
|
|
public Issue parent { get; set; }
|
|||
|
|
public string customfield_10808 { get; set; } // Epic key
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Assignee
|
|||
|
|
{
|
|||
|
|
public string self { get; set; }
|
|||
|
|
public string name { get; set; }
|
|||
|
|
public string key { get; set; }
|
|||
|
|
public string emailAddress { get; set; }
|
|||
|
|
public Avatarurls avatarUrls { get; set; }
|
|||
|
|
public string displayName { get; set; } // Korean name
|
|||
|
|
public bool active { get; set; }
|
|||
|
|
public string timeZone { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Reporter
|
|||
|
|
{
|
|||
|
|
public string self { get; set; }
|
|||
|
|
public string name { get; set; }
|
|||
|
|
public string key { get; set; }
|
|||
|
|
public string emailAddress { get; set; }
|
|||
|
|
public Avatarurls avatarUrls { get; set; }
|
|||
|
|
public string displayName { get; set; } // Korean name
|
|||
|
|
public bool active { get; set; }
|
|||
|
|
public string timeZone { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Avatarurls
|
|||
|
|
{
|
|||
|
|
public string _48x48 { get; set; }
|
|||
|
|
public string _24x24 { get; set; }
|
|||
|
|
public string _16x16 { get; set; }
|
|||
|
|
public string _32x32 { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Status
|
|||
|
|
{
|
|||
|
|
public string self { get; set; }
|
|||
|
|
public string description { get; set; }
|
|||
|
|
public string iconUrl { get; set; }
|
|||
|
|
public string name { get; set; } // Status: Open InProgress ...
|
|||
|
|
public string id { get; set; }
|
|||
|
|
public Statuscategory statusCategory { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Statuscategory
|
|||
|
|
{
|
|||
|
|
public string self { get; set; }
|
|||
|
|
public int id { get; set; }
|
|||
|
|
public string key { get; set; }
|
|||
|
|
public string colorName { get; set; }
|
|||
|
|
public string name { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class Issuetype
|
|||
|
|
{
|
|||
|
|
public string self { get; set; }
|
|||
|
|
public string id { get; set; }
|
|||
|
|
public string description { get; set; }
|
|||
|
|
public string iconUrl { get; set; }
|
|||
|
|
public string name { get; set; } // Type
|
|||
|
|
public bool subtask { get; set; }
|
|||
|
|
public int avatarId { get; set; }
|
|||
|
|
}
|
|||
|
|
|