Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71c4c413e0 | ||
|
|
24887e1c46 | ||
|
|
290cf03c4b | ||
|
|
eff1bff375 | ||
|
|
d8a47b7cd3 | ||
|
|
95ce2792d9 | ||
|
|
325e7a30f5 | ||
|
|
9f95e918f7 |
+1
-1
@@ -1 +1 @@
|
||||
1.0.83
|
||||
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)
|
||||
{
|
||||
|
||||
@@ -26,6 +26,6 @@ using System.Runtime.InteropServices;
|
||||
//
|
||||
// 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.83")]
|
||||
[assembly: AssemblyFileVersion("1.0.83")]
|
||||
[assembly: AssemblyInformationalVersion("1.0.83")]
|
||||
[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
|
||||
@@ -35,7 +36,7 @@ namespace JiraTimeBot.RepositoryProviders
|
||||
date = date.GetValueOrDefault(DateTime.Now.Date);
|
||||
|
||||
var workTasks = new List<TaskTimeItem>();
|
||||
foreach (var repoDirectory in Directory.GetDirectories(settings.RepositoryPath))
|
||||
foreach (var repoDirectory in Directory.GetDirectories(settings.RepositoryPath, ".git", SearchOption.AllDirectories))
|
||||
{
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
@@ -43,16 +44,15 @@ namespace JiraTimeBot.RepositoryProviders
|
||||
}
|
||||
|
||||
//var project = new DirectoryInfo(repoDirectory).Name;
|
||||
if (!Directory.Exists(Path.Combine(repoDirectory, ".git")))
|
||||
var repoRootDirectory = repoDirectory.Replace(".git", "");
|
||||
var directoryInfo = new DirectoryInfo(repoRootDirectory);
|
||||
if (!directoryInfo.Exists)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var directoryInfo = new DirectoryInfo(repoDirectory);
|
||||
|
||||
|
||||
var repo = new LibGit2Sharp.Repository(repoDirectory);
|
||||
|
||||
var repo = new LibGit2Sharp.Repository(repoRootDirectory);
|
||||
if (settings.PullBeforeProcess)
|
||||
{
|
||||
try
|
||||
@@ -78,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;
|
||||
}
|
||||
@@ -96,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