Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71c4c413e0 | ||
|
|
24887e1c46 | ||
|
|
290cf03c4b | ||
|
|
eff1bff375 | ||
|
|
d8a47b7cd3 | ||
|
|
95ce2792d9 | ||
|
|
9f95e918f7 |
+1
-1
@@ -1 +1 @@
|
||||
1.0.84
|
||||
1.0.88
|
||||
|
||||
@@ -25,6 +25,7 @@ namespace JiraTimeBot.Configuration
|
||||
public string JiraQuery { get; set; }
|
||||
public string TimeControlTask { get; set; }
|
||||
public int RandomWorkMinutes { get; set; }
|
||||
public string AlternativeEmail { get; set; }
|
||||
|
||||
public static Settings LoadAndCheck(Action settingsSource, Action<string> errorMessageReporter)
|
||||
{
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("JiraTimeBot")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("JiraTimeBot")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("f3b89316-c38c-4ce6-9d88-0b1373cfba1a")]
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.84")]
|
||||
[assembly: AssemblyFileVersion("1.0.84")]
|
||||
[assembly: AssemblyInformationalVersion("1.0.84")]
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("JiraTimeBot")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("JiraTimeBot")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("f3b89316-c38c-4ce6-9d88-0b1373cfba1a")]
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.88")]
|
||||
[assembly: AssemblyFileVersion("1.0.88")]
|
||||
[assembly: AssemblyInformationalVersion("1.0.88")]
|
||||
|
||||
@@ -7,6 +7,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
|
||||
namespace JiraTimeBot.RepositoryProviders
|
||||
@@ -77,7 +78,14 @@ namespace JiraTimeBot.RepositoryProviders
|
||||
var reflog = repo.Refs.Log(repo.Refs.Head);
|
||||
foreach (var reflogItem in reflog)
|
||||
{
|
||||
if (reflogItem.Committer.When.Date != date.Value.Date || reflogItem.Committer.Email != settings.MercurialAuthorEmail)
|
||||
|
||||
var dateMatch = date.Value.Date == reflogItem.Committer.When.Date;
|
||||
var committerEmail = reflogItem.Committer.Email;
|
||||
|
||||
var userMatch = committerEmail.Equals(settings.MercurialAuthorEmail, StringComparison.CurrentCultureIgnoreCase)
|
||||
|| committerEmail.Equals(settings.AlternativeEmail, StringComparison.CurrentCultureIgnoreCase);
|
||||
|
||||
if (!dateMatch || !userMatch)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -95,18 +103,31 @@ namespace JiraTimeBot.RepositoryProviders
|
||||
{
|
||||
return new List<TaskTimeItem>();
|
||||
}
|
||||
if (commit.Author.When.DateTime.Date != date.Value.Date || commit.Author.Email != settings.MercurialAuthorEmail)
|
||||
|
||||
var userMatch = commit.Author.Email.Equals(settings.MercurialAuthorEmail, StringComparison.CurrentCultureIgnoreCase)
|
||||
|| commit.Author.Email.Equals(settings.AlternativeEmail, StringComparison.CurrentCultureIgnoreCase);
|
||||
|
||||
|
||||
if (commit.Author.When.DateTime.Date != date.Value.Date
|
||||
|| !userMatch)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var branch = ListBranchesContaininingCommit(repo, commit.Sha).Select(f => f.FriendlyName)
|
||||
.Where(f => f.Contains("-") && !f.Contains("/")).Distinct().FirstOrDefault();
|
||||
var regex = new Regex("[a-zA-Z0-9]{1,4}-[0-9]{1,6}");
|
||||
var branch = ListBranchesContaininingCommit(repo, commit.Sha)
|
||||
.Select(f => f.FriendlyName)
|
||||
.FirstOrDefault(f => regex.IsMatch(f));
|
||||
|
||||
|
||||
//.Where(f => f.Contains("-") && !f.Contains("/")).Distinct().FirstOrDefault();
|
||||
if (branch == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
branch = regex.Match(branch).Value;
|
||||
|
||||
var commitMessage = commit.MessageShort;
|
||||
commitMessage = _technicalInfoSkipper.StripBranchPrefix(branch, commitMessage);
|
||||
|
||||
|
||||
+28
-6
@@ -57,6 +57,8 @@
|
||||
this.lblJiraUrl = new System.Windows.Forms.Label();
|
||||
this.txtJiraUrl = new System.Windows.Forms.TextBox();
|
||||
this.chkRemoveManuallyAddedWorklogs = new System.Windows.Forms.CheckBox();
|
||||
this.tbAlternateEmail = new System.Windows.Forms.TextBox();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label5
|
||||
@@ -146,7 +148,7 @@
|
||||
// chkAddComments
|
||||
//
|
||||
this.chkAddComments.AutoSize = true;
|
||||
this.chkAddComments.Location = new System.Drawing.Point(65, 366);
|
||||
this.chkAddComments.Location = new System.Drawing.Point(65, 400);
|
||||
this.chkAddComments.Name = "chkAddComments";
|
||||
this.chkAddComments.Size = new System.Drawing.Size(133, 17);
|
||||
this.chkAddComments.TabIndex = 31;
|
||||
@@ -155,7 +157,7 @@
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.Location = new System.Drawing.Point(86, 432);
|
||||
this.btnSave.Location = new System.Drawing.Point(86, 466);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSave.TabIndex = 32;
|
||||
@@ -221,7 +223,7 @@
|
||||
// chkAutostart
|
||||
//
|
||||
this.chkAutostart.AutoSize = true;
|
||||
this.chkAutostart.Location = new System.Drawing.Point(65, 343);
|
||||
this.chkAutostart.Location = new System.Drawing.Point(65, 377);
|
||||
this.chkAutostart.Name = "chkAutostart";
|
||||
this.chkAutostart.Size = new System.Drawing.Size(96, 17);
|
||||
this.chkAutostart.TabIndex = 40;
|
||||
@@ -263,7 +265,7 @@
|
||||
// chkPullBeforeProcess
|
||||
//
|
||||
this.chkPullBeforeProcess.AutoSize = true;
|
||||
this.chkPullBeforeProcess.Location = new System.Drawing.Point(65, 409);
|
||||
this.chkPullBeforeProcess.Location = new System.Drawing.Point(65, 443);
|
||||
this.chkPullBeforeProcess.Name = "chkPullBeforeProcess";
|
||||
this.chkPullBeforeProcess.Size = new System.Drawing.Size(83, 17);
|
||||
this.chkPullBeforeProcess.TabIndex = 45;
|
||||
@@ -307,18 +309,36 @@
|
||||
// chkRemoveManuallyAddedWorklogs
|
||||
//
|
||||
this.chkRemoveManuallyAddedWorklogs.AutoSize = true;
|
||||
this.chkRemoveManuallyAddedWorklogs.Location = new System.Drawing.Point(65, 387);
|
||||
this.chkRemoveManuallyAddedWorklogs.Location = new System.Drawing.Point(65, 421);
|
||||
this.chkRemoveManuallyAddedWorklogs.Name = "chkRemoveManuallyAddedWorklogs";
|
||||
this.chkRemoveManuallyAddedWorklogs.Size = new System.Drawing.Size(157, 17);
|
||||
this.chkRemoveManuallyAddedWorklogs.TabIndex = 48;
|
||||
this.chkRemoveManuallyAddedWorklogs.Text = "Удалять \"ручные записи\"";
|
||||
this.chkRemoveManuallyAddedWorklogs.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbAlternateEmail
|
||||
//
|
||||
this.tbAlternateEmail.Location = new System.Drawing.Point(133, 328);
|
||||
this.tbAlternateEmail.Name = "tbAlternateEmail";
|
||||
this.tbAlternateEmail.Size = new System.Drawing.Size(100, 20);
|
||||
this.tbAlternateEmail.TabIndex = 49;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(4, 331);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(123, 13);
|
||||
this.label10.TabIndex = 50;
|
||||
this.label10.Text = "Дополнительный Email";
|
||||
//
|
||||
// frmSettings
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(243, 467);
|
||||
this.ClientSize = new System.Drawing.Size(243, 496);
|
||||
this.Controls.Add(this.label10);
|
||||
this.Controls.Add(this.tbAlternateEmail);
|
||||
this.Controls.Add(this.chkRemoveManuallyAddedWorklogs);
|
||||
this.Controls.Add(this.lblJiraUrl);
|
||||
this.Controls.Add(this.txtJiraUrl);
|
||||
@@ -390,5 +410,7 @@
|
||||
private System.Windows.Forms.Label lblJiraUrl;
|
||||
private System.Windows.Forms.TextBox txtJiraUrl;
|
||||
private System.Windows.Forms.CheckBox chkRemoveManuallyAddedWorklogs;
|
||||
private System.Windows.Forms.TextBox tbAlternateEmail;
|
||||
private System.Windows.Forms.Label label10;
|
||||
}
|
||||
}
|
||||
@@ -43,7 +43,7 @@ namespace JiraTimeBot.UI
|
||||
txtRandomMinutes.Text = settings.RandomWorkMinutes.ToString();
|
||||
chkPullBeforeProcess.Checked = settings.PullBeforeProcess;
|
||||
chkRemoveManuallyAddedWorklogs.Checked = settings.RemoveManuallyAddedWorklogs;
|
||||
|
||||
tbAlternateEmail.Text = settings.AlternativeEmail;
|
||||
cboWorkType_SelectedIndexChanged(null, null);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,8 @@ namespace JiraTimeBot.UI
|
||||
MinuterPerWorkDay = minuterPerWorkDay,
|
||||
RandomWorkMinutes = randomWorkMinutes,
|
||||
PullBeforeProcess = chkPullBeforeProcess.Checked,
|
||||
RemoveManuallyAddedWorklogs = chkRemoveManuallyAddedWorklogs.Checked
|
||||
RemoveManuallyAddedWorklogs = chkRemoveManuallyAddedWorklogs.Checked,
|
||||
AlternativeEmail = tbAlternateEmail.Text
|
||||
};
|
||||
|
||||
//LockUnlock(false);
|
||||
|
||||
Reference in New Issue
Block a user