Skip to content

Commit c739215

Browse files
committed
Merge branch 'main' of github.com:Expensify/App into arosiclair-merge-account-reconnect
2 parents f51821e + 2a74195 commit c739215

880 files changed

Lines changed: 23075 additions & 12934 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,5 @@ EXPENSIFY_ACCOUNT_ID_MANAGER_MCTEST=-1
3636
FB_API_KEY=YOUR_API_KEY
3737
FB_APP_ID=YOUR_APP_ID
3838
FB_PROJECT_ID=YOUR_PROJECT_ID
39+
40+
GITHUB_TOKEN=YOUR_TOKEN

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ This is a checklist for PR authors. Please make sure to complete all tasks and c
9292
- [ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. `toggleReport` and not `onIconClick`)
9393
- [ ] I verified that comments were added to code that is not self explanatory
9494
- [ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
95-
- [ ] I verified any copy / text shown in the product is localized by adding it to `src/languages/*` files and using the [translation method](https://github.com/Expensify/App/blob/4bd99402cebdf4d7394e0d1f260879ea238197eb/src/components/withLocalize.js#L60)
95+
- [ ] I verified any copy / text shown in the product is localized by adding it to `src/languages/*` files and using the [translation method](https://github.com/Expensify/App/blob/4510fc76bbf5df699a2575bfb49a276af90f3ed7/src/components/LocaleContextProvider.tsx#L80)
9696
- [ ] If any non-english text was added/modified, I used [JaimeGPT](https://chatgpt.com/g/g-2dgOQl5VM-english-to-spanish-translator-aka-jaimegpt) to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
97-
- [ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the [localization methods](https://github.com/Expensify/App/blob/4bd99402cebdf4d7394e0d1f260879ea238197eb/src/components/withLocalize.js#L60-L68)
97+
- [ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the [localization methods](https://github.com/Expensify/App/blob/4510fc76bbf5df699a2575bfb49a276af90f3ed7/src/components/LocaleContextProvider.tsx#L116-L123)
9898
- [ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
9999
- [ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
100100
- [ ] I verified the JSDocs style guidelines (in [`STYLE.md`](https://github.com/Expensify/App/blob/main/contributingGuides/STYLE.md#jsdocs)) were followed

.github/actions/javascript/authorChecklist/categories/newComponentCategory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ async function detectReactComponentInFile(filename: string): Promise<boolean | u
9191
};
9292
try {
9393
const {data} = await GithubUtils.octokit.repos.getContent(params);
94-
const content = nodeBase64ToUtf8('content' in data ? data?.content ?? '' : '');
94+
const content = nodeBase64ToUtf8('content' in data ? (data?.content ?? '') : '');
9595
return detectReactComponent(content, filename);
9696
} catch (error) {
9797
console.error('An unknown error occurred with the GitHub API: ', error, params);

.github/actions/javascript/authorChecklist/index.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15419,7 +15419,7 @@ async function detectReactComponentInFile(filename) {
1541915419
};
1542015420
try {
1542115421
const { data } = await GithubUtils_1.default.octokit.repos.getContent(params);
15422-
const content = nodeBase64ToUtf8('content' in data ? data?.content ?? '' : '');
15422+
const content = nodeBase64ToUtf8('content' in data ? (data?.content ?? '') : '');
1542315423
return detectReactComponent(content, filename);
1542415424
}
1542515425
catch (error) {
@@ -15653,7 +15653,6 @@ class GithubUtils {
1565315653
PRList: this.getStagingDeployCashPRList(issue),
1565415654
deployBlockers: this.getStagingDeployCashDeployBlockers(issue),
1565515655
internalQAPRList: this.getStagingDeployCashInternalQA(issue),
15656-
isTimingDashboardChecked: issue.body ? /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body) : false,
1565715656
isFirebaseChecked: issue.body ? /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body) : false,
1565815657
isGHStatusChecked: issue.body ? /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body) : false,
1565915658
version,
@@ -15723,7 +15722,7 @@ class GithubUtils {
1572315722
/**
1572415723
* Generate the issue body and assignees for a StagingDeployCash.
1572515724
*/
15726-
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, isGHStatusChecked = false) {
15725+
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isFirebaseChecked = false, isGHStatusChecked = false) {
1572715726
return this.fetchAllPullRequests(PRList.map((pr) => this.getPullRequestNumberFromURL(pr)))
1572815727
.then((data) => {
1572915728
const internalQAPRs = Array.isArray(data) ? data.filter((pr) => !(0, EmptyObject_1.isEmptyObject)(pr.labels.find((item) => item.name === CONST_1.default.LABELS.INTERNAL_QA))) : [];
@@ -15781,8 +15780,6 @@ class GithubUtils {
1578115780
}
1578215781
issueBody += '**Deployer verifications:**';
1578315782
// eslint-disable-next-line max-len
15784-
issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`;
15785-
// eslint-disable-next-line max-len
1578615783
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/ios:com.expensify.expensifylite/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
1578715784
// eslint-disable-next-line max-len
1578815785
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/android:org.me.mobiexpensifyg/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;

.github/actions/javascript/awaitStagingDeploys/index.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12446,7 +12446,6 @@ class GithubUtils {
1244612446
PRList: this.getStagingDeployCashPRList(issue),
1244712447
deployBlockers: this.getStagingDeployCashDeployBlockers(issue),
1244812448
internalQAPRList: this.getStagingDeployCashInternalQA(issue),
12449-
isTimingDashboardChecked: issue.body ? /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body) : false,
1245012449
isFirebaseChecked: issue.body ? /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body) : false,
1245112450
isGHStatusChecked: issue.body ? /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body) : false,
1245212451
version,
@@ -12516,7 +12515,7 @@ class GithubUtils {
1251612515
/**
1251712516
* Generate the issue body and assignees for a StagingDeployCash.
1251812517
*/
12519-
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, isGHStatusChecked = false) {
12518+
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isFirebaseChecked = false, isGHStatusChecked = false) {
1252012519
return this.fetchAllPullRequests(PRList.map((pr) => this.getPullRequestNumberFromURL(pr)))
1252112520
.then((data) => {
1252212521
const internalQAPRs = Array.isArray(data) ? data.filter((pr) => !(0, EmptyObject_1.isEmptyObject)(pr.labels.find((item) => item.name === CONST_1.default.LABELS.INTERNAL_QA))) : [];
@@ -12574,8 +12573,6 @@ class GithubUtils {
1257412573
}
1257512574
issueBody += '**Deployer verifications:**';
1257612575
// eslint-disable-next-line max-len
12577-
issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`;
12578-
// eslint-disable-next-line max-len
1257912576
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/ios:com.expensify.expensifylite/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
1258012577
// eslint-disable-next-line max-len
1258112578
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/android:org.me.mobiexpensifyg/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;

.github/actions/javascript/checkAndroidStatus/index.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -737146,7 +737146,6 @@ class GithubUtils {
737146737146
PRList: this.getStagingDeployCashPRList(issue),
737147737147
deployBlockers: this.getStagingDeployCashDeployBlockers(issue),
737148737148
internalQAPRList: this.getStagingDeployCashInternalQA(issue),
737149-
isTimingDashboardChecked: issue.body ? /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body) : false,
737150737149
isFirebaseChecked: issue.body ? /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body) : false,
737151737150
isGHStatusChecked: issue.body ? /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body) : false,
737152737151
version,
@@ -737216,7 +737215,7 @@ class GithubUtils {
737216737215
/**
737217737216
* Generate the issue body and assignees for a StagingDeployCash.
737218737217
*/
737219-
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, isGHStatusChecked = false) {
737218+
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isFirebaseChecked = false, isGHStatusChecked = false) {
737220737219
return this.fetchAllPullRequests(PRList.map((pr) => this.getPullRequestNumberFromURL(pr)))
737221737220
.then((data) => {
737222737221
const internalQAPRs = Array.isArray(data) ? data.filter((pr) => !(0, EmptyObject_1.isEmptyObject)(pr.labels.find((item) => item.name === CONST_1.default.LABELS.INTERNAL_QA))) : [];
@@ -737274,8 +737273,6 @@ class GithubUtils {
737274737273
}
737275737274
issueBody += '**Deployer verifications:**';
737276737275
// eslint-disable-next-line max-len
737277-
issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`;
737278-
// eslint-disable-next-line max-len
737279737276
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/ios:com.expensify.expensifylite/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
737280737277
// eslint-disable-next-line max-len
737281737278
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/android:org.me.mobiexpensifyg/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;

.github/actions/javascript/checkDeployBlockers/index.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11729,7 +11729,6 @@ class GithubUtils {
1172911729
PRList: this.getStagingDeployCashPRList(issue),
1173011730
deployBlockers: this.getStagingDeployCashDeployBlockers(issue),
1173111731
internalQAPRList: this.getStagingDeployCashInternalQA(issue),
11732-
isTimingDashboardChecked: issue.body ? /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body) : false,
1173311732
isFirebaseChecked: issue.body ? /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body) : false,
1173411733
isGHStatusChecked: issue.body ? /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body) : false,
1173511734
version,
@@ -11799,7 +11798,7 @@ class GithubUtils {
1179911798
/**
1180011799
* Generate the issue body and assignees for a StagingDeployCash.
1180111800
*/
11802-
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, isGHStatusChecked = false) {
11801+
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isFirebaseChecked = false, isGHStatusChecked = false) {
1180311802
return this.fetchAllPullRequests(PRList.map((pr) => this.getPullRequestNumberFromURL(pr)))
1180411803
.then((data) => {
1180511804
const internalQAPRs = Array.isArray(data) ? data.filter((pr) => !(0, EmptyObject_1.isEmptyObject)(pr.labels.find((item) => item.name === CONST_1.default.LABELS.INTERNAL_QA))) : [];
@@ -11857,8 +11856,6 @@ class GithubUtils {
1185711856
}
1185811857
issueBody += '**Deployer verifications:**';
1185911858
// eslint-disable-next-line max-len
11860-
issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`;
11861-
// eslint-disable-next-line max-len
1186211859
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/ios:com.expensify.expensifylite/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
1186311860
// eslint-disable-next-line max-len
1186411861
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/android:org.me.mobiexpensifyg/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;

.github/actions/javascript/createOrUpdateStagingDeploy/createOrUpdateStagingDeploy.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ async function run(): Promise<IssuesCreateResponse | void> {
117117
deployBlockers.map((blocker) => blocker.url),
118118
deployBlockers.filter((blocker) => blocker.isResolved).map((blocker) => blocker.url),
119119
currentChecklistData?.internalQAPRList.filter((pr) => pr.isResolved).map((pr) => pr.url),
120-
didVersionChange ? false : currentChecklistData.isTimingDashboardChecked,
121120
didVersionChange ? false : currentChecklistData.isFirebaseChecked,
122121
didVersionChange ? false : currentChecklistData.isGHStatusChecked,
123122
);

0 commit comments

Comments
 (0)