{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":577298872,"defaultBranch":"main","name":"EssentialFeed","ownerLogin":"mfsaglam","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-12-12T12:37:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/49832903?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1672820712.485638","currentOid":""},"activityList":{"items":[{"before":"251b355995d74b434df60b62d1ed634c32478acc","after":"951a3bf754e02237ba7c953656ef5144da3d9304","ref":"refs/heads/main","pushedAt":"2023-04-16T15:18:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`FeedImagePresenter` displays Retry Button on `didFinishLoadingImageDataWithError`","shortMessageHtmlLink":"FeedImagePresenter displays Retry Button on `didFinishLoadingImageD…"}},{"before":"194044aba9837028236ff46f6b6604ccf5ffc087","after":"251b355995d74b434df60b62d1ed634c32478acc","ref":"refs/heads/main","pushedAt":"2023-04-08T13:18:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Make messages array a Set, to make tests more permissive","shortMessageHtmlLink":"Make messages array a Set, to make tests more permissive"}},{"before":"d6fcd518df540442ba9a6aff47d38604fc58d7c8","after":"194044aba9837028236ff46f6b6604ccf5ffc087","ref":"refs/heads/main","pushedAt":"2023-04-08T12:54:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`FeedImagePresenter` displays loading on `didStartLoadingImageData`","shortMessageHtmlLink":"FeedImagePresenter displays loading on didStartLoadingImageData"}},{"before":"dbcc0619cbb6b5ecea226624db3967289fa5b261","after":"d6fcd518df540442ba9a6aff47d38604fc58d7c8","ref":"refs/heads/main","pushedAt":"2023-04-08T11:56:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Extract system under test creation to a factory method","shortMessageHtmlLink":"Extract system under test creation to a factory method"}},{"before":"84f08280337bcdfa8fcaee3931e6b598f8051486","after":"dbcc0619cbb6b5ecea226624db3967289fa5b261","ref":"refs/heads/main","pushedAt":"2023-04-06T18:14:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`FeedImagePresenter` does not send messages to its view on init","shortMessageHtmlLink":"FeedImagePresenter does not send messages to its view on init"}},{"before":"f6d6b3cc2031f4e40f3bbccebc586af6b242a430","after":"84f08280337bcdfa8fcaee3931e6b598f8051486","ref":"refs/heads/main","pushedAt":"2023-04-05T14:55:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move `FeedLocalizationTests` to cross-platform EssentialFeed module","shortMessageHtmlLink":"Move FeedLocalizationTests to cross-platform EssentialFeed module"}},{"before":"c7f0fd06ff0c7b5bf1d2f2bed6429ac055420a8f","after":"f6d6b3cc2031f4e40f3bbccebc586af6b242a430","ref":"refs/heads/main","pushedAt":"2023-04-05T14:51:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Remove FeedErrorView from test target","shortMessageHtmlLink":"Remove FeedErrorView from test target"}},{"before":"64e42bd2e66f9ce124f1551d391dcfce769078ef","after":"c7f0fd06ff0c7b5bf1d2f2bed6429ac055420a8f","ref":"refs/heads/main","pushedAt":"2023-04-05T14:48:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Update recommended settings after Xcode update","shortMessageHtmlLink":"Update recommended settings after Xcode update"}},{"before":"343b1fc74b752afd8a3415bf3341abcc23f3c7a3","after":"64e42bd2e66f9ce124f1551d391dcfce769078ef","ref":"refs/heads/main","pushedAt":"2023-04-05T14:47:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Replace `FeedPresenter` from iOS module with the `FeedPresenter` from the cross-platform EssentialFeed module","shortMessageHtmlLink":"Replace FeedPresenter from iOS module with the FeedPresenter from…"}},{"before":"6fd0fdb61296d9c19324f810f3f0f83a2a48e560","after":"343b1fc74b752afd8a3415bf3341abcc23f3c7a3","ref":"refs/heads/main","pushedAt":"2023-04-05T14:14:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move FeedErrorViewModel into its own file","shortMessageHtmlLink":"Move FeedErrorViewModel into its own file"}},{"before":"6dd0f5ebd80eab16ddaa20ce468e40fdb68ae8ea","after":"6fd0fdb61296d9c19324f810f3f0f83a2a48e560","ref":"refs/heads/main","pushedAt":"2023-04-05T14:13:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move FeedLoadingViewModel into its own file","shortMessageHtmlLink":"Move FeedLoadingViewModel into its own file"}},{"before":"e5309145675e5208bcda9294d66d992d982c0a32","after":"6dd0f5ebd80eab16ddaa20ce468e40fdb68ae8ea","ref":"refs/heads/main","pushedAt":"2023-04-05T14:12:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move FeedViewModel into its own file","shortMessageHtmlLink":"Move FeedViewModel into its own file"}},{"before":"963155d483c41265b352403c67aef373d881fb2e","after":"e5309145675e5208bcda9294d66d992d982c0a32","ref":"refs/heads/main","pushedAt":"2023-04-05T14:08:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move production types to the Essential Feed production module","shortMessageHtmlLink":"Move production types to the Essential Feed production module"}},{"before":"837778df93aa984aa1196ce2474bd24a29fa7189","after":"963155d483c41265b352403c67aef373d881fb2e","ref":"refs/heads/main","pushedAt":"2023-04-04T15:16:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Add localized `FeedPresenter.title`","shortMessageHtmlLink":"Add localized FeedPresenter.title"}},{"before":"8c2c4d7f8d842e67ceb4115edcc7608d89f22963","after":"837778df93aa984aa1196ce2474bd24a29fa7189","ref":"refs/heads/main","pushedAt":"2023-04-04T15:02:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`Feed Presenter` displays localized error message and stops loading on `didFinishLoadingFeedWithError`","shortMessageHtmlLink":"Feed Presenter displays localized error message and stops loading o…"}},{"before":"52ce996341e39ebcbd9411416d37359c263b6127","after":"8c2c4d7f8d842e67ceb4115edcc7608d89f22963","ref":"refs/heads/main","pushedAt":"2023-04-03T05:37:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`FeedPresenter` displays feed and stops loading on `didFinishLoadingFeed`","shortMessageHtmlLink":"FeedPresenter displays feed and stops loading on `didFinishLoadingF…"}},{"before":"6e16cc7d274a0973eb6d6e522b914c5ebf0c9058","after":"52ce996341e39ebcbd9411416d37359c263b6127","ref":"refs/heads/main","pushedAt":"2023-04-03T05:24:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Make messages array a Set to make test more permissive since we don't care about order. (Changing order should not break the tests!)","shortMessageHtmlLink":"Make messages array a Set to make test more permissive since we don't…"}},{"before":"d87e4d82eedd1ca371445cbdfd26d8908d7e0892","after":"6e16cc7d274a0973eb6d6e522b914c5ebf0c9058","ref":"refs/heads/main","pushedAt":"2023-04-02T05:35:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`FeedPresenter` displays loading on `didStartLoadingFeed`","shortMessageHtmlLink":"FeedPresenter displays loading on didStartLoadingFeed"}},{"before":"2749d8446e1b3694e5f18099d7b5d193e5cef88c","after":"d87e4d82eedd1ca371445cbdfd26d8908d7e0892","ref":"refs/heads/main","pushedAt":"2023-04-02T05:17:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`FeedPresenter` displays no error on `didStartLoadingFeed`","shortMessageHtmlLink":"FeedPresenter displays no error on didStartLoadingFeed"}},{"before":"78dc4d3a3a2f930431e89a7b30f80788962e466d","after":"2749d8446e1b3694e5f18099d7b5d193e5cef88c","ref":"refs/heads/main","pushedAt":"2023-04-02T04:23:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Extract System Under Tests creation to a test factory method","shortMessageHtmlLink":"Extract System Under Tests creation to a test factory method"}},{"before":"260c6db93b08d10b9fcdff77bba3bdb3a8fb3cc2","after":"78dc4d3a3a2f930431e89a7b30f80788962e466d","ref":"refs/heads/main","pushedAt":"2023-04-02T04:19:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"`Feed Presenter` does not messages to view on init","shortMessageHtmlLink":"Feed Presenter does not messages to view on init"}},{"before":"e74f67525ddc6992730e0636580b00decb7af8e4","after":"260c6db93b08d10b9fcdff77bba3bdb3a8fb3cc2","ref":"refs/heads/main","pushedAt":"2023-04-02T04:19:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Comment unused `CodableFeedStoreTests`","shortMessageHtmlLink":"Comment unused CodableFeedStoreTests"}},{"before":"65669cf4a0b16ba332c647ebf04b8c2fd894b283","after":"e74f67525ddc6992730e0636580b00decb7af8e4","ref":"refs/heads/main","pushedAt":"2023-04-02T03:28:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move `FeedViewController` composition creation helper method inside the composition layer","shortMessageHtmlLink":"Move FeedViewController composition creation helper method inside t…"}},{"before":"4578880431890a7e9597694883bec2f61635fdce","after":"65669cf4a0b16ba332c647ebf04b8c2fd894b283","ref":"refs/heads/main","pushedAt":"2023-04-02T03:24:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move `FeedViewAdapter` into separate file","shortMessageHtmlLink":"Move FeedViewAdapter into separate file"}},{"before":"39e517e8d184c04f2b27e01b8b4c3a6ca88914c1","after":"4578880431890a7e9597694883bec2f61635fdce","ref":"refs/heads/main","pushedAt":"2023-04-02T03:23:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move `FeedLoaderPresentationAdapter` into separate file","shortMessageHtmlLink":"Move FeedLoaderPresentationAdapter into separate file"}},{"before":"16746cd53783cf02e8cdb93b1674d899ac094b0e","after":"39e517e8d184c04f2b27e01b8b4c3a6ca88914c1","ref":"refs/heads/main","pushedAt":"2023-04-02T03:22:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move `FeedImageDataLoaderPresentationAdapter` into separate file","shortMessageHtmlLink":"Move FeedImageDataLoaderPresentationAdapter into separate file"}},{"before":"7937a325d9034322e45d3f3e2f7a22a338780e72","after":"16746cd53783cf02e8cdb93b1674d899ac094b0e","ref":"refs/heads/main","pushedAt":"2023-04-02T03:20:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move `WeakRefVirtualProxy` into separate file","shortMessageHtmlLink":"Move WeakRefVirtualProxy into separate file"}},{"before":"c9d565a094a8b83fabc1d3d727304b9f01f551fb","after":"7937a325d9034322e45d3f3e2f7a22a338780e72","ref":"refs/heads/main","pushedAt":"2023-04-02T03:17:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Move `MainQueueDispatchDecorator` to separate file","shortMessageHtmlLink":"Move MainQueueDispatchDecorator to separate file"}},{"before":"4dbb17bf3554b0d076cd8073b24e9a5826a04413","after":"c9d565a094a8b83fabc1d3d727304b9f01f551fb","ref":"refs/heads/main","pushedAt":"2023-04-02T02:56:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Dispatch background feed image data completion to main thread before passing result to the UI components. Threading is dealt with a decorator in the Composition layer.","shortMessageHtmlLink":"Dispatch background feed image data completion to main thread before …"}},{"before":"de900c8b108a66e994c8ffe86417a8fea26b49f5","after":"4dbb17bf3554b0d076cd8073b24e9a5826a04413","ref":"refs/heads/main","pushedAt":"2023-04-02T02:32:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mfsaglam","name":"Fatih Saglam","path":"/mfsaglam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49832903?s=80&v=4"},"commit":{"message":"Make `MainQueueDispatchDecorator` generic","shortMessageHtmlLink":"Make MainQueueDispatchDecorator generic"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADGcLTygA","startCursor":null,"endCursor":null}},"title":"Activity · mfsaglam/EssentialFeed"}