Compare commits

...
5 Commits
Author SHA1 Message Date
d.kislov 59aed040ac git workmode added 2020-03-30 22:07:10 +03:00
d.kislov 240db8014a git work added 2020-03-30 22:06:22 +03:00
monster 80c9d7f157 Update README.md 2019-12-11 09:39:07 +03:00
monster db790cee6a Update README.md 2019-12-11 09:38:32 +03:00
Danil Kislov 2dc378932a Pull перед работой 2019-12-11 09:12:20 +03:00
18 changed files with 332 additions and 69 deletions
+1 -1
View File
@@ -1 +1 @@
1.0.70
1.0.72
+2
View File
@@ -21,5 +21,7 @@
- Рандомных минут - если > 0, то будет прибавлено рандомное количество минут к рабочему времени (но кратное значению округления).
- Добавлять описание (Режим Mercurial) - добавлять ли в описание CommitMessage, если не установлено - описание не заполняются.
- Автозагрузка - загружать ли программу при старте ОС.
- Делать pull (Режим Mercurial) - делать ли hg pull перед началом обработки (полезно, если изменения делаются Вами не только на текущем ПК).
# Скачать
Скачать актуальную версию можно тут: https://github.com/monster1025/JiraTimeBot/releases/latest
+8 -4
View File
@@ -10,12 +10,16 @@
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="RestSharp" publicKeyToken="598062e77f915f75" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-106.6.9.0" newVersion="106.6.9.0" />
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.1.2.0" newVersion="5.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.9.1.0" newVersion="4.9.1.0" />
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
@@ -144,5 +144,6 @@ namespace JiraTimeBot.Configuration
{
Mercurial = 0,
JiraLogs = 1,
GitLogs = 2
}
}
+3 -2
View File
@@ -43,8 +43,9 @@ namespace JiraTimeBot.DI
_builder.RegisterType<TechnicalInfoSkipper>().As<ITechnicalInfoSkipper>().AsSelf();
_builder.RegisterType<MercurialLog>().As<IMercurialLog>().AsSelf();
_builder.RegisterType<JiraCommitEmulator>().As<IMercurialLog>().AsSelf();
_builder.RegisterType<GitLog>().As<IRepositoryLog>().AsSelf();
_builder.RegisterType<MercurialLog>().As<IRepositoryLog>().AsSelf();
_builder.RegisterType<JiraCommitEmulator>().As<IRepositoryLog>().AsSelf();
_builder.RegisterAggregateService<IAllMercurialProviders>();
_builder.RegisterType<TaskTimeSpread>().As<ITaskTimeSpread>().AsSelf();
+2 -1
View File
@@ -72,7 +72,8 @@ namespace JiraTimeBot.JiraIntegration
public List<Issue> GetWorkloggedIssuesByDate(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default)
{
date = date.GetValueOrDefault(DateTime.Now.Date);
var jql = "issueFunction in workLogged(\"on %DATE% by '%USER%'\")";
//var jql = "issueFunction in workLogged(\"on %DATE% by '%USER%'\")";
var jql = "worklogAuthor = '%USER%' && worklogDate = \"%DATE%\"";
return GetIssuesByJQL(jql, settings, date, cancellationToken);
}
@@ -10,7 +10,7 @@ using JiraTimeBot.TaskTime.Objects;
namespace JiraTimeBot.JiraIntegration
{
public class JiraCommitEmulator : IMercurialLog
public class JiraCommitEmulator : IRepositoryLog
{
private readonly ILog _log;
private readonly JiraApi _jiraApi;
@@ -21,7 +21,7 @@ namespace JiraTimeBot.JiraIntegration
_jiraApi = jiraApi;
}
public List<TaskTimeItem> GetMercurialLog(Settings settings,
public List<TaskTimeItem> GetRepositoryLog(Settings settings,
DateTime? date = null,
CancellationToken cancellationToken = default(CancellationToken))
{
+35 -12
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\LibGit2Sharp.NativeBinaries.2.0.298\build\net46\LibGit2Sharp.NativeBinaries.props" Condition="Exists('..\packages\LibGit2Sharp.NativeBinaries.2.0.298\build\net46\LibGit2Sharp.NativeBinaries.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -11,6 +12,8 @@
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -36,36 +39,49 @@
<ApplicationIcon>app.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Atlassian.Jira, Version=10.4.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Atlassian.SDK.10.4.0\lib\net452\Atlassian.Jira.dll</HintPath>
<Reference Include="Atlassian.Jira, Version=12.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Atlassian.SDK.12.1.0\lib\net452\Atlassian.Jira.dll</HintPath>
</Reference>
<Reference Include="Autofac, Version=4.9.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.9.1\lib\net45\Autofac.dll</HintPath>
<Reference Include="Autofac, Version=5.1.2.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.5.1.2\lib\net461\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AggregateService, Version=4.1.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AggregateService.4.1.0\lib\net45\Autofac.Extras.AggregateService.dll</HintPath>
<Reference Include="Autofac.Extras.AggregateService, Version=5.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AggregateService.5.0.0\lib\netstandard2.0\Autofac.Extras.AggregateService.dll</HintPath>
</Reference>
<Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<HintPath>..\packages\Castle.Core.4.3.1\lib\net45\Castle.Core.dll</HintPath>
<HintPath>..\packages\Castle.Core.4.4.0\lib\net45\Castle.Core.dll</HintPath>
</Reference>
<Reference Include="LibGit2Sharp, Version=0.27.0.0, Culture=neutral, PublicKeyToken=7cbde695407f0333, processorArchitecture=MSIL">
<HintPath>..\packages\LibGit2Sharp.0.27.0-preview-0034\lib\net46\LibGit2Sharp.dll</HintPath>
</Reference>
<Reference Include="Mercurial.Net, Version=1.1.1.607, Culture=neutral, PublicKeyToken=9e2fabf3af85dba9, processorArchitecture=MSIL">
<HintPath>..\packages\Mercurial.Net.1.1.1.607\lib\net35-Client\Mercurial.Net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="RestSharp, Version=106.6.9.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
<HintPath>..\packages\RestSharp.106.6.9\lib\net452\RestSharp.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="RestSharp, Version=106.0.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
<HintPath>..\packages\RestSharp.106.10.1\lib\net452\RestSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.DirectoryServices" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
@@ -87,11 +103,12 @@
<Compile Include="Logger.cs" />
<Compile Include="Configuration\Settings.cs" />
<Compile Include="JiraIntegration\JiraCommitEmulator.cs" />
<Compile Include="Mercurial\GitLog.cs" />
<Compile Include="Mercurial\IAllMercurialProviders.cs" />
<Compile Include="Mercurial\Modifiers\ITechnicalInfoSkipper.cs" />
<Compile Include="Mercurial\Modifiers\CommitSkipper.cs" />
<Compile Include="Mercurial\Modifiers\ICommitSkipper.cs" />
<Compile Include="Mercurial\IMercurialLog.cs" />
<Compile Include="Mercurial\IRepositoryLog.cs" />
<Compile Include="Mercurial\Modifiers\TechnicalInfoSkipper.cs" />
<Compile Include="TasksProcessors\IAllTasksProcessors.cs" />
<Compile Include="TaskTime\Objects\CommitType.cs" />
@@ -161,4 +178,10 @@
<Content Include="app.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\LibGit2Sharp.NativeBinaries.2.0.298\build\net46\LibGit2Sharp.NativeBinaries.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\LibGit2Sharp.NativeBinaries.2.0.298\build\net46\LibGit2Sharp.NativeBinaries.props'))" />
</Target>
</Project>
+7 -2
View File
@@ -72,17 +72,22 @@ namespace JiraTimeBot
private bool SetTaskTimesForDateImpl(DateTime setForDate, DateTime realDate, Settings settings, ITasksProcessor tasksProcessor, bool dummyMode, CancellationToken cancellationToken)
{
IMercurialLog mercurial = _mercurialProviders.MercurialLog;
IRepositoryLog mercurial = _mercurialProviders.MercurialLog;
if (settings.WorkType == WorkType.JiraLogs)
{
_log.Info("Использую Jira как источник информации.");
mercurial = _mercurialProviders.JiraCommitEmulator;
}
else if (settings.WorkType == WorkType.GitLogs)
{
_log.Info("Использую Git как источник информации.");
mercurial = _mercurialProviders.GitLog;
}
List<TaskTimeItem> taskTimes;
if (!(tasksProcessor is MeetingProcessor))
{
List<TaskTimeItem> commits = mercurial.GetMercurialLog(settings, realDate, cancellationToken);
List<TaskTimeItem> commits = mercurial.GetRepositoryLog(settings, realDate, cancellationToken);
taskTimes = _taskTimeDiscoverer.CalculateTaskTime(commits, settings, cancellationToken);
}
else
+210
View File
@@ -0,0 +1,210 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using JiraTimeBot.Configuration;
using JiraTimeBot.Mercurial.Modifiers;
using JiraTimeBot.TaskTime.Objects;
using LibGit2Sharp;
using LibGit2Sharp.Handlers;
namespace JiraTimeBot.Mercurial
{
public class GitLog : IRepositoryLog
{
private readonly ILog _log;
private readonly ICommitSkipper _commitSkipper;
private readonly ITechnicalInfoSkipper _technicalInfoSkipper;
public GitLog(ILog log, ICommitSkipper commitSkipper, ITechnicalInfoSkipper technicalInfoSkipper)
{
_log = log;
_commitSkipper = commitSkipper;
_technicalInfoSkipper = technicalInfoSkipper;
}
public List<TaskTimeItem> GetRepositoryLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default)
{
if (string.IsNullOrEmpty(settings.RepositoryPath) || !Directory.Exists(settings.RepositoryPath))
{
_log.Error("Папка с репо не сушествует.");
return new List<TaskTimeItem>();
}
date = date.GetValueOrDefault(DateTime.Now.Date);
var workTasks = new List<TaskTimeItem>();
foreach (var repoDirectory in Directory.GetDirectories(settings.RepositoryPath))
{
if (cancellationToken.IsCancellationRequested)
{
return new List<TaskTimeItem>();
}
//var project = new DirectoryInfo(repoDirectory).Name;
if (!Directory.Exists(Path.Combine(repoDirectory, ".git")))
{
continue;
}
var directoryInfo = new DirectoryInfo(repoDirectory);
var repo = new LibGit2Sharp.Repository(repoDirectory);
if (settings.PullBeforeProcess)
{
try
{
// Credential information to fetch
LibGit2Sharp.PullOptions options = new LibGit2Sharp.PullOptions();
options.FetchOptions = new FetchOptions();
// User information to create a merge commit
var signature = new LibGit2Sharp.Signature(new Identity("MERGE_USER_NAME", "MERGE_USER_EMAIL"), DateTimeOffset.Now);
// Pull
Commands.Pull(repo, signature, options);
}
catch (Exception ex)
{
_log?.Trace($" - Не получается сделать pull для репозитория: {directoryInfo.Name} - {ex.Message}");
}
}
var filter = new CommitFilter { SortBy = CommitSortStrategies.Time };
foreach (Commit commit in repo.Commits.QueryBy(filter).Take(200))
{
if (cancellationToken.IsCancellationRequested)
{
return new List<TaskTimeItem>();
}
if (commit.Author.When.DateTime.Date != date || commit.Author.Email != settings.MercurialAuthorEmail)
{
continue;
}
var branch = ListBranchesContaininingCommit(repo, commit.Sha).Select(f => f.FriendlyName)
.Where(f => f.Contains("-") && !f.Contains("/")).Distinct().FirstOrDefault();
if (branch == null)
{
continue;
}
var commitMessage = commit.MessageShort;
if (_commitSkipper.IsNeedToSkip(branch, commitMessage))
{
continue;
}
commitMessage = _technicalInfoSkipper.StripTechnicalInfo(commitMessage);
var task = new TaskTimeItem(branch,
commitMessage,
directoryInfo.Name,
commit.Committer.When.DateTime,
TimeSpan.Zero,
1,
1, //changeset.PathActions.Count,
"",
GetCommitType(branch));
workTasks.Add(task);
_log?.Trace($" - Найден commit: {commit.Committer.When.DateTime} - {branch} - {commit.Author.Email} - {commitMessage}");
}
//foreach (var changeset in log)
//{
// var commitMessage = FixEncoding(changeset.CommitMessage);
// if (_commitSkipper.IsNeedToSkip(changeset.Branch, commitMessage))
// {
// continue;
// }
// commitMessage = _technicalInfoSkipper.StripTechnicalInfo(commitMessage);
// var task = new TaskTimeItem(changeset.Branch,
// commitMessage,
// directoryInfo.Name,
// changeset.Timestamp,
// TimeSpan.Zero,
// 1,
// changeset.PathActions.Count,
// "",
// GetCommitType(changeset.Branch));
// if (task.Type == CommitType.Release && task.Description.StartsWith("Merge with", StringComparison.CurrentCultureIgnoreCase))
// {
// var description = task.Description;
// if (description.Contains("\n"))
// {
// description = description.Split('\n')[0];
// }
// var branch = description.Replace("Merge with", "").Replace(" ", "");
// var release = task.Branch.Replace("release", "");
// task.Branch = branch;
// task.Description = $"Подготовка и публикация версии {task.Project} {release}.";
// task.ReleaseVersion = release;
// }
// workTasks.Add(task);
// _log?.Trace($" - Найден changeset: {changeset.Timestamp} - {changeset.Branch} - {changeset.AuthorEmailAddress} - {commitMessage}");
//}
}
if (!workTasks.Any())
{
return new List<TaskTimeItem>();
}
return workTasks;
}
private CommitType GetCommitType(string branch)
{
return branch.StartsWith("release") ? CommitType.Release : CommitType.Task;
}
private string FixEncoding(string source)
{
//перекодируем сообщение - ибо оно криво забирается в 1252
Encoding srcEncodingFormat = Encoding.GetEncoding("windows-1252");
byte[] originalByteString = srcEncodingFormat.GetBytes(source);
var commitMessage = Encoding.UTF8.GetString(originalByteString);
return commitMessage;
}
private IEnumerable<Branch> ListBranchesContaininingCommit(Repository repo, string commitSha)
{
bool directBranchHasBeenFound = false;
foreach (var branch in repo.Branches)
{
if (branch.Tip.Sha != commitSha)
{
continue;
}
directBranchHasBeenFound = true;
yield return branch;
}
if (directBranchHasBeenFound)
{
yield break;
}
foreach (var branch in repo.Branches)
{
var commits = repo.Commits.QueryBy(new CommitFilter { IncludeReachableFrom = branch }).Where(c => c.Sha == commitSha);
if (!commits.Any())
{
continue;
}
yield return branch;
}
}
}
}
@@ -5,6 +5,7 @@ namespace JiraTimeBot.Mercurial
public interface IAllMercurialProviders
{
MercurialLog MercurialLog { get; }
GitLog GitLog { get; }
JiraCommitEmulator JiraCommitEmulator { get; }
IJiraHistory JiraHistory { get; }
}
@@ -6,8 +6,8 @@ using JiraTimeBot.TaskTime.Objects;
namespace JiraTimeBot.Mercurial
{
public interface IMercurialLog
public interface IRepositoryLog
{
List<TaskTimeItem> GetMercurialLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default(CancellationToken));
List<TaskTimeItem> GetRepositoryLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default(CancellationToken));
}
}
+10 -3
View File
@@ -11,7 +11,7 @@ using Mercurial;
namespace JiraTimeBot.Mercurial
{
public class MercurialLog: IMercurialLog
public class MercurialLog: IRepositoryLog
{
private readonly ILog _log;
private readonly ICommitSkipper _commitSkipper;
@@ -24,7 +24,7 @@ namespace JiraTimeBot.Mercurial
_technicalInfoSkipper = technicalInfoSkipper;
}
public List<TaskTimeItem> GetMercurialLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default)
public List<TaskTimeItem> GetRepositoryLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default)
{
if (string.IsNullOrEmpty(settings.RepositoryPath) || !Directory.Exists(settings.RepositoryPath))
{
@@ -54,7 +54,14 @@ namespace JiraTimeBot.Mercurial
if (settings.PullBeforeProcess)
{
repo.Pull();
try
{
repo.Pull();
}
catch (Exception ex)
{
_log?.Trace($" - Не получается сделать pull для репозитория: {directoryInfo.Name} - {ex.Message}");
}
}
var logCommand = new LogCommand
@@ -10,6 +10,7 @@ namespace JiraTimeBot.Mercurial.Modifiers
{
return false;
}
if (!branch.Contains("-"))
{
return true;
@@ -17,7 +18,8 @@ namespace JiraTimeBot.Mercurial.Modifiers
//Пропускаем Close и Merge коммиты
if (commitMessage.StartsWith($"Close {branch}", StringComparison.InvariantCultureIgnoreCase) ||
commitMessage.StartsWith($"Merge with", StringComparison.InvariantCultureIgnoreCase))
commitMessage.StartsWith($"Merge with", StringComparison.InvariantCultureIgnoreCase) ||
commitMessage.StartsWith($"Merge branch", StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
+3 -3
View File
@@ -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.70")]
[assembly: AssemblyFileVersion("1.0.70")]
[assembly: AssemblyInformationalVersion("1.0.70")]
[assembly: AssemblyVersion("1.0.72")]
[assembly: AssemblyFileVersion("1.0.72")]
[assembly: AssemblyInformationalVersion("1.0.72")]
+2 -1
View File
@@ -183,7 +183,8 @@
this.cboWorkType.FormattingEnabled = true;
this.cboWorkType.Items.AddRange(new object[] {
"Mercurial",
"Jira"});
"Jira",
"Git"});
this.cboWorkType.Location = new System.Drawing.Point(133, 18);
this.cboWorkType.Name = "cboWorkType";
this.cboWorkType.Size = new System.Drawing.Size(99, 21);
+1 -1
View File
@@ -102,7 +102,7 @@ namespace JiraTimeBot.UI
private void cboWorkType_SelectedIndexChanged(object sender, EventArgs e)
{
txtJQL.Enabled = (cboWorkType.SelectedIndex == 1);
txtRepoPath.Enabled = (cboWorkType.SelectedIndex == 0);
txtRepoPath.Enabled = (cboWorkType.SelectedIndex == 0 || cboWorkType.SelectedIndex == 2);
}
}
}
+11 -6
View File
@@ -1,10 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Atlassian.SDK" version="10.4.0" targetFramework="net461" />
<package id="Autofac" version="4.9.1" targetFramework="net461" />
<package id="Autofac.Extras.AggregateService" version="4.1.0" targetFramework="net461" />
<package id="Castle.Core" version="4.3.1" targetFramework="net461" />
<package id="Atlassian.SDK" version="12.1.0" targetFramework="net461" />
<package id="Autofac" version="5.1.2" targetFramework="net461" />
<package id="Autofac.Extras.AggregateService" version="5.0.0" targetFramework="net461" />
<package id="Castle.Core" version="4.4.0" targetFramework="net461" />
<package id="LibGit2Sharp" version="0.27.0-preview-0034" targetFramework="net461" />
<package id="LibGit2Sharp.NativeBinaries" version="2.0.298" targetFramework="net461" />
<package id="Mercurial.Net" version="1.1.1.607" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
<package id="RestSharp" version="106.6.9" targetFramework="net461" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net461" />
<package id="RestSharp" version="106.10.1" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net461" />
</packages>