Skip to content

Commit c08c307

Browse files
authored
enhance: add GitLab Issue/MR sample rules (#598)
* enhance: add GitLab Issue/MR sample rules * fix: remove blank in zh_CN --------- Signed-off-by: Gadfly <[email protected]>
1 parent d3d71af commit c08c307

File tree

6 files changed

+62
-0
lines changed

6 files changed

+62
-0
lines changed

src/Models/RepositorySettings.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,32 @@ public IssueTrackerRule AddJiraIssueTracker()
169169
return rule;
170170
}
171171

172+
public IssueTrackerRule AddGitLabIssueTracker(string repoURL)
173+
{
174+
var rule = new IssueTrackerRule()
175+
{
176+
Name = "GitLab ISSUE",
177+
RegexString = "#(\\d+)",
178+
URLTemplate = string.IsNullOrEmpty(repoURL) ? "https://gitlab.com/username/repository/-/issues/$1" : $"{repoURL}/-/issues/$1",
179+
};
180+
181+
IssueTrackerRules.Add(rule);
182+
return rule;
183+
}
184+
185+
public IssueTrackerRule AddGitLabMergeRequestTracker(string repoURL)
186+
{
187+
var rule = new IssueTrackerRule()
188+
{
189+
Name = "GitLab MR",
190+
RegexString = "!(\\d+)",
191+
URLTemplate = string.IsNullOrEmpty(repoURL) ? "https://gitlab.com/username/repository/-/merge_requests/$1" : $"{repoURL}/-/merge_requests/$1",
192+
};
193+
194+
IssueTrackerRules.Add(rule);
195+
return rule;
196+
}
197+
172198
public void RemoveIssueTracker(IssueTrackerRule rule)
173199
{
174200
if (rule != null)

src/Resources/Locales/en_US.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@
147147
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">ISSUE TRACKER</x:String>
148148
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Add Sample Github Rule</x:String>
149149
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Add Sample Jira Rule</x:String>
150+
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Add Sample GitLab Issue Rule</x:String>
151+
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Add Sample GitLab Merge Request Rule</x:String>
150152
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">New Rule</x:String>
151153
<x:String x:Key="Text.Configure.IssueTracker.Regex" xml:space="preserve">Issue Regex Expression:</x:String>
152154
<x:String x:Key="Text.Configure.IssueTracker.RuleName" xml:space="preserve">Rule Name:</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@
150150
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">ISSUE追踪</x:String>
151151
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">新增匹配Github Issue规则</x:String>
152152
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">新增匹配Jira规则</x:String>
153+
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">新增匹配GitLab议题规则</x:String>
154+
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">新增匹配GitLab合并请求规则</x:String>
153155
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">新增自定义规则</x:String>
154156
<x:String x:Key="Text.Configure.IssueTracker.Regex" xml:space="preserve">匹配ISSUE的正则表达式 :</x:String>
155157
<x:String x:Key="Text.Configure.IssueTracker.RuleName" xml:space="preserve">规则名 :</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@
150150
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">Issue 追蹤</x:String>
151151
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">新增符合 GitHub Issue 規則</x:String>
152152
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">新增符合 Jira 規則</x:String>
153+
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">新增符合 GitLab 議題規則</x:String>
154+
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">新增符合 GitLab 合併請求規則</x:String>
153155
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">新增自訂規則</x:String>
154156
<x:String x:Key="Text.Configure.IssueTracker.Regex" xml:space="preserve">符合 Issue 的正則表達式:</x:String>
155157
<x:String x:Key="Text.Configure.IssueTracker.RuleName" xml:space="preserve">規則名稱:</x:String>

src/ViewModels/RepositoryConfigure.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,34 @@ public void AddSampleJiraIssueTracker()
172172
SelectedIssueTrackerRule = _repo.Settings.AddJiraIssueTracker();
173173
}
174174

175+
public void AddSampleGitLabIssueTracker()
176+
{
177+
foreach (var remote in _repo.Remotes)
178+
{
179+
if (remote.TryGetVisitURL(out string url))
180+
{
181+
SelectedIssueTrackerRule = _repo.Settings.AddGitLabIssueTracker(url);
182+
return;
183+
}
184+
}
185+
186+
SelectedIssueTrackerRule = _repo.Settings.AddGitLabIssueTracker(null);
187+
}
188+
189+
public void AddSampleGitLabMergeRequestTracker()
190+
{
191+
foreach (var remote in _repo.Remotes)
192+
{
193+
if (remote.TryGetVisitURL(out string url))
194+
{
195+
SelectedIssueTrackerRule = _repo.Settings.AddGitLabMergeRequestTracker(url);
196+
return;
197+
}
198+
}
199+
200+
SelectedIssueTrackerRule = _repo.Settings.AddGitLabMergeRequestTracker(null);
201+
}
202+
175203
public void NewIssueTracker()
176204
{
177205
SelectedIssueTrackerRule = _repo.Settings.AddNewIssueTracker();

src/Views/RepositoryConfigure.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,8 @@
287287
<MenuItem Header="-"/>
288288
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGithub}" Command="{Binding AddSampleGithubIssueTracker}"/>
289289
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleJira}" Command="{Binding AddSampleJiraIssueTracker}"/>
290+
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGitLabIssue}" Command="{Binding AddSampleGitLabIssueTracker}"/>
291+
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGitLabMergeRequest}" Command="{Binding AddSampleGitLabMergeRequestTracker}"/>
290292
</MenuFlyout>
291293
</Button.Flyout>
292294
<Path Width="14" Height="14" Data="{StaticResource Icons.Plus}"/>

0 commit comments

Comments
 (0)