diff --git a/.github/actions/javascript/authorChecklist/index.js b/.github/actions/javascript/authorChecklist/index.js
index a73b4db5673a..1ca5748f92f2 100644
--- a/.github/actions/javascript/authorChecklist/index.js
+++ b/.github/actions/javascript/authorChecklist/index.js
@@ -355,7 +355,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/awaitStagingDeploys/index.js b/.github/actions/javascript/awaitStagingDeploys/index.js
index 6ddacc8d9d4c..911df2ed8deb 100644
--- a/.github/actions/javascript/awaitStagingDeploys/index.js
+++ b/.github/actions/javascript/awaitStagingDeploys/index.js
@@ -388,7 +388,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/checkDeployBlockers/index.js b/.github/actions/javascript/checkDeployBlockers/index.js
index d323bdbe4104..60656b6b3bad 100644
--- a/.github/actions/javascript/checkDeployBlockers/index.js
+++ b/.github/actions/javascript/checkDeployBlockers/index.js
@@ -358,7 +358,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/createOrUpdateStagingDeploy/index.js b/.github/actions/javascript/createOrUpdateStagingDeploy/index.js
index 4465caa9b1ec..a0f2f1d9880e 100644
--- a/.github/actions/javascript/createOrUpdateStagingDeploy/index.js
+++ b/.github/actions/javascript/createOrUpdateStagingDeploy/index.js
@@ -585,7 +585,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/getDeployPullRequestList/index.js b/.github/actions/javascript/getDeployPullRequestList/index.js
index 3776b7136c4e..b62a9df9ba18 100644
--- a/.github/actions/javascript/getDeployPullRequestList/index.js
+++ b/.github/actions/javascript/getDeployPullRequestList/index.js
@@ -518,7 +518,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/getPullRequestDetails/index.js b/.github/actions/javascript/getPullRequestDetails/index.js
index 2fa9ade15004..9001790a2f72 100644
--- a/.github/actions/javascript/getPullRequestDetails/index.js
+++ b/.github/actions/javascript/getPullRequestDetails/index.js
@@ -433,7 +433,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/getReleaseBody/index.js b/.github/actions/javascript/getReleaseBody/index.js
index cd53631fc847..d97a13e312b3 100644
--- a/.github/actions/javascript/getReleaseBody/index.js
+++ b/.github/actions/javascript/getReleaseBody/index.js
@@ -347,7 +347,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/isPullRequestMergeable/index.js b/.github/actions/javascript/isPullRequestMergeable/index.js
index 05b5db117353..bc2ba093780a 100644
--- a/.github/actions/javascript/isPullRequestMergeable/index.js
+++ b/.github/actions/javascript/isPullRequestMergeable/index.js
@@ -379,7 +379,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/isStagingDeployLocked/index.js b/.github/actions/javascript/isStagingDeployLocked/index.js
index 672da33c8977..269d34c04009 100644
--- a/.github/actions/javascript/isStagingDeployLocked/index.js
+++ b/.github/actions/javascript/isStagingDeployLocked/index.js
@@ -311,7 +311,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/markPullRequestsAsDeployed/index.js b/.github/actions/javascript/markPullRequestsAsDeployed/index.js
index e05506562960..85e2903cb3b6 100644
--- a/.github/actions/javascript/markPullRequestsAsDeployed/index.js
+++ b/.github/actions/javascript/markPullRequestsAsDeployed/index.js
@@ -480,7 +480,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/reopenIssueWithComment/index.js b/.github/actions/javascript/reopenIssueWithComment/index.js
index d52c4e72deb2..79fbd049fcdb 100644
--- a/.github/actions/javascript/reopenIssueWithComment/index.js
+++ b/.github/actions/javascript/reopenIssueWithComment/index.js
@@ -322,7 +322,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/reviewerChecklist/index.js b/.github/actions/javascript/reviewerChecklist/index.js
index 0b9cf1f1dc48..71850e362444 100644
--- a/.github/actions/javascript/reviewerChecklist/index.js
+++ b/.github/actions/javascript/reviewerChecklist/index.js
@@ -369,7 +369,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/triggerWorkflowAndWait/index.js b/.github/actions/javascript/triggerWorkflowAndWait/index.js
index 0ad516a43fce..5c225c3ee8ee 100644
--- a/.github/actions/javascript/triggerWorkflowAndWait/index.js
+++ b/.github/actions/javascript/triggerWorkflowAndWait/index.js
@@ -491,7 +491,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/actions/javascript/verifySignedCommits/index.js b/.github/actions/javascript/verifySignedCommits/index.js
index 8406bec365c7..d74280e4beca 100644
--- a/.github/actions/javascript/verifySignedCommits/index.js
+++ b/.github/actions/javascript/verifySignedCommits/index.js
@@ -311,7 +311,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/.github/libs/GithubUtils.js b/.github/libs/GithubUtils.js
index fa35239c83b5..d3f419258f04 100644
--- a/.github/libs/GithubUtils.js
+++ b/.github/libs/GithubUtils.js
@@ -271,7 +271,7 @@ class GithubUtils {
console.log('Found the following Internal QA PRs:', internalQAPRMap);
const noQAPRs = _.pluck(
- _.filter(data, PR => (PR.title || '').toUpperCase().startsWith('[NO QA]')),
+ _.filter(data, PR => /\[No\s?QA]/i.test(PR.title)),
'html_url',
);
console.log('Found the following NO QA PRs:', noQAPRs);
diff --git a/android/app/build.gradle b/android/app/build.gradle
index f34687ffe4ea..fa9594147f77 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -156,8 +156,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
- versionCode 1001022800
- versionName "1.2.28-0"
+ versionCode 1001022801
+ versionName "1.2.28-1"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist
index 0b9014614026..65e1a758587c 100644
--- a/ios/NewExpensify/Info.plist
+++ b/ios/NewExpensify/Info.plist
@@ -30,7 +30,7 @@
CFBundleVersion
- 1.2.28.0
+ 1.2.28.1
ITSAppUsesNonExemptEncryption
LSApplicationQueriesSchemes
diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist
index 772ca9979439..afa7cdb7e81f 100644
--- a/ios/NewExpensifyTests/Info.plist
+++ b/ios/NewExpensifyTests/Info.plist
@@ -19,6 +19,6 @@
CFBundleSignature
????
CFBundleVersion
- 1.2.28.0
+ 1.2.28.1
diff --git a/package-lock.json b/package-lock.json
index ef9033ccfa7e..fe3867adfcb4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "new.expensify",
- "version": "1.2.28-0",
+ "version": "1.2.28-1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "new.expensify",
- "version": "1.2.28-0",
+ "version": "1.2.28-1",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index b62d5a039e7f..693f67b0465f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
- "version": "1.2.28-0",
+ "version": "1.2.28-1",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
diff --git a/tests/unit/GithubUtilsTest.js b/tests/unit/GithubUtilsTest.js
index 1c34605c0117..61d2574ad41f 100644
--- a/tests/unit/GithubUtilsTest.js
+++ b/tests/unit/GithubUtilsTest.js
@@ -290,14 +290,14 @@ describe('GithubUtils', () => {
},
{
number: 5,
- title: '[No QA] Test No QA PR uppercase',
+ title: '[NO QA] Test No QA PR uppercase',
html_url: 'https://github.com/Expensify/App/pull/5',
user: {login: 'testUser'},
labels: [],
},
{
number: 6,
- title: '[No QA] Test No QA PR Title Case',
+ title: '[NoQa] Test No QA PR Title Case',
html_url: 'https://github.com/Expensify/App/pull/6',
user: {login: 'testUser'},
labels: [],