public static async Task GetCommitDetailsForPushEvents(GitHubUserData userData) { foreach (Event evt in userData.GetEventsOfType(EventType.PushEvent).Where(e => e.isPublic)) { PushEventPayload payload = evt.payload as PushEventPayload; foreach (Commit commit in payload.Commits) { string jsonString = await HttpRequestHelper.DoRequestCommitDetailsAsync(userData.UserName, evt.repository.name, commit.sha); commit.details = JsonConvert.DeserializeObject <CommitDetails>(jsonString, new JsonSerializerSettings { Error = Program.HandleDeserializationError }); } } }