Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 131f313

Browse files
Adding several new data points to track in Unity
1 parent ce81bc1 commit 131f313

File tree

8 files changed

+181
-19
lines changed

8 files changed

+181
-19
lines changed

src/GitHub.Api/Application/ApplicationManagerBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ public ITask InitializeRepository()
120120
Environment.InitializeRepository();
121121
RestartRepository();
122122
})
123+
.ThenInUI(UsageTracker.IncrementNumberOfProjectsInitialized)
123124
.ThenInUI(InitializeUI);
124125
return task;
125126
}
@@ -179,7 +180,7 @@ protected void SetupMetrics(string unityVersion, bool firstRun)
179180

180181
if (firstRun)
181182
{
182-
UsageTracker.IncrementLaunchCount();
183+
UsageTracker.IncrementNumberOfStartups();
183184
}
184185
}
185186

src/GitHub.Api/Metrics/IUsageTracker.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,33 @@ namespace GitHub.Unity
66
public interface IUsageTracker
77
{
88
bool Enabled { get; set; }
9-
void IncrementLaunchCount();
9+
void IncrementNumberOfStartups();
10+
void IncrementNumberOfCommits();
11+
void IncrementNumberOfFetches();
12+
void IncrementNumberOfPushes();
13+
void IncrementNumberOfPulls();
14+
void IncrementNumberOfAuthentications();
15+
void IncrementNumberOfProjectsInitialized();
16+
void IncrementNumberOfLocalBranchCreations();
17+
void IncrementNumberOfLocalBranchDeletions();
18+
void IncrementNumberOfLocalBranchCheckouts();
19+
void IncrementNumberOfRemoteBranchCheckouts();
1020
}
1121

1222
class NullUsageTracker : IUsageTracker
1323
{
1424
public bool Enabled { get; set; }
15-
16-
public void IncrementLaunchCount(){ }
17-
public void SetMetricsService(IMetricsService instance)
18-
{ }
25+
public void IncrementNumberOfStartups() { }
26+
public void IncrementNumberOfCommits() { }
27+
public void IncrementNumberOfFetches() { }
28+
public void IncrementNumberOfPushes() { }
29+
public void IncrementNumberOfPulls() { }
30+
public void IncrementNumberOfAuthentications() { }
31+
public void IncrementNumberOfProjectsInitialized() { }
32+
public void IncrementNumberOfLocalBranchCreations() { }
33+
public void IncrementNumberOfLocalBranchDeletions() { }
34+
public void IncrementNumberOfLocalBranchCheckouts() { }
35+
public void IncrementNumberOfRemoteBranchCheckouts() { }
36+
public void SetMetricsService(IMetricsService instance) { }
1937
}
2038
}

src/GitHub.Api/Metrics/UsageModel.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@ public class Usage
1212
public string UnityVersion { get; set; }
1313
public string Lang { get; set; }
1414
public int NumberOfStartups { get; set; }
15+
public int NumberOfCommits { get; set; }
16+
public int NumberOfFetches { get; set; }
17+
public int NumberOfPushes { get; set; }
18+
public int NumberOfPulls { get; set; }
19+
public int NumberOfProjectsInitialized { get; set; }
20+
public int NumberOfAuthentications { get; set; }
21+
public int NumberOfLocalBranchCreations { get; set; }
22+
public int NumberOfLocalBranchDeletion { get; set; }
23+
public int NumberOfLocalBranchCheckouts { get; set; }
24+
public int NumberOfRemoteBranchCheckouts { get; set; }
1525
}
1626

1727
class UsageModel

src/GitHub.Api/Metrics/UsageTracker.cs

Lines changed: 126 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -104,28 +104,27 @@ private void RunTimer(int seconds)
104104
}, null, seconds * 1000, Timeout.Infinite);
105105
}
106106

