{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":776589297,"defaultBranch":"master","name":"news_letter_api","ownerLogin":"minhtrannhat","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-03-23T23:15:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/42745621?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1711235792.0","currentOid":""},"activityList":{"items":[{"before":"fda6c7c044db22dd8e9af0182864743f9f4dd74c","after":"23b089bf3d61faac621fa9820decbaa698e7c22d","ref":"refs/heads/master","pushedAt":"2024-08-25T21:43:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(api): email-testing and refactored subscription code","shortMessageHtmlLink":"feat(api): email-testing and refactored subscription code"}},{"before":"d96eae1fec1b6a614feb33c5178d062fbfb3998a","after":"fda6c7c044db22dd8e9af0182864743f9f4dd74c","ref":"refs/heads/master","pushedAt":"2024-08-21T14:47:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(api): parse username and email\n\n- Updated cargo deps","shortMessageHtmlLink":"feat(api): parse username and email"}},{"before":"96a6b6a351955a84b39b916b43f1666ed5c4ce97","after":"d96eae1fec1b6a614feb33c5178d062fbfb3998a","ref":"refs/heads/master","pushedAt":"2024-05-12T02:31:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(config): App can take environ variables\n\n- Change log level of SQLx to TRACE","shortMessageHtmlLink":"feat(config): App can take environ variables"}},{"before":"daf914bb8e9d356e13786f85ff7275a525c7b6fe","after":"96a6b6a351955a84b39b916b43f1666ed5c4ce97","ref":"refs/heads/master","pushedAt":"2024-05-11T02:04:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"fix(docker): optimize image\n\n- updated `h2` dependency to address security alert","shortMessageHtmlLink":"fix(docker): optimize image"}},{"before":"7b5fa617805ad4a36bc66f543be5ddb79bbcdf6a","after":"daf914bb8e9d356e13786f85ff7275a525c7b6fe","ref":"refs/heads/master","pushedAt":"2024-05-10T23:40:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(api): containerization\n\n- Build SQLx queries beforehand so that we don't have to do PostgreSQL\ninit right away at service start up\n- Created `Dockerfile.production`\n- Updated docs\n- Seperate configuration files for local and development environments","shortMessageHtmlLink":"feat(api): containerization"}},{"before":"444e42351e888efcb4afc2aec6887edbf0386f90","after":"7b5fa617805ad4a36bc66f543be5ddb79bbcdf6a","ref":"refs/heads/master","pushedAt":"2024-05-09T03:50:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(api): use tracing-actix logger middleware\n\n- Completely move away from using traditional logs","shortMessageHtmlLink":"feat(api): use tracing-actix logger middleware"}},{"before":"3a0576ba482190d4cda8d12e9edf94ca2c80ac04","after":"444e42351e888efcb4afc2aec6887edbf0386f90","ref":"refs/heads/master","pushedAt":"2024-05-08T21:54:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(api): wrap database password with Secret","shortMessageHtmlLink":"feat(api): wrap database password with Secret"}},{"before":"9336235b642ca93ef3eaac4fd399a4c644a342ec","after":"3a0576ba482190d4cda8d12e9edf94ca2c80ac04","ref":"refs/heads/master","pushedAt":"2024-05-08T21:29:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(log): database operations and API logs split","shortMessageHtmlLink":"feat(log): database operations and API logs split"}},{"before":"70a4eb23c630531f982c57b83ace701e0a776018","after":"9336235b642ca93ef3eaac4fd399a4c644a342ec","ref":"refs/heads/master","pushedAt":"2024-05-08T01:37:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(test): log for integration tests\n\n- log for test are configurable to either be spit into the void (cargo\ntest default) or into `stdout`.","shortMessageHtmlLink":"feat(test): log for integration tests"}},{"before":"ccf49ee214000acabf5374bc89257a5ccb9b955b","after":"70a4eb23c630531f982c57b83ace701e0a776018","ref":"refs/heads/master","pushedAt":"2024-05-07T20:14:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(telemtry): Moved from logs to tracing\n\n- Updated docs","shortMessageHtmlLink":"feat(telemtry): Moved from logs to tracing"}},{"before":"da977cd720f825d5266db73060b43d4fe433881e","after":"ccf49ee214000acabf5374bc89257a5ccb9b955b","ref":"refs/heads/master","pushedAt":"2024-05-06T04:49:56.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(log): rudimentary logging\n\n- Changed route `subscribe` into `subscriptions`","shortMessageHtmlLink":"feat(log): rudimentary logging"}},{"before":"5e6e9c2efe8489373a689f862e33de288546d64e","after":"da977cd720f825d5266db73060b43d4fe433881e","ref":"refs/heads/master","pushedAt":"2024-05-04T19:43:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(docs): updated testing docs","shortMessageHtmlLink":"feat(docs): updated testing docs"}},{"before":"1c317e3f34e28ff54715571066a6c838445a2182","after":"5e6e9c2efe8489373a689f862e33de288546d64e","ref":"refs/heads/master","pushedAt":"2024-05-04T19:31:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(test): spin up new logical database tests\n\n- Tests will use new database every run\n- Added chrono and uuid dependencies.\n- Updated documentation","shortMessageHtmlLink":"feat(test): spin up new logical database tests"}},{"before":"5090157d91aeadd8c60f9fc6ef9a86f2b9483a03","after":"1c317e3f34e28ff54715571066a6c838445a2182","ref":"refs/heads/master","pushedAt":"2024-05-04T15:41:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"fix(ci-cd): cache on failure\n\n- use a different toolchain setup","shortMessageHtmlLink":"fix(ci-cd): cache on failure"}},{"before":"c8fe98eb648ba24d98601870d780024284f41e46","after":"5090157d91aeadd8c60f9fc6ef9a86f2b9483a03","ref":"refs/heads/master","pushedAt":"2024-05-04T15:34:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(docs): reorganized docs","shortMessageHtmlLink":"feat(docs): reorganized docs"}},{"before":"d2f959433d8457eebb95c481c01fc654a15c926b","after":"c8fe98eb648ba24d98601870d780024284f41e46","ref":"refs/heads/master","pushedAt":"2024-05-04T14:58:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(ci-cd): use caching to speed up build","shortMessageHtmlLink":"feat(ci-cd): use caching to speed up build"}},{"before":"b4fa90f18334cda488890686712904bb1141cf81","after":"d2f959433d8457eebb95c481c01fc654a15c926b","ref":"refs/heads/master","pushedAt":"2024-05-04T14:35:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"fix(ci-cd): update github ci-cd\n\n- making sure we run postgreSQL in docker first, remove SKIP_DOCKER=true","shortMessageHtmlLink":"fix(ci-cd): update github ci-cd"}},{"before":"46ac102adcd37db1bb3f822ea4a784a91acd6c85","after":"b4fa90f18334cda488890686712904bb1141cf81","ref":"refs/heads/master","pushedAt":"2024-05-04T13:44:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(ci-cd): setup Github CI-CD","shortMessageHtmlLink":"feat(ci-cd): setup Github CI-CD"}},{"before":"38f964652667470a47fdf68f49cef7cc6c6f3cdd","after":"46ac102adcd37db1bb3f822ea4a784a91acd6c85","ref":"refs/heads/master","pushedAt":"2024-05-03T21:11:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(test): connecting to PostgreSQL\n\n- rename the database name in the configuration.yaml","shortMessageHtmlLink":"feat(test): connecting to PostgreSQL"}},{"before":"f08def8e773a0837a05f780f90faf930c5f0403e","after":"38f964652667470a47fdf68f49cef7cc6c6f3cdd","ref":"refs/heads/master","pushedAt":"2024-05-03T20:15:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat: use configuration.yaml to setup variables","shortMessageHtmlLink":"feat: use configuration.yaml to setup variables"}},{"before":"53f20f16f4dd0653d0774372ae57d78863143baf","after":"f08def8e773a0837a05f780f90faf930c5f0403e","ref":"refs/heads/master","pushedAt":"2024-05-03T19:44:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"fix: restructure the logic","shortMessageHtmlLink":"fix: restructure the logic"}},{"before":"3c09eccfef5d3627806ab7863b8e0e6f01b8b47b","after":"53f20f16f4dd0653d0774372ae57d78863143baf","ref":"refs/heads/master","pushedAt":"2024-05-02T22:39:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"chore: added sqlx_cli dependency\n\n- Formatted init_db.sh script","shortMessageHtmlLink":"chore: added sqlx_cli dependency"}},{"before":"84fc74a0d17f4a4200d9efb5198bc3c02de61c26","after":"3c09eccfef5d3627806ab7863b8e0e6f01b8b47b","ref":"refs/heads/master","pushedAt":"2024-04-24T19:09:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(devops): database init and 1st migration","shortMessageHtmlLink":"feat(devops): database init and 1st migration"}},{"before":"4b4286ae4355d5fa445ac03fdb53d636a7259473","after":"84fc74a0d17f4a4200d9efb5198bc3c02de61c26","ref":"refs/heads/master","pushedAt":"2024-04-22T21:04:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat: `subscribe` API route skeleton\n\n- Added `serde` crate for serialisation or deserialisation of data\n- Added test cases for the `subscribe` API route\n- Refactor the testing setup to another module `test_utils`\n- use random TCP port for testing","shortMessageHtmlLink":"feat: subscribe API route skeleton"}},{"before":"eb2a4be5e567fb4dbab5cf1d11150a73f2eca89c","after":"4b4286ae4355d5fa445ac03fdb53d636a7259473","ref":"refs/heads/master","pushedAt":"2024-04-06T19:14:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(dev): added tmuxinator.yml","shortMessageHtmlLink":"feat(dev): added tmuxinator.yml"}},{"before":"83915acbd113368a5d56862d529cf89b4085dffe","after":"eb2a4be5e567fb4dbab5cf1d11150a73f2eca89c","ref":"refs/heads/master","pushedAt":"2024-03-30T03:45:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(docs): Added docs","shortMessageHtmlLink":"feat(docs): Added docs"}},{"before":"cd677039b1dfd7cd02a897f130de0183f34a997c","after":"83915acbd113368a5d56862d529cf89b4085dffe","ref":"refs/heads/master","pushedAt":"2024-03-29T20:21:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(test): use random ports for testing\n\n- port is assigned by the OS.","shortMessageHtmlLink":"feat(test): use random ports for testing"}},{"before":"8d90f9e8e6a8fc73ac94ae7d63431113720f95ef","after":"cd677039b1dfd7cd02a897f130de0183f34a997c","ref":"refs/heads/master","pushedAt":"2024-03-29T19:37:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(test): server setup and teardown for tests\n\n- Application server will now be setup on EVERY test and closed after\nthat test","shortMessageHtmlLink":"feat(test): server setup and teardown for tests"}},{"before":"229ede166ce837de4c438f096d0772d02fec45a8","after":"8d90f9e8e6a8fc73ac94ae7d63431113720f95ef","ref":"refs/heads/master","pushedAt":"2024-03-28T15:42:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"feat(test): health_check route","shortMessageHtmlLink":"feat(test): health_check route"}},{"before":null,"after":"229ede166ce837de4c438f096d0772d02fec45a8","ref":"refs/heads/master","pushedAt":"2024-03-23T23:16:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"minhtrannhat","name":"Minh Tran Nhat","path":"/minhtrannhat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42745621?s=80&v=4"},"commit":{"message":"initial commit","shortMessageHtmlLink":"initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yNVQyMTo0MzoyOC4wMDAwMDBazwAAAASjsdzM","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0yM1QyMzoxNjozMi4wMDAwMDBazwAAAAQdpOz6"}},"title":"Activity ยท minhtrannhat/news_letter_api"}