mirror of https://github.com/2dust/v2rayN
Merge pull request #2530 from InterestingDarkness/master
Add Check for Pre-Release Updatespull/2556/head
commit
7a48617fea
|
@ -1364,7 +1364,7 @@ namespace v2rayN.Forms
|
||||||
menuExit_Click(null, null);
|
menuExit_Click(null, null);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
(new UpdateHandle()).CheckUpdateGuiN(config, _updateUI);
|
(new UpdateHandle()).CheckUpdateGuiN(config, _updateUI, config.checkPreReleaseUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tsbCheckUpdateCore_Click(object sender, EventArgs e)
|
private void tsbCheckUpdateCore_Click(object sender, EventArgs e)
|
||||||
|
@ -1412,7 +1412,7 @@ namespace v2rayN.Forms
|
||||||
AppendText(false, ResUI.MsgUpdateV2rayCoreSuccessfully);
|
AppendText(false, ResUI.MsgUpdateV2rayCoreSuccessfully);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
(new UpdateHandle()).CheckUpdateCore(type, config, _updateUI);
|
(new UpdateHandle()).CheckUpdateCore(type, config, _updateUI, config.checkPreReleaseUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tsbCheckUpdateGeo_Click(object sender, EventArgs e)
|
private void tsbCheckUpdateGeo_Click(object sender, EventArgs e)
|
||||||
|
|
|
@ -75,6 +75,7 @@
|
||||||
this.label17 = new System.Windows.Forms.Label();
|
this.label17 = new System.Windows.Forms.Label();
|
||||||
this.txtautoUpdateSubInterval = new System.Windows.Forms.TextBox();
|
this.txtautoUpdateSubInterval = new System.Windows.Forms.TextBox();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.chkEnableCheckPreReleaseUpdate = new System.Windows.Forms.CheckBox();
|
||||||
this.chkEnableSecurityProtocolTls13 = new System.Windows.Forms.CheckBox();
|
this.chkEnableSecurityProtocolTls13 = new System.Windows.Forms.CheckBox();
|
||||||
this.chkEnableAutoAdjustMainLvColWidth = new System.Windows.Forms.CheckBox();
|
this.chkEnableAutoAdjustMainLvColWidth = new System.Windows.Forms.CheckBox();
|
||||||
this.btnSetLoopback = new System.Windows.Forms.Button();
|
this.btnSetLoopback = new System.Windows.Forms.Button();
|
||||||
|
@ -407,6 +408,7 @@
|
||||||
this.tabPage7.Controls.Add(this.label17);
|
this.tabPage7.Controls.Add(this.label17);
|
||||||
this.tabPage7.Controls.Add(this.txtautoUpdateSubInterval);
|
this.tabPage7.Controls.Add(this.txtautoUpdateSubInterval);
|
||||||
this.tabPage7.Controls.Add(this.label3);
|
this.tabPage7.Controls.Add(this.label3);
|
||||||
|
this.tabPage7.Controls.Add(this.chkEnableCheckPreReleaseUpdate);
|
||||||
this.tabPage7.Controls.Add(this.chkEnableSecurityProtocolTls13);
|
this.tabPage7.Controls.Add(this.chkEnableSecurityProtocolTls13);
|
||||||
this.tabPage7.Controls.Add(this.chkEnableAutoAdjustMainLvColWidth);
|
this.tabPage7.Controls.Add(this.chkEnableAutoAdjustMainLvColWidth);
|
||||||
this.tabPage7.Controls.Add(this.btnSetLoopback);
|
this.tabPage7.Controls.Add(this.btnSetLoopback);
|
||||||
|
@ -445,6 +447,12 @@
|
||||||
resources.ApplyResources(this.label3, "label3");
|
resources.ApplyResources(this.label3, "label3");
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
//
|
//
|
||||||
|
// chkEnableCheckPreReleaseUpdate
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkEnableCheckPreReleaseUpdate, "chkEnableCheckPreReleaseUpdate");
|
||||||
|
this.chkEnableCheckPreReleaseUpdate.Name = "chkEnableCheckPreReleaseUpdate";
|
||||||
|
this.chkEnableCheckPreReleaseUpdate.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// chkEnableSecurityProtocolTls13
|
// chkEnableSecurityProtocolTls13
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.chkEnableSecurityProtocolTls13, "chkEnableSecurityProtocolTls13");
|
resources.ApplyResources(this.chkEnableSecurityProtocolTls13, "chkEnableSecurityProtocolTls13");
|
||||||
|
@ -769,5 +777,6 @@
|
||||||
private System.Windows.Forms.NumericUpDown numStatisticsFreshRate;
|
private System.Windows.Forms.NumericUpDown numStatisticsFreshRate;
|
||||||
private System.Windows.Forms.ComboBox cmbdomainStrategy4Freedom;
|
private System.Windows.Forms.ComboBox cmbdomainStrategy4Freedom;
|
||||||
private System.Windows.Forms.Label label19;
|
private System.Windows.Forms.Label label19;
|
||||||
|
private System.Windows.Forms.CheckBox chkEnableCheckPreReleaseUpdate;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -98,6 +98,7 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString();
|
txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString();
|
||||||
txtautoUpdateSubInterval.Text = config.autoUpdateSubInterval.ToString();
|
txtautoUpdateSubInterval.Text = config.autoUpdateSubInterval.ToString();
|
||||||
|
chkEnableCheckPreReleaseUpdate.Checked = config.checkPreReleaseUpdate;
|
||||||
txttrayMenuServersLimit.Text = config.trayMenuServersLimit.ToString();
|
txttrayMenuServersLimit.Text = config.trayMenuServersLimit.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,6 +299,7 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text);
|
config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text);
|
||||||
config.autoUpdateSubInterval = Utils.ToInt(txtautoUpdateSubInterval.Text);
|
config.autoUpdateSubInterval = Utils.ToInt(txtautoUpdateSubInterval.Text);
|
||||||
|
config.checkPreReleaseUpdate = chkEnableCheckPreReleaseUpdate.Checked;
|
||||||
config.trayMenuServersLimit = Utils.ToInt(txttrayMenuServersLimit.Text);
|
config.trayMenuServersLimit = Utils.ToInt(txttrayMenuServersLimit.Text);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -388,4 +388,7 @@
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>参数设置</value>
|
<value>参数设置</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkEnableCheckPreReleaseUpdate.Text" xml:space="preserve">
|
||||||
|
<value>检查Pre-Release更新</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -72,7 +72,7 @@ namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
coreType = ECoreType.v2rayN,
|
coreType = ECoreType.v2rayN,
|
||||||
coreUrl = Global.NUrl,
|
coreUrl = Global.NUrl,
|
||||||
coreLatestUrl = Global.NUrl + "/latest",
|
coreReleaseApiUrl = Global.NUrl.Replace(@"https://github.com", @"https://api.github.com/repos"),
|
||||||
coreDownloadUrl32 = Global.NUrl + "/download/{0}/v2rayN.zip",
|
coreDownloadUrl32 = Global.NUrl + "/download/{0}/v2rayN.zip",
|
||||||
coreDownloadUrl64 = Global.NUrl + "/download/{0}/v2rayN.zip",
|
coreDownloadUrl64 = Global.NUrl + "/download/{0}/v2rayN.zip",
|
||||||
});
|
});
|
||||||
|
@ -83,7 +83,7 @@ namespace v2rayN.Handler
|
||||||
coreExes = new List<string> { "wv2ray", "v2ray" },
|
coreExes = new List<string> { "wv2ray", "v2ray" },
|
||||||
arguments = "",
|
arguments = "",
|
||||||
coreUrl = Global.v2flyCoreUrl,
|
coreUrl = Global.v2flyCoreUrl,
|
||||||
coreLatestUrl = Global.v2flyCoreUrl + "/latest",
|
coreReleaseApiUrl = Global.v2flyCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"),
|
||||||
coreDownloadUrl32 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
coreDownloadUrl32 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
||||||
coreDownloadUrl64 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
coreDownloadUrl64 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
||||||
match = "V2Ray",
|
match = "V2Ray",
|
||||||
|
@ -96,7 +96,7 @@ namespace v2rayN.Handler
|
||||||
coreExes = new List<string> { "v2ray" },
|
coreExes = new List<string> { "v2ray" },
|
||||||
arguments = "run",
|
arguments = "run",
|
||||||
coreUrl = Global.SagerNetCoreUrl,
|
coreUrl = Global.SagerNetCoreUrl,
|
||||||
coreLatestUrl = Global.SagerNetCoreUrl + "/latest",
|
coreReleaseApiUrl = Global.SagerNetCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"),
|
||||||
coreDownloadUrl32 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
coreDownloadUrl32 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
||||||
coreDownloadUrl64 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
coreDownloadUrl64 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip",
|
||||||
match = "V2Ray",
|
match = "V2Ray",
|
||||||
|
@ -109,7 +109,7 @@ namespace v2rayN.Handler
|
||||||
coreExes = new List<string> { "xray" },
|
coreExes = new List<string> { "xray" },
|
||||||
arguments = "",
|
arguments = "",
|
||||||
coreUrl = Global.xrayCoreUrl,
|
coreUrl = Global.xrayCoreUrl,
|
||||||
coreLatestUrl = Global.xrayCoreUrl + "/latest",
|
coreReleaseApiUrl = Global.xrayCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"),
|
||||||
coreDownloadUrl32 = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip",
|
coreDownloadUrl32 = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip",
|
||||||
coreDownloadUrl64 = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip",
|
coreDownloadUrl64 = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip",
|
||||||
match = "Xray",
|
match = "Xray",
|
||||||
|
@ -122,7 +122,7 @@ namespace v2rayN.Handler
|
||||||
coreExes = new List<string> { "clash-windows-amd64-v3", "clash-windows-amd64", "clash-windows-386", "clash" },
|
coreExes = new List<string> { "clash-windows-amd64-v3", "clash-windows-amd64", "clash-windows-386", "clash" },
|
||||||
arguments = "-f config.json",
|
arguments = "-f config.json",
|
||||||
coreUrl = Global.clashCoreUrl,
|
coreUrl = Global.clashCoreUrl,
|
||||||
coreLatestUrl = Global.clashCoreUrl + "/latest",
|
coreReleaseApiUrl = Global.clashCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"),
|
||||||
coreDownloadUrl32 = Global.clashCoreUrl + "/download/{0}/clash-windows-386-{0}.zip",
|
coreDownloadUrl32 = Global.clashCoreUrl + "/download/{0}/clash-windows-386-{0}.zip",
|
||||||
coreDownloadUrl64 = Global.clashCoreUrl + "/download/{0}/clash-windows-amd64-{0}.zip",
|
coreDownloadUrl64 = Global.clashCoreUrl + "/download/{0}/clash-windows-amd64-{0}.zip",
|
||||||
match = "v",
|
match = "v",
|
||||||
|
@ -135,7 +135,7 @@ namespace v2rayN.Handler
|
||||||
coreExes = new List<string> { "Clash.Meta-windows-amd64-compatible", "Clash.Meta-windows-amd64", "Clash.Meta-windows-386", "Clash.Meta", "clash" },
|
coreExes = new List<string> { "Clash.Meta-windows-amd64-compatible", "Clash.Meta-windows-amd64", "Clash.Meta-windows-386", "Clash.Meta", "clash" },
|
||||||
arguments = "-f config.json",
|
arguments = "-f config.json",
|
||||||
coreUrl = Global.clashMetaCoreUrl,
|
coreUrl = Global.clashMetaCoreUrl,
|
||||||
coreLatestUrl = Global.clashMetaCoreUrl + "/latest",
|
coreReleaseApiUrl = Global.clashMetaCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"),
|
||||||
coreDownloadUrl32 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-386-{0}.zip",
|
coreDownloadUrl32 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-386-{0}.zip",
|
||||||
coreDownloadUrl64 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-amd64-compatible-{0}.zip",
|
coreDownloadUrl64 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-amd64-compatible-{0}.zip",
|
||||||
match = "v",
|
match = "v",
|
||||||
|
@ -148,7 +148,7 @@ namespace v2rayN.Handler
|
||||||
coreExes = new List<string> { "hysteria-tun-windows-6.0-amd64", "hysteria-tun-windows-6.0-386", "hysteria" },
|
coreExes = new List<string> { "hysteria-tun-windows-6.0-amd64", "hysteria-tun-windows-6.0-386", "hysteria" },
|
||||||
arguments = "",
|
arguments = "",
|
||||||
coreUrl = Global.hysteriaCoreUrl,
|
coreUrl = Global.hysteriaCoreUrl,
|
||||||
coreLatestUrl = Global.hysteriaCoreUrl + "/latest",
|
coreReleaseApiUrl = Global.hysteriaCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"),
|
||||||
coreDownloadUrl32 = Global.hysteriaCoreUrl + "/download/{0}/hysteria-tun-windows-6.0-386.exe",
|
coreDownloadUrl32 = Global.hysteriaCoreUrl + "/download/{0}/hysteria-tun-windows-6.0-386.exe",
|
||||||
coreDownloadUrl64 = Global.hysteriaCoreUrl + "/download/{0}/hysteria-tun-windows-6.0-amd64.exe",
|
coreDownloadUrl64 = Global.hysteriaCoreUrl + "/download/{0}/hysteria-tun-windows-6.0-amd64.exe",
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
using v2rayN.Resx;
|
using v2rayN.Resx;
|
||||||
|
@ -31,7 +34,7 @@ namespace v2rayN.Handler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CheckUpdateGuiN(Config config, Action<bool, string> update)
|
public void CheckUpdateGuiN(Config config, Action<bool, string> update, bool preRelease)
|
||||||
{
|
{
|
||||||
_config = config;
|
_config = config;
|
||||||
_updateFunc = update;
|
_updateFunc = update;
|
||||||
|
@ -97,11 +100,11 @@ namespace v2rayN.Handler
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
_updateFunc(false, string.Format(ResUI.MsgStartUpdating, "v2rayN"));
|
_updateFunc(false, string.Format(ResUI.MsgStartUpdating, "v2rayN"));
|
||||||
CheckUpdateAsync(ECoreType.v2rayN);
|
CheckUpdateAsync(ECoreType.v2rayN, preRelease);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void CheckUpdateCore(ECoreType type, Config config, Action<bool, string> update)
|
public void CheckUpdateCore(ECoreType type, Config config, Action<bool, string> update, bool preRelease)
|
||||||
{
|
{
|
||||||
_config = config;
|
_config = config;
|
||||||
_updateFunc = update;
|
_updateFunc = update;
|
||||||
|
@ -152,7 +155,7 @@ namespace v2rayN.Handler
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
_updateFunc(false, string.Format(ResUI.MsgStartUpdating, "Core"));
|
_updateFunc(false, string.Format(ResUI.MsgStartUpdating, "Core"));
|
||||||
CheckUpdateAsync(type);
|
CheckUpdateAsync(type, preRelease);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -305,17 +308,17 @@ namespace v2rayN.Handler
|
||||||
|
|
||||||
#region private
|
#region private
|
||||||
|
|
||||||
private async void CheckUpdateAsync(ECoreType type)
|
private async void CheckUpdateAsync(ECoreType type, bool preRelease)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var coreInfo = LazyConfig.Instance.GetCoreInfo(type);
|
var coreInfo = LazyConfig.Instance.GetCoreInfo(type);
|
||||||
string url = coreInfo.coreLatestUrl;
|
string url = coreInfo.coreReleaseApiUrl;
|
||||||
|
|
||||||
var result = await (new DownloadHandle()).UrlRedirectAsync(url, true);
|
var result = await (new DownloadHandle()).DownloadStringAsync(url, true, "");
|
||||||
if (!Utils.IsNullOrEmpty(result))
|
if (!Utils.IsNullOrEmpty(result))
|
||||||
{
|
{
|
||||||
responseHandler(type, result);
|
responseHandler(type, result, preRelease);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -391,11 +394,20 @@ namespace v2rayN.Handler
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void responseHandler(ECoreType type, string redirectUrl)
|
private void responseHandler(ECoreType type, string gitHubReleaseApi, bool preRelease)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string version = redirectUrl.Substring(redirectUrl.LastIndexOf("/", StringComparison.Ordinal) + 1);
|
var gitHubReleases = JsonConvert.DeserializeObject<List<GitHubRelease>>(gitHubReleaseApi);
|
||||||
|
string version;
|
||||||
|
if (preRelease)
|
||||||
|
{
|
||||||
|
version = gitHubReleases!.First().TagName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
version = gitHubReleases!.First(r => r.Prerelease == false).TagName;
|
||||||
|
}
|
||||||
var coreInfo = LazyConfig.Instance.GetCoreInfo(type);
|
var coreInfo = LazyConfig.Instance.GetCoreInfo(type);
|
||||||
|
|
||||||
string curVersion;
|
string curVersion;
|
||||||
|
|
|
@ -137,6 +137,8 @@ namespace v2rayN.Mode
|
||||||
public int autoUpdateInterval { get; set; } = 0;
|
public int autoUpdateInterval { get; set; } = 0;
|
||||||
|
|
||||||
public int autoUpdateSubInterval { get; set; } = 0;
|
public int autoUpdateSubInterval { get; set; } = 0;
|
||||||
|
|
||||||
|
public bool checkPreReleaseUpdate { get; set; } = false;
|
||||||
|
|
||||||
public bool enableSecurityProtocolTls13
|
public bool enableSecurityProtocolTls13
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace v2rayN.Mode
|
||||||
|
|
||||||
public string coreUrl { get; set; }
|
public string coreUrl { get; set; }
|
||||||
|
|
||||||
public string coreLatestUrl { get; set; }
|
public string coreReleaseApiUrl { get; set; }
|
||||||
|
|
||||||
public string coreDownloadUrl32 { get; set; }
|
public string coreDownloadUrl32 { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace v2rayN.Mode;
|
||||||
|
|
||||||
|
public class Asset
|
||||||
|
{
|
||||||
|
[JsonProperty("url")] public string Url { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("id")] public int Id { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("node_id")] public string NodeId { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("name")] public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("label")] public object Label { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("content_type")] public string ContentType { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("state")] public string State { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("size")] public int Size { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("download_count")] public int DownloadCount { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("created_at")] public DateTime CreatedAt { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("updated_at")] public DateTime UpdatedAt { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("browser_download_url")] public string BrowserDownloadUrl { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GitHubRelease
|
||||||
|
{
|
||||||
|
[JsonProperty("url")] public string Url { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("assets_url")] public string AssetsUrl { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("upload_url")] public string UploadUrl { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("html_url")] public string HtmlUrl { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("id")] public int Id { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("node_id")] public string NodeId { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("tag_name")] public string TagName { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("target_commitish")] public string TargetCommitish { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("name")] public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("draft")] public bool Draft { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("prerelease")] public bool Prerelease { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("created_at")] public DateTime CreatedAt { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("published_at")] public DateTime PublishedAt { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("assets")] public List<Asset> Assets { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("tarball_url")] public string TarballUrl { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("zipball_url")] public string ZipballUrl { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("body")] public string Body { get; set; }
|
||||||
|
}
|
|
@ -2,6 +2,7 @@
|
||||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
<LangVersion>preview</LangVersion>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{0A9785E6-D256-4B73-9757-4EF59955FD1E}</ProjectGuid>
|
<ProjectGuid>{0A9785E6-D256-4B73-9757-4EF59955FD1E}</ProjectGuid>
|
||||||
|
@ -209,6 +210,7 @@
|
||||||
<Compile Include="Mode\ESysProxyType.cs" />
|
<Compile Include="Mode\ESysProxyType.cs" />
|
||||||
<Compile Include="Mode\EMove.cs" />
|
<Compile Include="Mode\EMove.cs" />
|
||||||
<Compile Include="Mode\EServerColName.cs" />
|
<Compile Include="Mode\EServerColName.cs" />
|
||||||
|
<Compile Include="Mode\GitHubRelease.cs" />
|
||||||
<Compile Include="Mode\RoutingItem.cs" />
|
<Compile Include="Mode\RoutingItem.cs" />
|
||||||
<Compile Include="Mode\RulesItem.cs" />
|
<Compile Include="Mode\RulesItem.cs" />
|
||||||
<Compile Include="Mode\ServerStatistics.cs" />
|
<Compile Include="Mode\ServerStatistics.cs" />
|
||||||
|
|
Loading…
Reference in New Issue