{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":357832728,"defaultBranch":"main","name":"safe-deployments","ownerLogin":"safe-global","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-04-14T08:34:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/102983781?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1720781547.0","currentOid":""},"activityList":{"items":[{"before":"7634cfce464cd8b3afeb50309ad0205f810d3908","after":null,"ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-12T10:52:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"}},{"before":"bb7f75f6c09dc737b73ee9622a5167591bcab8ac","after":"fca8fe37868122856038edd23da320d92072a8b1","ref":"refs/heads/main","pushedAt":"2024-07-12T10:52:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"Feature: Multiple deployments functions (#684)\n\nThis PR is a new API proposal for the functions that support the updated\r\nJSON format, which supports multiple deployments per network. Implements\r\nhttps://github.com/safe-global/safe-deployments/issues/685\r\n\r\nThe complexity of supporting multiple formats is handled by the utility\r\nfunction `findDeployments`, which contains a function overload with the\r\ndeployment format parameter.\r\n\r\nThe new functions are added alongside the [existing\r\nAPI](https://github.com/safe-global/safe-deployments?tab=readme-ov-file#usage)\r\nfunctions but with plural `deployments` at the end of the function name.\r\n\r\n**Example function:**\r\n```\r\nexport const getProxyFactoryDeployments = (filter?: DeploymentFilter): SingletonDeploymentV2 | undefined => {\r\n return findDeployment(filter, factoryDeployments, DeploymentFormats.MULTIPLE);\r\n};\r\n```\r\n\r\n**My reason for going with this approach**:\r\nAll the complexity is kept within the internal `findDeployment`\r\nfunction. Developers do not have to import and understand which format\r\nmeans what and don't have to import the additional `DeploymentFilter`\r\nenum. Type shenanigans are kept to a minimum. Also, the alternative\r\napproach below would require refactoring package functions to be defined\r\nvia the `function` keyword because arrow functions do not support\r\nfunction overloads properly:\r\nhttps://www.perplexity.ai/search/typescript-arrow-function-over-tit1.0R8Rracx_PAUr1nVw#0\r\n\r\n**Alternative approach:**\r\nAdd function overloads to the existing functions like this:\r\n```\r\nexport const getSafeSingletonDeployment = (filter?: DeploymentFilter, format = DeploymentFormats.SINGLETON) => {\r\n return findDeployment(filter, _safeDeployments, format);\r\n};\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: Nicholas Rodrigues Lordello ","shortMessageHtmlLink":"Feature: Multiple deployments functions (#684)"}},{"before":"8f70103554c8747a7f38d8348f52ab0c349b2cd1","after":"7634cfce464cd8b3afeb50309ad0205f810d3908","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-11T09:39:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"Update src/types.ts\n\nCo-authored-by: Nicholas Rodrigues Lordello ","shortMessageHtmlLink":"Update src/types.ts"}},{"before":"359a09bbe647861d39f5908a493754fcdd875375","after":"8f70103554c8747a7f38d8348f52ab0c349b2cd1","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-11T09:38:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"Update src/types.ts\n\nCo-authored-by: Nicholas Rodrigues Lordello ","shortMessageHtmlLink":"Update src/types.ts"}},{"before":"0a14d3b560b007ebdfa2baf53260eb328aef2d05","after":"359a09bbe647861d39f5908a493754fcdd875375","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-11T09:38:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"Update src/types.ts\n\nCo-authored-by: Nicholas Rodrigues Lordello ","shortMessageHtmlLink":"Update src/types.ts"}},{"before":"94cf3a1a5c6b953d35532b3e84da08d85e82aaf9","after":"0a14d3b560b007ebdfa2baf53260eb328aef2d05","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-11T09:37:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"Update src/types.ts\n\nCo-authored-by: Nicholas Rodrigues Lordello ","shortMessageHtmlLink":"Update src/types.ts"}},{"before":"1979fde7bd73ef08386ec40979432e1b11dfaddc","after":"94cf3a1a5c6b953d35532b3e84da08d85e82aaf9","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-10T13:31:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"extract deployments, refactor tests, fix types","shortMessageHtmlLink":"extract deployments, refactor tests, fix types"}},{"before":"941046194b6f094c4a618bdab60c64d810b659ab","after":"1979fde7bd73ef08386ec40979432e1b11dfaddc","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-10T13:31:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"extract deployments, refactor tests, fix types","shortMessageHtmlLink":"extract deployments, refactor tests, fix types"}},{"before":"a97b53155672fed06260376a69c6161c653f514d","after":"941046194b6f094c4a618bdab60c64d810b659ab","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-10T13:13:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"extract deployments, refactor tests, fix types","shortMessageHtmlLink":"extract deployments, refactor tests, fix types"}},{"before":"9c34ff070f004edefe6f00b95a45428d4c8ca901","after":"a97b53155672fed06260376a69c6161c653f514d","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-10T10:30:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"Merge branch 'main' of github.com:gnosis/safe-deployments into feat/v1-multiple-deployments-function","shortMessageHtmlLink":"Merge branch 'main' of github.com:gnosis/safe-deployments into feat/v…"}},{"before":"57ebd9bc39b4d4a5263e3071fb0aeb28e4a17e5e","after":"bb7f75f6c09dc737b73ee9622a5167591bcab8ac","ref":"refs/heads/main","pushedAt":"2024-07-10T07:48:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"remedcu","name":"Shebin John","path":"/remedcu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30735581?s=80&v=4"},"commit":{"message":"feat: add v1.4.1 contracts for AuraNetwork mainnet (#689)\n\n## Add new chain\r\n\r\nPlease fill the following form:\r\n\r\nProvide the Chain ID (Only 1 chain id per PR).\r\n- Chain_ID: 6322\r\n\r\nProvide RPC URL for the chain (should be able to query atleast 10\r\nrequests per minute for automatic PR check).\r\n- RPC_URL: https://jsonrpc.aura.network\r\n\r\nRelevant information:\r\nAdd any other relevant information like blockexplorer, any annotation...\r\nBlockexplorer: https://aurascan.io","shortMessageHtmlLink":"feat: add v1.4.1 contracts for AuraNetwork mainnet (#689)"}},{"before":"542b2efceb60f8937467bee58bab580959a50a39","after":"57ebd9bc39b4d4a5263e3071fb0aeb28e4a17e5e","ref":"refs/heads/main","pushedAt":"2024-07-09T14:53:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"remedcu","name":"Shebin John","path":"/remedcu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30735581?s=80&v=4"},"commit":{"message":"Deployment Review Script (#683)\n\nThis PR improves the review cycle for the `safe-deployment` by checking\r\nthe new deployments when a new PR is created for a particular chain.\r\n\r\nThis PR:\r\n- instead of an `ISSUE_TEMPLATE`, introduced a PR Template which will\r\nask for the required data from the PR creator, and help run the CI\r\nscript.\r\n- adds a CI review script, which succeeds if everything seems ok, else,\r\nit helps the PR creator to know what might be a problem with merging the\r\nPR in the CI logs.\r\n- updates the `github-review` script, which checks for edge cases when a\r\nchain ID with the highest number is added.\r\n- updates the test to accommodate the change in the JSON structure for\r\nthe `codehash` (because `v.1.3.0` has multiple deployment types).\r\n- updated the JSON structure to include address and code hash within a\r\nsingle object with the deployment type as the key.\r\n- ZKSync support in CI mentioned in #662 (Ex:\r\nhttps://github.com/remedcu/safe-deployments/pull/8)\r\n\r\nRemaining TODO's:\r\n- There is a possibility that a user removes one of the deployment types\r\n(currently only applicable with `v1.3.0`) from the current list. This\r\ncan't be detected with the current script.","shortMessageHtmlLink":"Deployment Review Script (#683)"}},{"before":"bab94cf49e63cbb86960c14e0ecf7e33254bf079","after":"9c34ff070f004edefe6f00b95a45428d4c8ca901","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-08T14:58:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"add tests","shortMessageHtmlLink":"add tests"}},{"before":"354b3c6ac867ef56d8d65b2a5486d52130aecf1c","after":"bab94cf49e63cbb86960c14e0ecf7e33254bf079","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-08T11:53:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"add handler & factories tests","shortMessageHtmlLink":"add handler & factories tests"}},{"before":"6eb41feeafb348ee63f44aa8c4c6efc5a0df8def","after":"354b3c6ac867ef56d8d65b2a5486d52130aecf1c","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-04T16:11:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"implement proper functional overloading","shortMessageHtmlLink":"implement proper functional overloading"}},{"before":"336dfff28cf18e7fb24434fa3c4271ab23f47b35","after":"6eb41feeafb348ee63f44aa8c4c6efc5a0df8def","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-04T15:29:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"implement proper functional overloading","shortMessageHtmlLink":"implement proper functional overloading"}},{"before":"bc158b5cd1134a814a6d96f9f94b65a1c138755c","after":"336dfff28cf18e7fb24434fa3c4271ab23f47b35","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-04T13:06:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"add functions that return the new deployment format which supports multiple deployments","shortMessageHtmlLink":"add functions that return the new deployment format which supports mu…"}},{"before":"bf44d6563eab42aaa2b2369175fa01c8ab87c1c2","after":null,"ref":"refs/heads/bump/v1.37.1","pushedAt":"2024-07-04T09:53:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nlordell","name":"Nicholas Rodrigues Lordello","path":"/nlordell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4210206?s=80&v=4"}},{"before":"60721ac4341ae20a2ace79d6f244bb4a45ce28a8","after":"542b2efceb60f8937467bee58bab580959a50a39","ref":"refs/heads/main","pushedAt":"2024-07-04T09:53:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nlordell","name":"Nicholas Rodrigues Lordello","path":"/nlordell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4210206?s=80&v=4"},"commit":{"message":"Bump Version to v1.37.1 (#681)\n\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump Version to v1.37.1 (#681)"}},{"before":null,"after":"bf44d6563eab42aaa2b2369175fa01c8ab87c1c2","ref":"refs/heads/bump/v1.37.1","pushedAt":"2024-07-04T09:52:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Bump Version to v1.37.1","shortMessageHtmlLink":"Bump Version to v1.37.1"}},{"before":"a9e3e165ea10400ff77fddd3a0add02f393005a6","after":null,"ref":"refs/heads/bump/v1.37.1","pushedAt":"2024-07-04T09:51:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nlordell","name":"Nicholas Rodrigues Lordello","path":"/nlordell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4210206?s=80&v=4"}},{"before":"0034d3c73c05193197524b61437d3bbed5046cbe","after":null,"ref":"refs/heads/dont-set-reviewers","pushedAt":"2024-07-04T08:53:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"}},{"before":"76883adf797fa45dd9f2a99b3db776c9b28eaf61","after":"60721ac4341ae20a2ace79d6f244bb4a45ce28a8","ref":"refs/heads/main","pushedAt":"2024-07-04T08:53:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"Do Not Add Reviewer To Version Bump PR (#680)\n\nThis PR removes the `--reviewer` when creating the version bump PR. The\r\nreason is that this was causing CI to\r\n[fail](https://github.com/safe-global/safe-deployments/actions/runs/9782471522/job/27008850846#step:5:37)\r\nwith:\r\n\r\n> ```\r\n> could not request reviewer: 'safe-global/safe-protocol' not found\r\n> ```\r\n\r\nFrom what I understand, this is because the automatically created GitHub\r\ntoken that gets injected in the GitHub actions (`github.token`) is\r\nscoped to the repository and does not have org access in order to \"find\"\r\nthe team and adding to\r\n([source](https://github.com/cli/cli/issues/6395)).\r\n\r\nI did not catch this in my local debugging as I did not have a team to\r\ntest with to add to the reviewers, so did not run into this problem.\r\n\r\nI also took this opportunity to scope the `GH_TOKEN` environment\r\nvariable to _only_ the step that runs the release script, instead of all\r\nthe steps.","shortMessageHtmlLink":"Do Not Add Reviewer To Version Bump PR (#680)"}},{"before":null,"after":"0034d3c73c05193197524b61437d3bbed5046cbe","ref":"refs/heads/dont-set-reviewers","pushedAt":"2024-07-03T17:55:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nlordell","name":"Nicholas Rodrigues Lordello","path":"/nlordell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4210206?s=80&v=4"},"commit":{"message":"Do Not Add Reviewer To Release PR","shortMessageHtmlLink":"Do Not Add Reviewer To Release PR"}},{"before":null,"after":"a9e3e165ea10400ff77fddd3a0add02f393005a6","ref":"refs/heads/bump/v1.37.1","pushedAt":"2024-07-03T17:41:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Bump Version to v1.37.1","shortMessageHtmlLink":"Bump Version to v1.37.1"}},{"before":"a15931b15708ea9446b4619050d3833a94c62884","after":null,"ref":"refs/heads/660/multi-release-action","pushedAt":"2024-07-03T17:40:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nlordell","name":"Nicholas Rodrigues Lordello","path":"/nlordell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4210206?s=80&v=4"}},{"before":"356efab7586e824bca41c73861b01fbd78c4fdf2","after":"76883adf797fa45dd9f2a99b3db776c9b28eaf61","ref":"refs/heads/main","pushedAt":"2024-07-03T17:40:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nlordell","name":"Nicholas Rodrigues Lordello","path":"/nlordell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4210206?s=80&v=4"},"commit":{"message":"Refactor GitHub Release Script (#674)\n\nThis PR completely refactors the release script :see_no_evil:.\r\n\r\nThe previous script was built on the assumption that GitHub actions\r\ncould push to protected branches, but it turns out that this is kind of\r\ncomplicated to setup without sacrificing some branch protections that we\r\napply to `main` and I don't want to touch.\r\n\r\nInstead, we change the release flow to:\r\n1. Automatically create a PR to GitHub to bump the version\r\n2. Create a draft release\r\n3. Publish the draft release once it shows up on NPM.\r\n\r\n### Test Plan\r\n\r\nThis script should do all that now, and once this merges, we should be\r\nable to test the flow by:\r\n1. Triggering the flow to create the version bump PR\r\n2. Merge the version bump PR\r\n3. Triggering the flow to create a draft release\r\n4. NPM publish the tarball attached to the release\r\n5. Triggering the flow to publish the draft release\r\n\r\nTested on my local fork and was able to automatically create releases.\r\n\r\n
Screenshots\r\n\r\n\r\n![image](https://github.com/safe-global/safe-deployments/assets/4210206/747fcf6f-4e9a-4c5a-8f8d-bc6955c345a7)\r\n\r\n\r\n![image](https://github.com/safe-global/safe-deployments/assets/4210206/52e5e6c6-a428-4bd6-9d30-4264c29ce6d3)\r\n\r\n\r\n![image](https://github.com/safe-global/safe-deployments/assets/4210206/bda8cd1c-74a2-43ae-bf22-5e0069d06d5d)\r\n\r\n
\r\n\r\n### Future Work\r\n\r\nOnce the private runner that publishes to NPM is setup, we can run the\r\naction hourly.","shortMessageHtmlLink":"Refactor GitHub Release Script (#674)"}},{"before":null,"after":"bc158b5cd1134a814a6d96f9f94b65a1c138755c","ref":"refs/heads/feat/v2-multiple-deployments-function","pushedAt":"2024-07-03T15:32:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"},"commit":{"message":"wip v2 function","shortMessageHtmlLink":"wip v2 function"}},{"before":"776ced9d72b5889c5dc07835676cc24fdbf08efa","after":"a15931b15708ea9446b4619050d3833a94c62884","ref":"refs/heads/660/multi-release-action","pushedAt":"2024-07-02T10:28:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nlordell","name":"Nicholas Rodrigues Lordello","path":"/nlordell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4210206?s=80&v=4"},"commit":{"message":"Improvements from local testing","shortMessageHtmlLink":"Improvements from local testing"}},{"before":"10d349d456abccbb91f1255e7b7973369fbe0011","after":null,"ref":"refs/heads/readme-update","pushedAt":"2024-07-02T10:22:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mmv08","name":"Mikhail","path":"/mmv08","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16622558?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEfcFkwgA","startCursor":null,"endCursor":null}},"title":"Activity · safe-global/safe-deployments"}