{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":743136525,"defaultBranch":"main","name":"Zero2ProdLearningRust","ownerLogin":"SergoGansta777","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-01-14T12:54:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/98104790?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1710513554.0","currentOid":""},"activityList":{"items":[{"before":"d626e7c7734ded81019c7576b6b5034ff48cbadc","after":null,"ref":"refs/heads/test-push-1710513552520","pushedAt":"2024-03-15T14:39:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"}},{"before":null,"after":"d626e7c7734ded81019c7576b6b5034ff48cbadc","ref":"refs/heads/test-push-1710513552520","pushedAt":"2024-03-15T14:39:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Merge pull request #4 from SergoGansta777/development\n\nDevelopment","shortMessageHtmlLink":"Merge pull request #4 from SergoGansta777/development"}},{"before":"3574f863e6d84a9012b9fbc2da19c9e56e6df782","after":"d626e7c7734ded81019c7576b6b5034ff48cbadc","ref":"refs/heads/main","pushedAt":"2024-03-03T20:08:17.000Z","pushType":"pr_merge","commitsCount":78,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Merge pull request #4 from SergoGansta777/development\n\nDevelopment","shortMessageHtmlLink":"Merge pull request #4 from SergoGansta777/development"}},{"before":"efc55a57dea00236902659c0d1264836a2a676c8","after":"4c5510b23d988db7260518d14813146dfca8a542","ref":"refs/heads/development","pushedAt":"2024-03-03T20:06:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added transiety to queue newsletters","shortMessageHtmlLink":"Added transiety to queue newsletters"}},{"before":"0cf94ba35b0d0748382044154f28efd126791513","after":"efc55a57dea00236902659c0d1264836a2a676c8","ref":"refs/heads/development","pushedAt":"2024-03-03T19:28:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added idempotency","shortMessageHtmlLink":"Added idempotency"}},{"before":"5a8beee76dc95b343b86b473d66849e4d198aa4e","after":"0cf94ba35b0d0748382044154f28efd126791513","ref":"refs/heads/development","pushedAt":"2024-03-02T20:39:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Continued implementing persistence model","shortMessageHtmlLink":"Continued implementing persistence model"}},{"before":"36b32d734b1d355cc527f96da51f21c8be10e63d","after":"5a8beee76dc95b343b86b473d66849e4d198aa4e","ref":"refs/heads/development","pushedAt":"2024-03-02T20:19:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Started implementing idempotency handling","shortMessageHtmlLink":"Started implementing idempotency handling"}},{"before":"5c1af2e80a4b1dad51e79c6f4d5fe81f4c16f564","after":"36b32d734b1d355cc527f96da51f21c8be10e63d","ref":"refs/heads/development","pushedAt":"2024-02-28T19:54:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"feat: add functionality to publish a newsletter issue\n\n- Added a new endpoint `publish_newsletter` to handle publishing a newsletter issue\n- The endpoint accepts a form data containing the title, text content, and HTML content of the newsletter\n- Retrieves a list of confirmed subscribers from the database\n- Sends the newsletter issue to each confirmed subscriber's email using an email client\n- Skips subscribers with invalid contact details and logs a warning\n- Added a new struct `ConfirmedSubscriber` to represent a confirmed subscriber\n- Added a new function `get_confirmed_subscribers` to fetch the list of confirmed subscribers from the database\n- Added tests for the newsletter creation process, including idempotency check","shortMessageHtmlLink":"feat: add functionality to publish a newsletter issue"}},{"before":null,"after":"709b95a0746681d12ce52ceded7d70fb69dfc23e","ref":"refs/heads/Add-newsletter-tests","pushedAt":"2024-02-28T19:52:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"chore: remove unused struct Content in newsletter issue publishing function","shortMessageHtmlLink":"chore: remove unused struct Content in newsletter issue publishing fu…"}},{"before":null,"after":"cc00aeda2a891c22d41115f085e2c974d0fe530f","ref":"refs/heads/Update-actix-codec-and-actix-http-versions","pushedAt":"2024-02-28T19:48:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"feat: update dependencies versions\n\n- Update actix-codec to version 0.5.2\n- Update actix-http to version 3.6.0\n- Update actix-web to version 4.5.1\n- Update actix-utils to version 3.0.1\n- Add actix-session version 0.9.0\n- Add actix-web-flash-messages version 0.4.2\n- Add actix-web-lab version 0.20.2\n- Add actix-web-lab-derive version 0.20.0\n- Add aead dependency","shortMessageHtmlLink":"feat: update dependencies versions"}},{"before":"59ad056006b0cdb405493e8856be36deaec74585","after":"5c1af2e80a4b1dad51e79c6f4d5fe81f4c16f564","ref":"refs/heads/development","pushedAt":"2024-02-27T08:48:05.000Z","pushType":"push","commitsCount":23,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Merge branch 'Improving_Security_And_Auth' into development","shortMessageHtmlLink":"Merge branch 'Improving_Security_And_Auth' into development"}},{"before":"7234a8a85f507acad7c8a7e4cff741e909dd4ecc","after":"3af12d7b2a985d661624f020e359dd7934eeb02c","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-27T08:46:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Completed rewriting from basic auth to typed sesion based auth","shortMessageHtmlLink":"Completed rewriting from basic auth to typed sesion based auth"}},{"before":"165622c7cd8207f0e0e1342f34766774b1ea6f2d","after":"7234a8a85f507acad7c8a7e4cff741e909dd4ecc","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-26T20:26:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Refactoring","shortMessageHtmlLink":"Refactoring"}},{"before":"3a15d29c0793351cb8e27f234cdfe1527a71fe1f","after":"165622c7cd8207f0e0e1342f34766774b1ea6f2d","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-26T09:00:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Fixed test cases","shortMessageHtmlLink":"Fixed test cases"}},{"before":"40ce0221d4deac962a08fa77eaaeddc1e807e45b","after":"3a15d29c0793351cb8e27f234cdfe1527a71fe1f","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-26T07:51:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added possiblity to change password","shortMessageHtmlLink":"Added possiblity to change password"}},{"before":"074ba91454420edacdeed2ae37223e530a177704","after":"40ce0221d4deac962a08fa77eaaeddc1e807e45b","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-26T07:27:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added new test cases","shortMessageHtmlLink":"Added new test cases"}},{"before":"448f977f77b164166b7bdc3761893c219f954c0a","after":"074ba91454420edacdeed2ae37223e530a177704","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-24T19:28:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added features to change password","shortMessageHtmlLink":"Added features to change password"}},{"before":"7b1f15fb4bf72d97d0fe1e131ae3f59c622129b5","after":"448f977f77b164166b7bdc3761893c219f954c0a","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-23T19:48:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added typed session logic","shortMessageHtmlLink":"Added typed session logic"}},{"before":"a93f2c02ecf743228d554b17d31e7fad2e7c8f59","after":"7b1f15fb4bf72d97d0fe1e131ae3f59c622129b5","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-22T18:53:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Improved login and cookie security","shortMessageHtmlLink":"Improved login and cookie security"}},{"before":"85dc1ef8dcebeaa2aa1167ff0d84d5c24427ce53","after":"a93f2c02ecf743228d554b17d31e7fad2e7c8f59","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-22T18:35:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added sessions to login","shortMessageHtmlLink":"Added sessions to login"}},{"before":"f20d8f96e26f1185075c7a9ddb8edddffbe2e099","after":"85dc1ef8dcebeaa2aa1167ff0d84d5c24427ce53","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-22T18:29:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Fixed some test cases","shortMessageHtmlLink":"Fixed some test cases"}},{"before":"acff1b90b3940ddd4eb237a0726aceb4d0d80c4b","after":"f20d8f96e26f1185075c7a9ddb8edddffbe2e099","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-22T16:23:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added basic test for dashboard","shortMessageHtmlLink":"Added basic test for dashboard"}},{"before":"42f5c510991bca1a5a04f265b05ab53b7ef8658a","after":"acff1b90b3940ddd4eb237a0726aceb4d0d80c4b","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-22T16:11:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"feature: started implementing usages of redis for token storage","shortMessageHtmlLink":"feature: started implementing usages of redis for token storage"}},{"before":"e2d43c051c1e06ec5d8b97992836da5d0d16c34b","after":"42f5c510991bca1a5a04f265b05ab53b7ef8658a","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-20T16:14:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added basic realization of flash messages","shortMessageHtmlLink":"Added basic realization of flash messages"}},{"before":"0914979f9bebf911cf16d8401ed03344cda367fe","after":"e2d43c051c1e06ec5d8b97992836da5d0d16c34b","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-20T12:40:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"chore added tests for login","shortMessageHtmlLink":"chore added tests for login"}},{"before":"971a6f4b62b1ff2e2fad00d7e5477844c5c27769","after":"0914979f9bebf911cf16d8401ed03344cda367fe","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-20T07:34:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Improved error handling in login form","shortMessageHtmlLink":"Improved error handling in login form"}},{"before":"ec2943b36adeac14f37a5d14c9cea3b862770db4","after":"971a6f4b62b1ff2e2fad00d7e5477844c5c27769","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-19T19:43:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Implemented hmac tag verification","shortMessageHtmlLink":"Implemented hmac tag verification"}},{"before":"780b4666b0c689d89adfc8ee49cf849b217d9c21","after":"ec2943b36adeac14f37a5d14c9cea3b862770db4","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-19T18:57:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Added simple protections from XSS","shortMessageHtmlLink":"Added simple protections from XSS"}},{"before":"29977b31b9069e77ecb62c446249a2c5432f855d","after":"780b4666b0c689d89adfc8ee49cf849b217d9c21","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-19T18:51:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Implemented a naive approach to relogin after incorrect attempt putting credentials","shortMessageHtmlLink":"Implemented a naive approach to relogin after incorrect attempt putti…"}},{"before":"a03376ef24d98cdce5782c44a79bba8f2e024527","after":"29977b31b9069e77ecb62c446249a2c5432f855d","ref":"refs/heads/Improving_Security_And_Auth","pushedAt":"2024-02-19T16:41:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SergoGansta777","name":"Сергей","path":"/SergoGansta777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98104790?s=80&v=4"},"commit":{"message":"Implemented basic login logic","shortMessageHtmlLink":"Implemented basic login logic"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0xNVQxNDozOToxNC4wMDAwMDBazwAAAAQWxbRt","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0xNVQxNDozOToxNC4wMDAwMDBazwAAAAQWxbRt","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMi0xOVQxNjo0MTo1OS4wMDAwMDBazwAAAAP-2_pZ"}},"title":"Activity · SergoGansta777/Zero2ProdLearningRust"}