107-
108107
private async Task SendUsage()
109108
{
110109
Logger.Trace("SendUsage");
111110

112-
var usage = LoadUsage();
111+
var usageStore = LoadUsage();
113112

114113
if (metricsService == null)
115114
{
116115
Logger.Warning("No service, not sending usage");
117116
return;
118117
}
119118

120-
if (usage.LastUpdated.Date != DateTimeOffset.UtcNow.Date)
119+
if (usageStore.LastUpdated.Date != DateTimeOffset.UtcNow.Date)
121120
{
122121
Logger.Trace("Sending Usage");
123122

124123
var currentTimeOffset = DateTimeOffset.UtcNow;
125124
var beforeDate = currentTimeOffset.Date;
126125

127126
var success = false;
128-
var extractReports = usage.Model.SelectReports(beforeDate);
127+
var extractReports = usageStore.Model.SelectReports(beforeDate);
129128
if (!extractReports.Any())
130129
{
131130
Logger.Trace("No items to send");
@@ -151,24 +150,139 @@ private async Task SendUsage()
151150

152151
if (success)
153152
{
154-
usage.Model.RemoveReports(beforeDate);
155-
usage.LastUpdated = currentTimeOffset;
156-
SaveUsage(usage);
153+
usageStore.Model.RemoveReports(beforeDate);
154+
usageStore.LastUpdated = currentTimeOffset;
155+
SaveUsage(usageStore);
157156
}
158157
}
159158
}
160159

161-
public void IncrementLaunchCount()
160+
private Usage GetCurrentUsage(UsageStore usageStore)
162161
{
163-
var usageStore = LoadUsage();
164-
165162
var usage = usageStore.Model.GetCurrentUsage();
166-
usage.NumberOfStartups++;
167163
usage.UnityVersion = unityVersion;
168164
usage.Lang = CultureInfo.InstalledUICulture.IetfLanguageTag;
169165
usage.AppVersion = AppConfiguration.AssemblyName.Version.ToString();
166+
return usage;
167+
}
168+
169+
public void IncrementNumberOfStartups()
170+
{
171+
var usageStore = LoadUsage();
172+
var usage = GetCurrentUsage(usageStore);
173+
174+
usage.NumberOfStartups++;
175+
Logger.Trace("NumberOfStartups:{0} Date:{1}", usage.NumberOfStartups, usage.Date);
176+
177+
SaveUsage(usageStore);
178+
}
179+
180+
public void IncrementNumberOfCommits()
181+
{
182+
var usageStore = LoadUsage();
183+
var usage = GetCurrentUsage(usageStore);
184+
185+
usage.NumberOfCommits++;
186+
Logger.Trace("NumberOfCommits:{0} Date:{1}", usage.NumberOfCommits, usage.Date);
187+
188+
SaveUsage(usageStore);
189+
}
190+
191+
public void IncrementNumberOfFetches()
192+
{
193+
var usageStore = LoadUsage();
194+
var usage = GetCurrentUsage(usageStore);
195+
196+
usage.NumberOfFetches++;
197+
Logger.Trace("NumberOfFetches:{0} Date:{1}", usage.NumberOfFetches, usage.Date);
198+
199+
SaveUsage(usageStore);
200+
}
201+
202+
public void IncrementNumberOfPushes()
203+
{
204+
var usageStore = LoadUsage();
205+
var usage = GetCurrentUsage(usageStore);
206+
207+
usage.NumberOfPushes++;
208+
Logger.Trace("NumberOfPushes:{0} Date:{1}", usage.NumberOfPushes, usage.Date);
209+
210+
SaveUsage(usageStore);
211+
}
212+
213+
public void IncrementNumberOfProjectsInitialized()
214+
{
215+
var usageStore = LoadUsage();
216+
var usage = GetCurrentUsage(usageStore);
217+
218+
usage.NumberOfProjectsInitialized++;
219+
Logger.Trace("NumberOfProjectsInitialized:{0} Date:{1}", usage.NumberOfProjectsInitialized, usage.Date);
220+
221+
SaveUsage(usageStore);
222+
}
223+
224+
public void IncrementNumberOfLocalBranchCreations()
225+
{
226+
var usageStore = LoadUsage();
227+
var usage = GetCurrentUsage(usageStore);
228+
229+
usage.NumberOfLocalBranchCreations++;
230+
Logger.Trace("NumberOfLocalBranchCreations:{0} Date:{1}", usage.NumberOfLocalBranchCreations, usage.Date);
231+
232+
SaveUsage(usageStore);
233+
}
234+
235+
public void IncrementNumberOfLocalBranchDeletions()
236+
{
237+
var usageStore = LoadUsage();
238+
var usage = GetCurrentUsage(usageStore);
239+
240+
usage.NumberOfLocalBranchDeletion++;
241+
Logger.Trace("NumberOfLocalBranchDeletion:{0} Date:{1}", usage.NumberOfLocalBranchDeletion, usage.Date);
242+
243+
SaveUsage(usageStore);
244+
}
245+
246+
public void IncrementNumberOfLocalBranchCheckouts()
247+
{
248+
var usageStore = LoadUsage();
249+
var usage = GetCurrentUsage(usageStore);
250+
251+
usage.NumberOfLocalBranchCheckouts++;
252+
Logger.Trace("NumberOfLocalBranchCheckouts:{0} Date:{1}", usage.NumberOfLocalBranchCheckouts, usage.Date);
253+
254+
SaveUsage(usageStore);
255+
}
256+
257+
public void IncrementNumberOfRemoteBranchCheckouts()
258+
{
259+
var usageStore = LoadUsage();
260+
var usage = GetCurrentUsage(usageStore);
261+
262+
usage.NumberOfRemoteBranchCheckouts++;
263+
Logger.Trace("NumberOfRemoteBranchCheckouts:{0} Date:{1}", usage.NumberOfRemoteBranchCheckouts, usage.Date);
264+
265+
SaveUsage(usageStore);
266+
}
267+
268+
public void IncrementNumberOfPulls()
269+
{
270+
var usageStore = LoadUsage();
271+
var usage = GetCurrentUsage(usageStore);
272+
273+
usage.NumberOfPulls++;
274+
Logger.Trace("NumberOfPulls:{0} Date:{1}", usage.NumberOfPulls, usage.Date);
275+
276+
SaveUsage(usageStore);
277+
}
278+
279+
public void IncrementNumberOfAuthentications()
280+
{
281+
var usageStore = LoadUsage();
282+
var usage = GetCurrentUsage(usageStore);
170283

171-
Logger.Trace("IncrementLaunchCount Date:{0} NumberOfStartups:{1}", usage.Date, usage.NumberOfStartups);
284+
usage.NumberOfAuthentications++;
285+
Logger.Trace("NumberOfAuthentications:{0} Date:{1}", usage.NumberOfAuthentications, usage.Date);
172286

173287
SaveUsage(usageStore);
174288
}

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/AuthenticationView.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading;
23
using UnityEngine;
34
using UnityEditor;
45

@@ -213,6 +214,10 @@ private void DoResult(bool success, string msg)
213214

214215
if (success == true)
215216
{
217+
new ActionTask(CancellationToken.None, () => {
218+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfAuthentications();
219+
}) { Affinity = TaskAffinity.UI }.Start();
220+
216221
Clear();
217222
Finish(true);
218223
}

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ private void OnButtonBarGUI()
272272
{
273273
if (success)
274274
{
275+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfLocalBranchCreations();
275276
Redraw();
276277
}
277278
else
@@ -439,6 +440,7 @@ private void CheckoutRemoteBranch(string branch)
439440
GitClient.CreateBranch(branchName, branch).FinallyInUI((success, e) => {
440441
if (success)
441442
{
443+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfRemoteBranchCheckouts();
442444
Redraw();
443445
}
444446
else
@@ -459,6 +461,7 @@ private void SwitchBranch(string branch)
459461
GitClient.SwitchBranch(branch).FinallyInUI((success, e) => {
460462
if (success)
461463
{
464+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfLocalBranchCheckouts();
462465
Redraw();
463466
}
464467
else
@@ -475,7 +478,7 @@ private void DeleteLocalBranch(string branch)
475478
var dialogMessage = string.Format(DeleteBranchMessageFormatString, branch);
476479
if (EditorUtility.DisplayDialog(DeleteBranchTitle, dialogMessage, DeleteBranchButton, CancelButtonLabel))
477480
{
478-
GitClient.DeleteBranch(branch, true).Start();
481+
GitClient.DeleteBranch(branch, true).ThenInUI(EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfLocalBranchDeletions).Start();
479482
}
480483
}
481484

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/ChangesView.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,11 @@ private void Commit()
318318
addTask
319319
.FinallyInUI((b, exception) =>
320320
{
321+
if (b)
322+
{
323+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfCommits();
324+
}
325+
321326
commitMessage = "";
322327
commitBody = "";
323328
SetBusy(false);

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/HistoryView.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,8 @@ private void Pull()
681681
.FinallyInUI((success, e) => {
682682
if (success)
683683
{
684+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfPulls();
685+
684686
EditorUtility.DisplayDialog(Localization.PullActionTitle,
685687
String.Format(Localization.PullSuccessDescription, currentRemoteName),
686688
Localization.Ok);
@@ -703,6 +705,8 @@ private void Push()
703705
.FinallyInUI((success, e) => {
704706
if (success)
705707
{
708+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfPushes();
709+
706710
EditorUtility.DisplayDialog(Localization.PushActionTitle,
707711
String.Format(Localization.PushSuccessDescription, currentRemoteName),
708712
Localization.Ok);
@@ -722,6 +726,8 @@ private void Fetch()
722726
Repository
723727
.Fetch()
724728
.FinallyInUI((success, e) => {
729+
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfFetches();
730+
725731
if (!success)
726732
{
727733
EditorUtility.DisplayDialog(FetchActionTitle, FetchFailureDescription,

0 commit comments

Comments
 (0)