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

Commit da7b314

Browse files
Adding events to RepositoryWatcher and fixing RepositoryWatcherTests
1 parent 6fe73d8 commit da7b314

File tree

2 files changed

+145
-56
lines changed

2 files changed

+145
-56
lines changed

src/GitHub.Api/Events/RepositoryWatcher.cs

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ interface IRepositoryWatcher : IDisposable
1414
event Action HeadChanged;
1515
event Action IndexChanged;
1616
event Action ConfigChanged;
17+
event Action RepositoryCommitted;
1718
event Action RepositoryChanged;
19+
event Action LocalBranchesChanged;
20+
event Action RemoteBranchesChanged;
1821
void Initialize();
1922
int CheckAndProcessEvents();
2023
}
@@ -34,7 +37,10 @@ class RepositoryWatcher : IRepositoryWatcher
3437
public event Action HeadChanged;
3538
public event Action IndexChanged;
3639
public event Action ConfigChanged;
40+
public event Action RepositoryCommitted;
3741
public event Action RepositoryChanged;
42+
public event Action LocalBranchesChanged;
43+
public event Action RemoteBranchesChanged;
3844

3945
public RepositoryWatcher(IPlatform platform, RepositoryPathConfiguration paths, CancellationToken cancellationToken)
4046
{
@@ -183,13 +189,13 @@ private int ProcessEvents(Event[] fileEvents)
183189
{
184190
events.Add(EventType.IndexChanged, null);
185191
}
186-
else if (fileA.IsChildOf(paths.RemotesPath))
192+
else if (!events.ContainsKey(EventType.RemoteBranchesChanged) && fileA.IsChildOf(paths.RemotesPath))
187193
{
188-
throw new NotImplementedException();
194+
events.Add(EventType.RemoteBranchesChanged, null);
189195
}
190-
else if (fileA.IsChildOf(paths.BranchesPath))
196+
else if (!events.ContainsKey(EventType.LocalBranchesChanged) && fileA.IsChildOf(paths.BranchesPath))
191197
{
192-
throw new NotImplementedException();
198+
events.Add(EventType.LocalBranchesChanged, null);
193199
}
194200
}
195201
else
@@ -205,13 +211,6 @@ private int ProcessEvents(Event[] fileEvents)
205211
return FireEvents(events);
206212
}
207213

208-
private void AddOrUpdateEventData(Dictionary<EventType, List<EventData>> events, EventType type, EventData data)
209-
{
210-
if (!events.ContainsKey(type))
211-
events.Add(type, new List<EventData>());
212-
events[type].Add(data);
213-
}
214-
215214
private int FireEvents(Dictionary<EventType, List<EventData>> events)
216215
{
217216
int eventsProcessed = 0;
@@ -229,6 +228,20 @@ private int FireEvents(Dictionary<EventType, List<EventData>> events)
229228
eventsProcessed++;
230229
}
231230

231+
if (events.ContainsKey(EventType.LocalBranchesChanged))
232+
{
233+
Logger.Trace("LocalBranchesChanged");
234+
LocalBranchesChanged?.Invoke();
235+
eventsProcessed++;
236+
}
237+
238+
if (events.ContainsKey(EventType.RemoteBranchesChanged))
239+
{
240+
Logger.Trace("RemoteBranchesChanged");
241+
RemoteBranchesChanged?.Invoke();
242+
eventsProcessed++;
243+
}
244+
232245
if (events.ContainsKey(EventType.IndexChanged))
233246
{
234247
Logger.Trace("IndexChanged");
@@ -276,8 +289,10 @@ private enum EventType
276289
None,
277290
ConfigChanged,
278291
HeadChanged,
279-
RepositoryChanged,
280292
IndexChanged,
293+
LocalBranchesChanged,
294+
RemoteBranchesChanged,
295+
RepositoryChanged,
281296
}
282297

283298
private class EventData

0 commit comments

Comments
 (0)