-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Expand file tree
/
Copy pathCODEOWNERS
More file actions
265 lines (227 loc) · 16.5 KB
/
CODEOWNERS
File metadata and controls
265 lines (227 loc) · 16.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# Lines starting with '#' are comments.
# GUIDELINES:
# Each line is a file pattern followed by one or more owners.
# Owners bear a responsibility to the organization and the users of this
# application. Repository administrators have the ability to merge pull
# requests that have not yet received the requisite reviews as outlined
# in this file. Do not force merge any PR without confidence that it
# follows all policies or without full understanding of the impact of
# those changes on build, release and publishing outcomes.
# LavaMoat policy changes can highlight security risks. Teams are encouraged to
# audit these changes on their own, and leave their analysis in a comment.
# These codeowners will review this analysis, and review the policy changes in
# further detail if warranted.
lavamoat/ @MetaMask/policy-reviewers
# The offscreen.ts script file that is included in the offscreen document html
# file is responsible, at present, for loading the snaps execution environment
# for MV3. Any changes to this file should require at least one member of the
# snaps development team to review and approve the changes.
app/offscreen/offscreen.ts @MetaMask/core-platform
# The privacy-snapshot.json file includes a list of all hosts that the
# extension communicates with during the E2E test suite runs. It is not a
# complete list of all hosts that the extension communicates with until the E2E
# test suite has full coverage. Anytime the privacy-snapshot file changes,
# extra scrutiny should be applied to the pull request to confirm that it does
# not broaden the number of hosts the extension communicates with without also
# providing a path for users to avoid that communication. MetaMask strives to
# make all such communication opt IN versus opt OUT.
privacy-snapshot.json @MetaMask/extension-privacy-reviewers
# A machine-generated file that tracks circular dependencies in the codebase.
# It is updated using yarn circular-deps:update
development/circular-deps.jsonc @MetaMask/extension-security-team @HowardBraham
development/circular-deps.ts @MetaMask/extension-security-team
/.madgerc @MetaMask/extension-security-team
# The CODEOWNERS file constitutes an agreement amongst organization
# admins and maintainers to restrict approval capabilities to a subset
# of contributors. Modifications to this file result in a modification of
# that agreement and can only be approved by those with the knowledge
# and responsibility to publish libraries under the MetaMask name.
.github/CODEOWNERS @MetaMask/extension-security-team
# For now, restricting approvals inside the .devcontainer folder to devs
# who were involved with the Codespaces project.
.devcontainer/ @MetaMask/extension-platform @HowardBraham
# Design System to own code for the component-library folder
# Slack handle: @metamask-design-system-team | Slack channel: #metamask-design-system
ui/components/component-library @MetaMask/design-system-engineers
tailwind.config.js @MetaMask/design-system-engineers
# The Notifications team is responsible for code related to notifications
# Controllers
**/controllers/metamask-notifications/** @MetaMask/notifications
**/controllers/push-platform-notifications/** @MetaMask/notifications
# UI
**/metamask-notifications/** @MetaMask/notifications
**/multichain/notification*/** @MetaMask/notifications
**/pages/notification*/** @MetaMask/notifications
**/utils/notification.util.ts @MetaMask/notifications
# Accounts team is responsible for code related with: Snap accounts,
# Multichain accounts, Authentication, Backup and sync, Hardware Wallets
# Slack handle: @accounts-team-devs | Slack channel: #metamask-accounts-team
app/scripts/lib/snap-keyring @MetaMask/accounts-engineers
app/scripts/lib/offscreen-bridge @MetaMask/accounts-engineers
ui/pages/create-account @MetaMask/accounts-engineers
**/multichain-accounts/** @MetaMask/accounts-engineers
**/identity/** @MetaMask/accounts-engineers
**/hardware-wallets/** @MetaMask/accounts-engineers
# Swaps-Bridge team to own code for the swaps folder
ui/pages/swaps @MetaMask/swaps-engineers
app/scripts/controllers/swaps @MetaMask/swaps-engineers
# Swaps-Bridge team to own code for the bridge folder
**/bridge/** @MetaMask/swaps-engineers
**/bridge-status/** @MetaMask/swaps-engineers
# Ramps team to own code for the ramps folder
**/ramps/** @MetaMask/ramp
# Perps Team
ui/pages/perps/ @MetaMask/perps
ui/components/app/perps/ @MetaMask/perps
ui/ducks/perps/ @MetaMask/perps
ui/hooks/perps/ @MetaMask/perps
ui/selectors/perps/ @MetaMask/perps
shared/lib/deep-links/routes/perps.ts @MetaMask/perps
test/e2e/tests/perps/ @MetaMask/perps
docs/perps/ @MetaMask/perps
**/perps/** @MetaMask/perps
# Snaps
**/snaps/** @MetaMask/core-platform
shared/constants/permissions.ts @MetaMask/core-platform
ui/helpers/utils/permission.js @MetaMask/core-platform
app/scripts/constants/snaps.ts @MetaMask/core-platform
# Co-owned by Confirmations and Snaps
ui/components/app/metamask-template-renderer @MetaMask/confirmations @MetaMask/core-platform
# Core Extension UX
ui/components/app/whats-new-popup @MetaMask/core-extension-ux
ui/css @MetaMask/core-extension-ux
ui/pages/home @MetaMask/core-extension-ux
ui/pages/core @MetaMask/core-extension-ux
ui/components/multichain/ @MetaMask/core-extension-ux
ui/components/app/transaction-list @MetaMask/core-extension-ux
ui/components/app/transaction-list-item-details @MetaMask/core-extension-ux
ui/components/app/transaction-list-item @MetaMask/core-extension-ux
# Co-owned by accounts and core-extension-ux
ui/components/multichain/multi-srp/ @MetaMask/accounts-engineers @MetaMask/core-extension-ux
ui/components/multichain/account-picker/ @MetaMask/accounts-engineers @MetaMask/core-extension-ux
ui/components/multichain/account-details/ @MetaMask/accounts-engineers @MetaMask/core-extension-ux
ui/components/multichain/account-overview/ @MetaMask/accounts-engineers @MetaMask/core-extension-ux
ui/components/multichain/account-list-item/ @MetaMask/accounts-engineers @MetaMask/core-extension-ux
ui/components/multichain/account-list-menu/ @MetaMask/accounts-engineers @MetaMask/core-extension-ux
ui/components/multichain/account-list-item-menu/ @MetaMask/accounts-engineers @MetaMask/core-extension-ux
# Web3Auth / Onboarding
ui/pages/onboarding-flow @MetaMask/web3auth
# Web3Auth / Shield
app/scripts/controller-init/claims @MetaMask/web3auth
app/scripts/controller-init/shield @MetaMask/web3auth
app/scripts/controller-init/subscription @MetaMask/web3auth
shared/lib/shield.ts @MetaMask/web3auth
ui/components/app/modals/add-funds-modal @MetaMask/web3auth
ui/components/app/shield-entry-modal @MetaMask/web3auth
ui/contexts/claims @MetaMask/web3auth
ui/contexts/shield @MetaMask/web3auth
ui/hooks/claims @MetaMask/web3auth
ui/hooks/subscription @MetaMask/web3auth
ui/pages/shield-plan @MetaMask/web3auth
ui/pages/settings/transaction-shield-tab @MetaMask/web3auth
# Confirmations team to own code for confirmations on UI.
app/scripts/controller-init/confirmations @MetaMask/confirmations
app/scripts/lib/ppom @MetaMask/confirmations
app/scripts/lib/signature @MetaMask/confirmations
app/scripts/lib/transaction @MetaMask/confirmations
ui/pages/confirmations @MetaMask/confirmations
ui/components/multichain/pages/send @MetaMask/confirmations
ui/pages/confirmations/components/confirm/footer @MetaMask/confirmations
ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign-permission @MetaMask/confirmations @MetaMask/delegation
ui/pages/confirmations/components/confirm/footer/shield-footer-coverage-indicator @MetaMask/confirmations @MetaMask/web3auth
ui/pages/confirmations/components/confirm/footer/shield-footer-agreement* @MetaMask/confirmations @MetaMask/web3auth
ui/pages/confirmations/components/confirm/info/shield-subscription-approve @MetaMask/confirmations @MetaMask/web3auth
ui/pages/confirmations/hooks/alerts/useShieldCoverageAlert.test.ts @MetaMask/confirmations @MetaMask/web3auth
ui/pages/confirmations/hooks/alerts/useShieldCoverageAlert.ts @MetaMask/confirmations @MetaMask/web3auth
ui/pages/confirmations/hooks/alerts/transactions/ShieldCoverageAlertMessage.tsx @MetaMask/confirmations @MetaMask/web3auth
ui/pages/confirmations/hooks/transactions/useEnableShieldCoverageChecks.ts @MetaMask/confirmations @MetaMask/web3auth
ui/pages/confirmations/hooks/transactions/useEnableShieldCoverageChecks.test.ts @MetaMask/confirmations @MetaMask/web3auth
# Assets
ui/components/app/detected-token @MetaMask/metamask-assets
ui/components/app/import-token @MetaMask/metamask-assets
ui/components/app/assets @MetaMask/metamask-assets
ui/components/ui/nft-collection-image @MetaMask/metamask-assets
# Smart Transactions
app/scripts/controller-init/smart-transactions @MetaMask/transactions
app/scripts/lib/smart-transaction @MetaMask/transactions
# New networks
shared/lib/multichain/addresses/* @MetaMask/new-networks
# QA Team - E2E Framework
test/e2e/page-objects/ @MetaMask/qa
test/e2e/seeder/ @MetaMask/qa
test/e2e/default-fixture.js @MetaMask/qa
test/e2e/fixture-builder.js @MetaMask/qa
test/e2e/fixture-server.js @MetaMask/qa
test/e2e/helpers.js @MetaMask/qa
test/e2e/mock-e2e-allowlist.js @MetaMask/qa
test/e2e/mock-e2e.js @MetaMask/qa
test/e2e/tests/settings/state-logs-helpers.ts @MetaMask/qa
test/e2e/tests/settings/state-logs.json @MetaMask/qa @MetaMask/extension-privacy-reviewers
test/e2e/tests/privacy/ @MetaMask/qa @MetaMask/extension-privacy-reviewers
/playwright.config.ts @MetaMask/qa @MetaMask/extension-platform
test/e2e/fixtures/onboarding-fixture.json @MetaMask/qa @MetaMask/extension-platform
test/e2e/fixtures/fixture-validation.ts @MetaMask/qa @MetaMask/extension-platform
test/e2e/dist/wallet-fixture-export.spec.ts @MetaMask/qa @MetaMask/extension-platform
test/e2e/dist/wallet-fixture-validation.spec.ts @MetaMask/qa @MetaMask/extension-platform
# Wallet Integrations
app/scripts/lib/rpc-method-middleware @MetaMask/wallet-integrations
shared/lib/caip25-caveat-merger.ts @MetaMask/wallet-integrations
test/e2e/page-objects/benchmark @MetaMask/wallet-integrations
test/e2e/playwright/benchmark @MetaMask/wallet-integrations
test/e2e/flask/multichain-api @MetaMask/wallet-integrations
# TODO CONSOLIDATE THE MIDDLEWARE BELOW INTO THE RPC-METHOD-MIDDLEWARE FOLDER
app/scripts/lib/createRPCMethodTrackingMiddleware.js @MetaMask/wallet-integrations
app/scripts/lib/createMetamaskMiddleware.ts @MetaMask/wallet-integrations
app/scripts/lib/createOnboardingMiddleware.js @MetaMask/wallet-integrations
app/scripts/lib/createEvmMethodsToNonEvmAccountReqFilterMiddleware.ts @MetaMask/wallet-integrations
app/scripts/lib/createDefiReferralMiddleware.ts @MetaMask/wallet-integrations
app/scripts/lib/middleware/ @MetaMask/wallet-integrations
app/scripts/lib/createOriginThrottlingMiddleware.ts @MetaMask/wallet-integrations
app/scripts/lib/createMainFrameOriginMiddleware.ts @MetaMask/wallet-integrations
app/scripts/lib/createTracingMiddleware.ts @MetaMask/wallet-integrations
# mUSD
**/musd/** @MetaMask/earn
shared/lib/deep-links/routes/musd.ts @MetaMask/earn
# Extension Platform owns build, development tooling,
# CI, background process, and platform infrastructure. Changes to
# config files, dotfiles, and core platform files require approval,
# as they affect build and release outcomes and developer experience.
# Lint
/.editorconfig @MetaMask/extension-platform
/.eslintrc.js @MetaMask/extension-platform
/.eslintrc.*.js @MetaMask/extension-platform
/.prettierignore @MetaMask/extension-platform
/.prettierrc.yml @MetaMask/extension-platform
/stylelint.config.js @MetaMask/extension-platform
# Test
/.mocharc.js @MetaMask/extension-platform
/jest.config.js @MetaMask/extension-platform
/jest.*.config.js @MetaMask/extension-platform
# Development Environment
/.nvmrc @MetaMask/extension-platform
/.vscode/ @MetaMask/extension-platform
/.gitattributes @MetaMask/extension-platform
/.gitignore @MetaMask/extension-platform
/.husky/ @MetaMask/extension-platform
/.yarn/ @MetaMask/extension-platform
/.env.yarn @MetaMask/extension-platform
/.yarnrc.yml @MetaMask/extension-platform
# CI
/.github/workflows/ @MetaMask/extension-platform @HowardBraham @itsyoboieltr
/.github/scripts/ @MetaMask/extension-platform @HowardBraham @itsyoboieltr
/.github/rules/ @MetaMask/extension-platform @HowardBraham @itsyoboieltr
/.github/dependabot.yml @MetaMask/extension-platform
development/fitness-functions/ @MetaMask/extension-platform @HowardBraham @itsyoboieltr
development/metamaskbot-build-announce/ @MetaMask/extension-platform @HowardBraham @itsyoboieltr
/codecov.yml @MetaMask/extension-platform
/sonar-project.properties @MetaMask/extension-platform
# Build
development/build/ @MetaMask/extension-platform @itsyoboieltr
development/webpack/ @MetaMask/extension-platform @itsyoboieltr
development/generate-lavamoat-policies.js @MetaMask/extension-platform @itsyoboieltr
/babel.config.js @MetaMask/extension-platform
/tsconfig.json @MetaMask/extension-platform
/tsconfig.*.json @MetaMask/extension-platform
# Background Process
app/scripts/lib/createMetaRPCHandler.js @MetaMask/extension-platform
app/scripts/lib/metaRPCClientFactory.ts @MetaMask/extension-platform