Skip to content

Commit d330b43

Browse files
committed
Merge branch 'main' into issue-65402
2 parents 92c5860 + 3c1d3c5 commit d330b43

1,056 files changed

Lines changed: 59567 additions & 14070 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.

.eslintrc.changed.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module.exports = {
88
'deprecation/deprecation': 'error',
99
'rulesdir/no-default-id-values': 'error',
1010
'rulesdir/provide-canBeMissing-in-useOnyx': 'error',
11+
'rulesdir/no-unstable-hook-defaults': 'error',
1112
'no-restricted-syntax': [
1213
'error',
1314
{

.eslintrc.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ module.exports = {
219219
'es/no-optional-chaining': 'off',
220220
'deprecation/deprecation': 'off',
221221
'arrow-body-style': 'off',
222+
'no-continue': 'off',
222223

223224
// Import specific rules
224225
'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
@@ -236,6 +237,7 @@ module.exports = {
236237
'react-native-a11y/has-accessibility-hint': ['off'],
237238
'react/require-default-props': 'off',
238239
'react/prop-types': 'off',
240+
'react/jsx-key': 'error',
239241
'react/jsx-no-constructed-context-values': 'error',
240242
'react-native-a11y/has-valid-accessibility-descriptors': [
241243
'error',

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

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15560,13 +15560,35 @@ const CONST = {
1556015560
HELP_WANTED: 'Help Wanted',
1556115561
CP_STAGING: 'CP Staging',
1556215562
},
15563+
STATE: {
15564+
OPEN: 'open',
15565+
},
15566+
COMMENT: {
15567+
TYPE_BOT: 'Bot',
15568+
NAME_GITHUB_ACTIONS: 'github-actions',
15569+
},
1556315570
ACTIONS: {
1556415571
CREATED: 'created',
1556515572
EDITED: 'edited',
1556615573
},
1556715574
EVENTS: {
1556815575
ISSUE_COMMENT: 'issue_comment',
1556915576
},
15577+
RUN_EVENT: {
15578+
PULL_REQUEST: 'pull_request',
15579+
PULL_REQUEST_TARGET: 'pull_request_target',
15580+
PUSH: 'push',
15581+
},
15582+
RUN_STATUS: {
15583+
COMPLETED: 'completed',
15584+
IN_PROGRESS: 'in_progress',
15585+
QUEUED: 'queued',
15586+
},
15587+
RUN_STATUS_CONCLUSION: {
15588+
SUCCESS: 'success',
15589+
},
15590+
TEST_WORKFLOW_NAME: 'Jest Unit Tests',
15591+
TEST_WORKFLOW_PATH: '.github/workflows/test.yml',
1557015592
PROPOSAL_KEYWORD: 'Proposal',
1557115593
DATE_FORMAT_STRING: 'yyyy-MM-dd',
1557215594
PULL_REQUEST_REGEX: new RegExp(`${GITHUB_BASE_URL_REGEX.source}/.*/.*/pull/([0-9]+).*`),
@@ -15578,6 +15600,7 @@ const CONST = {
1557815600
NO_ACTION: 'NO_ACTION',
1557915601
ACTION_EDIT: 'ACTION_EDIT',
1558015602
ACTION_REQUIRED: 'ACTION_REQUIRED',
15603+
ACTION_HIDE_DUPLICATE: 'ACTION_HIDE_DUPLICATE',
1558115604
};
1558215605
exports["default"] = CONST;
1558315606

@@ -15834,7 +15857,10 @@ class GithubUtils {
1583415857
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1583515858
// Tag version and comparison URL
1583615859
// eslint-disable-next-line max-len
15837-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
15860+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n\r\n`;
15861+
// Warn deployers about potential bugs with the new process
15862+
issueBody +=
15863+
'> 💡 **Deployer FYI:** This checklist was generated using a new process. PR list from original method and detail logging can be found in the most recent [deploy workflow](https://github.com/Expensify/App/actions/workflows/deploy.yml) labeled `staging`, in the `createChecklist` action. Please tag @Julesssss with any issues.\r\n\r\n';
1583815864
// PR list
1583915865
if (sortedPRList.length > 0) {
1584015866
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';
@@ -15938,6 +15964,14 @@ class GithubUtils {
1593815964
per_page: 100,
1593915965
}, (response) => response.data.map((comment) => comment.body));
1594015966
}
15967+
static getAllCommentDetails(issueNumber) {
15968+
return this.paginate(this.octokit.issues.listComments, {
15969+
owner: CONST_1.default.GITHUB_OWNER,
15970+
repo: CONST_1.default.APP_REPO,
15971+
issue_number: issueNumber,
15972+
per_page: 100,
15973+
}, (response) => response.data);
15974+
}
1594115975
/**
1594215976
* Create comment on pull request
1594315977
*/
@@ -15964,6 +15998,17 @@ class GithubUtils {
1596415998
})
1596515999
.then((response) => response.data.workflow_runs.at(0)?.id ?? -1);
1596616000
}
16001+
/**
16002+
* List workflow runs for the repository.
16003+
*/
16004+
static async listWorkflowRunsForRepo(options = {}) {
16005+
return this.octokit.actions.listWorkflowRunsForRepo({
16006+
owner: CONST_1.default.GITHUB_OWNER,
16007+
repo: CONST_1.default.APP_REPO,
16008+
per_page: options.per_page ?? 50,
16009+
...(options.status && { status: options.status }),
16010+
});
16011+
}
1596716012
/**
1596816013
* Generate the URL of an New Expensify pull request given the PR number.
1596916014
*/

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

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12278,7 +12278,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
1227812278
return result;
1227912279
};
1228012280
Object.defineProperty(exports, "__esModule", ({ value: true }));
12281-
exports.getStringInput = exports.getJSONInput = void 0;
12281+
exports.convertToNumber = exports.getStringInput = exports.getJSONInput = void 0;
1228212282
const core = __importStar(__nccwpck_require__(2186));
1228312283
/**
1228412284
* Safely parse a JSON input to a GitHub Action.
@@ -12307,6 +12307,23 @@ function getStringInput(name, options, defaultValue) {
1230712307
return input;
1230812308
}
1230912309
exports.getStringInput = getStringInput;
12310+
/**
12311+
* Converts a value to a number, returning 0 for non-numeric values.
12312+
*/
12313+
function convertToNumber(value) {
12314+
switch (typeof value) {
12315+
case 'number':
12316+
return value;
12317+
case 'string':
12318+
if (!Number.isNaN(Number(value))) {
12319+
return Number(value);
12320+
}
12321+
return 0;
12322+
default:
12323+
return 0;
12324+
}
12325+
}
12326+
exports.convertToNumber = convertToNumber;
1231012327

1231112328

1231212329
/***/ }),
@@ -12334,13 +12351,35 @@ const CONST = {
1233412351
HELP_WANTED: 'Help Wanted',
1233512352
CP_STAGING: 'CP Staging',
1233612353
},
12354+
STATE: {
12355+
OPEN: 'open',
12356+
},
12357+
COMMENT: {
12358+
TYPE_BOT: 'Bot',
12359+
NAME_GITHUB_ACTIONS: 'github-actions',
12360+
},
1233712361
ACTIONS: {
1233812362
CREATED: 'created',
1233912363
EDITED: 'edited',
1234012364
},
1234112365
EVENTS: {
1234212366
ISSUE_COMMENT: 'issue_comment',
1234312367
},
12368+
RUN_EVENT: {
12369+
PULL_REQUEST: 'pull_request',
12370+
PULL_REQUEST_TARGET: 'pull_request_target',
12371+
PUSH: 'push',
12372+
},
12373+
RUN_STATUS: {
12374+
COMPLETED: 'completed',
12375+
IN_PROGRESS: 'in_progress',
12376+
QUEUED: 'queued',
12377+
},
12378+
RUN_STATUS_CONCLUSION: {
12379+
SUCCESS: 'success',
12380+
},
12381+
TEST_WORKFLOW_NAME: 'Jest Unit Tests',
12382+
TEST_WORKFLOW_PATH: '.github/workflows/test.yml',
1234412383
PROPOSAL_KEYWORD: 'Proposal',
1234512384
DATE_FORMAT_STRING: 'yyyy-MM-dd',
1234612385
PULL_REQUEST_REGEX: new RegExp(`${GITHUB_BASE_URL_REGEX.source}/.*/.*/pull/([0-9]+).*`),
@@ -12352,6 +12391,7 @@ const CONST = {
1235212391
NO_ACTION: 'NO_ACTION',
1235312392
ACTION_EDIT: 'ACTION_EDIT',
1235412393
ACTION_REQUIRED: 'ACTION_REQUIRED',
12394+
ACTION_HIDE_DUPLICATE: 'ACTION_HIDE_DUPLICATE',
1235512395
};
1235612396
exports["default"] = CONST;
1235712397

@@ -12608,7 +12648,10 @@ class GithubUtils {
1260812648
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1260912649
// Tag version and comparison URL
1261012650
// eslint-disable-next-line max-len
12611-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
12651+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n\r\n`;
12652+
// Warn deployers about potential bugs with the new process
12653+
issueBody +=
12654+
'> 💡 **Deployer FYI:** This checklist was generated using a new process. PR list from original method and detail logging can be found in the most recent [deploy workflow](https://github.com/Expensify/App/actions/workflows/deploy.yml) labeled `staging`, in the `createChecklist` action. Please tag @Julesssss with any issues.\r\n\r\n';
1261212655
// PR list
1261312656
if (sortedPRList.length > 0) {
1261412657
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';
@@ -12712,6 +12755,14 @@ class GithubUtils {
1271212755
per_page: 100,
1271312756
}, (response) => response.data.map((comment) => comment.body));
1271412757
}
12758+
static getAllCommentDetails(issueNumber) {
12759+
return this.paginate(this.octokit.issues.listComments, {
12760+
owner: CONST_1.default.GITHUB_OWNER,
12761+
repo: CONST_1.default.APP_REPO,
12762+
issue_number: issueNumber,
12763+
per_page: 100,
12764+
}, (response) => response.data);
12765+
}
1271512766
/**
1271612767
* Create comment on pull request
1271712768
*/
@@ -12738,6 +12789,17 @@ class GithubUtils {
1273812789
})
1273912790
.then((response) => response.data.workflow_runs.at(0)?.id ?? -1);
1274012791
}
12792+
/**
12793+
* List workflow runs for the repository.
12794+
*/
12795+
static async listWorkflowRunsForRepo(options = {}) {
12796+
return this.octokit.actions.listWorkflowRunsForRepo({
12797+
owner: CONST_1.default.GITHUB_OWNER,
12798+
repo: CONST_1.default.APP_REPO,
12799+
per_page: options.per_page ?? 50,
12800+
...(options.status && { status: options.status }),
12801+
});
12802+
}
1274112803
/**
1274212804
* Generate the URL of an New Expensify pull request given the PR number.
1274312805
*/

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

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737053,13 +737053,35 @@ const CONST = {
737053737053
HELP_WANTED: 'Help Wanted',
737054737054
CP_STAGING: 'CP Staging',
737055737055
},
737056+
STATE: {
737057+
OPEN: 'open',
737058+
},
737059+
COMMENT: {
737060+
TYPE_BOT: 'Bot',
737061+
NAME_GITHUB_ACTIONS: 'github-actions',
737062+
},
737056737063
ACTIONS: {
737057737064
CREATED: 'created',
737058737065
EDITED: 'edited',
737059737066
},
737060737067
EVENTS: {
737061737068
ISSUE_COMMENT: 'issue_comment',
737062737069
},
737070+
RUN_EVENT: {
737071+
PULL_REQUEST: 'pull_request',
737072+
PULL_REQUEST_TARGET: 'pull_request_target',
737073+
PUSH: 'push',
737074+
},
737075+
RUN_STATUS: {
737076+
COMPLETED: 'completed',
737077+
IN_PROGRESS: 'in_progress',
737078+
QUEUED: 'queued',
737079+
},
737080+
RUN_STATUS_CONCLUSION: {
737081+
SUCCESS: 'success',
737082+
},
737083+
TEST_WORKFLOW_NAME: 'Jest Unit Tests',
737084+
TEST_WORKFLOW_PATH: '.github/workflows/test.yml',
737063737085
PROPOSAL_KEYWORD: 'Proposal',
737064737086
DATE_FORMAT_STRING: 'yyyy-MM-dd',
737065737087
PULL_REQUEST_REGEX: new RegExp(`${GITHUB_BASE_URL_REGEX.source}/.*/.*/pull/([0-9]+).*`),
@@ -737071,6 +737093,7 @@ const CONST = {
737071737093
NO_ACTION: 'NO_ACTION',
737072737094
ACTION_EDIT: 'ACTION_EDIT',
737073737095
ACTION_REQUIRED: 'ACTION_REQUIRED',
737096+
ACTION_HIDE_DUPLICATE: 'ACTION_HIDE_DUPLICATE',
737074737097
};
737075737098
exports["default"] = CONST;
737076737099

@@ -737327,7 +737350,10 @@ class GithubUtils {
737327737350
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
737328737351
// Tag version and comparison URL
737329737352
// eslint-disable-next-line max-len
737330-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
737353+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n\r\n`;
737354+
// Warn deployers about potential bugs with the new process
737355+
issueBody +=
737356+
'> 💡 **Deployer FYI:** This checklist was generated using a new process. PR list from original method and detail logging can be found in the most recent [deploy workflow](https://github.com/Expensify/App/actions/workflows/deploy.yml) labeled `staging`, in the `createChecklist` action. Please tag @Julesssss with any issues.\r\n\r\n';
737331737357
// PR list
737332737358
if (sortedPRList.length > 0) {
737333737359
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';
@@ -737431,6 +737457,14 @@ class GithubUtils {
737431737457
per_page: 100,
737432737458
}, (response) => response.data.map((comment) => comment.body));
737433737459
}
737460+
static getAllCommentDetails(issueNumber) {
737461+
return this.paginate(this.octokit.issues.listComments, {
737462+
owner: CONST_1.default.GITHUB_OWNER,
737463+
repo: CONST_1.default.APP_REPO,
737464+
issue_number: issueNumber,
737465+
per_page: 100,
737466+
}, (response) => response.data);
737467+
}
737434737468
/**
737435737469
* Create comment on pull request
737436737470
*/
@@ -737457,6 +737491,17 @@ class GithubUtils {
737457737491
})
737458737492
.then((response) => response.data.workflow_runs.at(0)?.id ?? -1);
737459737493
}
737494+
/**
737495+
* List workflow runs for the repository.
737496+
*/
737497+
static async listWorkflowRunsForRepo(options = {}) {
737498+
return this.octokit.actions.listWorkflowRunsForRepo({
737499+
owner: CONST_1.default.GITHUB_OWNER,
737500+
repo: CONST_1.default.APP_REPO,
737501+
per_page: options.per_page ?? 50,
737502+
...(options.status && { status: options.status }),
737503+
});
737504+
}
737460737505
/**
737461737506
* Generate the URL of an New Expensify pull request given the PR number.
737462737507
*/

0 commit comments

Comments
 (0)