Files
runner/src/Sdk/DTWebApi/WebApi/Issue.cs
Yang Cao 1e12b8909a Count actions resolve failures as infra failures (#851)
During job run we may fail to resolve actions download info, and this
stack is fully controlled by GitHub actions so it should be counted as
infrastructure failure instead of user failure.
2020-12-11 11:07:43 -05:00

100 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace GitHub.DistributedTask.WebApi
{
[DataContract]
public class Issue
{
public Issue()
{
}
private Issue(Issue issueToBeCloned)
{
this.Type = issueToBeCloned.Type;
this.Category = issueToBeCloned.Category;
this.Message = issueToBeCloned.Message;
this.IsInfrastructureIssue = issueToBeCloned.IsInfrastructureIssue;
if (issueToBeCloned.m_data != null)
{
foreach (var item in issueToBeCloned.m_data)
{
this.Data.Add(item);
}
}
}
[DataMember(Order = 1)]
public IssueType Type
{
get;
set;
}
[DataMember(Order = 2)]
public String Category
{
get;
set;
}
[DataMember(Order = 3)]
public String Message
{
get;
set;
}
[DataMember(Order = 4)]
public bool? IsInfrastructureIssue
{
get;
set;
}
public IDictionary<String, String> Data
{
get
{
if (m_data == null)
{
m_data = new Dictionary<String, String>(StringComparer.OrdinalIgnoreCase);
}
return m_data;
}
}
public Issue Clone()
{
return new Issue(this);
}
[OnDeserialized]
private void OnDeserialized(StreamingContext context)
{
SerializationHelper.Copy(ref m_serializedData, ref m_data, StringComparer.OrdinalIgnoreCase, true);
}
[OnSerializing]
private void OnSerializing(StreamingContext context)
{
SerializationHelper.Copy(ref m_data, ref m_serializedData, StringComparer.OrdinalIgnoreCase);
}
[OnSerialized]
private void OnSerialized(StreamingContext context)
{
m_serializedData = null;
}
[DataMember(Name = "Data", EmitDefaultValue = false, Order = 4)]
private IDictionary<String, String> m_serializedData;
private IDictionary<String, String> m_data;
}
}