Skip to content

Commit 637c55a

Browse files
committed
Merge branch 'main' into fix/53451
2 parents 75bb9ab + 628a915 commit 637c55a

File tree

573 files changed

+10876
-7185
lines changed

Some content is hidden

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

573 files changed

+10876
-7185
lines changed

.env.example

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
ENVIRONMENT=development
12
NEW_EXPENSIFY_URL=https://new.expensify.com/
23
SECURE_EXPENSIFY_URL=https://secure.expensify.com.dev/
34
EXPENSIFY_URL=https://www.expensify.com.dev/

.github/actionlint.yaml

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,13 @@ self-hosted-runner:
44
- ubuntu-latest-xl
55
- macos-15-large
66
- macos-15-xlarge
7-
- ubuntu-latest-reassure-tests
87
- macos-12
8+
- ubuntu-20.04-v4
9+
10+
paths:
11+
'**/*':
12+
ignore:
13+
# This is meant to be a temporary workaround for a bug in actionslint. Upstream:
14+
# - issue: https://github.com/rhysd/actionlint/issues/511
15+
# - PR: https://github.com/rhysd/actionlint/pull/513
16+
- '"env" is not allowed in "runs" section because .* is a Composite action.*'

.github/actions/composite/setupGitForOSBotify/action.yml

+13-10
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,28 @@ name: 'Setup Git for OSBotify'
22
description: 'Setup Git for OSBotify'
33

44
inputs:
5-
GPG_PASSPHRASE:
6-
description: 'Passphrase used to decrypt GPG key'
5+
OP_VAULT:
6+
description: 1Password vault where OSBotify GPG key can be found
7+
required: true
8+
OP_SERVICE_ACCOUNT_TOKEN:
9+
description: "1Password service account token"
710
required: true
811

912
runs:
1013
using: composite
1114
steps:
12-
- name: Decrypt OSBotify GPG key
13-
run: cd .github/workflows && gpg --quiet --batch --yes --decrypt --passphrase=${{ inputs.GPG_PASSPHRASE }} --output OSBotify-private-key.asc OSBotify-private-key.asc.gpg
15+
- name: Install 1Password CLI
16+
uses: 1password/install-cli-action@v1
17+
18+
- name: Load files from 1Password
1419
shell: bash
20+
env:
21+
OP_SERVICE_ACCOUNT_TOKEN: ${{ inputs.OP_SERVICE_ACCOUNT_TOKEN }}
22+
run: op read "op://${{ inputs.OP_VAULT }}/OSBotify-private-key.asc/OSBotify-private-key.asc" --force --out-file ./OSBotify-private-key.asc
1523

1624
- name: Import OSBotify GPG Key
1725
shell: bash
18-
run: cd .github/workflows && gpg --import OSBotify-private-key.asc
26+
run: gpg --import OSBotify-private-key.asc
1927

2028
- name: Set up git for OSBotify
2129
shell: bash
@@ -24,8 +32,3 @@ runs:
2432
git config --global commit.gpgsign true
2533
git config --global user.name OSBotify
2634
git config --global user.email infra+osbotify@expensify.com
27-
28-
- name: Enable debug logs for git
29-
shell: bash
30-
if: runner.debug == '1'
31-
run: echo "GIT_TRACE=true" >> "$GITHUB_ENV"

.github/actions/composite/setupGitForOSBotifyApp/action.yml

+12-24
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ name: "Setup Git for OSBotify"
55
description: "Setup Git for OSBotify"
66

77
inputs:
8-
GPG_PASSPHRASE:
9-
description: "Passphrase used to decrypt GPG key"
8+
OP_VAULT:
9+
description: 1Password vault where OSBotify GPG key can be found
10+
required: true
11+
OP_SERVICE_ACCOUNT_TOKEN:
12+
description: "1Password service account token"
1013
required: true
1114
OS_BOTIFY_APP_ID:
1215
description: "Application ID for OS Botify"
@@ -24,28 +27,18 @@ outputs:
2427
runs:
2528
using: composite
2629
steps:
27-
- name: Check if gpg encrypted private key is present
28-
id: key_check
29-
shell: bash
30-
run: |
31-
if [[ -f .github/workflows/OSBotify-private-key.asc.gpg ]]; then
32-
echo "key_exists=true" >> "$GITHUB_OUTPUT"
33-
fi
30+
- name: Install 1Password CLI
31+
uses: 1password/install-cli-action@v1
3432

35-
- name: Checkout
36-
uses: actions/checkout@v4
37-
if: steps.key_check.outputs.key_exists != 'true'
38-
with:
39-
sparse-checkout: |
40-
.github
41-
42-
- name: Decrypt OSBotify GPG key
43-
run: cd .github/workflows && gpg --quiet --batch --yes --decrypt --passphrase=${{ inputs.GPG_PASSPHRASE }} --output OSBotify-private-key.asc OSBotify-private-key.asc.gpg
33+
- name: Load files from 1Password
4434
shell: bash
35+
env:
36+
OP_SERVICE_ACCOUNT_TOKEN: ${{ inputs.OP_SERVICE_ACCOUNT_TOKEN }}
37+
run: op read "op://${{ inputs.OP_VAULT }}/OSBotify-private-key.asc/OSBotify-private-key.asc" --force --out-file ./OSBotify-private-key.asc
4538

4639
- name: Import OSBotify GPG Key
4740
shell: bash
48-
run: cd .github/workflows && gpg --import OSBotify-private-key.asc
41+
run: gpg --import OSBotify-private-key.asc
4942

5043
- name: Set up git for OSBotify
5144
shell: bash
@@ -55,11 +48,6 @@ runs:
5548
git config user.name OSBotify
5649
git config user.email infra+osbotify@expensify.com
5750
58-
- name: Enable debug logs for git
59-
shell: bash
60-
if: runner.debug == '1'
61-
run: echo "GIT_TRACE=true" >> "$GITHUB_ENV"
62-
6351
- name: Sync clock
6452
shell: bash
6553
run: sudo sntp -sS time.windows.com
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Validate actor
2+
description: Validate the the current actor has the permissions they need. By default, it validates that the user has write permissions.
3+
4+
inputs:
5+
# If `REQUIRE_APP_DEPLOYER` is true, we check that they're an app deployer. If not, we just check that they have write access.
6+
REQUIRE_APP_DEPLOYER:
7+
description: Should this action require the actor to be an app deployer?
8+
required: false
9+
default: 'true'
10+
OS_BOTIFY_TOKEN:
11+
description: OSBotify token. Needed to access certain API endpoints the regular github.token can't
12+
required: true
13+
14+
runs:
15+
using: composite
16+
steps:
17+
- name: Get user permissions
18+
if: ${{ !fromJSON(inputs.REQUIRE_APP_DEPLOYER) }}
19+
id: getUserPermissions
20+
shell: bash
21+
run: |
22+
PERMISSION=$(gh api /repos/${{ github.repository }}/collaborators/${{ github.actor }}/permission | jq -r '.permission')
23+
if [[ "$PERMISSION" == 'write' || "$PERMISSION" == 'admin' ]]; then
24+
echo "::notice::✅ Actor ${{ github.actor }} has write permission"
25+
else
26+
echo "::error::❌ Actor ${{ github.actor }} does not have write permission"
27+
exit 1
28+
fi
29+
env:
30+
GITHUB_TOKEN: ${{ inputs.OS_BOTIFY_TOKEN }}
31+
32+
- name: Check if user is deployer
33+
id: isUserDeployer
34+
if: fromJSON(inputs.REQUIRE_APP_DEPLOYER)
35+
shell: bash
36+
run: |
37+
if [[ "${{ github.actor }}" == "OSBotify" || "${{ github.actor }}" == "os-botify[bot]" ]] || \
38+
gh api /orgs/Expensify/teams/mobile-deployers/memberships/${{ github.actor }} --silent; then
39+
echo "::notice::✅ Actor ${{ github.actor }} is an app deployer"
40+
else
41+
echo "::error::❌ Actor ${{ github.actor }} is not an app deployer"
42+
exit 1
43+
fi
44+
env:
45+
GITHUB_TOKEN: ${{ inputs.OS_BOTIFY_TOKEN }}

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -17242,8 +17242,8 @@ exports["default"] = newComponentCategory;
1724217242
Object.defineProperty(exports, "__esModule", ({ value: true }));
1724317243
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1724417244
const GIT_CONST = {
17245-
GITHUB_OWNER: 'Expensify',
17246-
APP_REPO: 'App',
17245+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
17246+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1724717247
};
1724817248
const CONST = {
1724917249
...GIT_CONST,
@@ -17532,7 +17532,7 @@ class GithubUtils {
1753217532
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1753317533
// Tag version and comparison URL
1753417534
// eslint-disable-next-line max-len
17535-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
17535+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1753617536
// PR list
1753717537
if (sortedPRList.length > 0) {
1753817538
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -12246,8 +12246,8 @@ exports.getStringInput = getStringInput;
1224612246
Object.defineProperty(exports, "__esModule", ({ value: true }));
1224712247
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1224812248
const GIT_CONST = {
12249-
GITHUB_OWNER: 'Expensify',
12250-
APP_REPO: 'App',
12249+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
12250+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1225112251
};
1225212252
const CONST = {
1225312253
...GIT_CONST,
@@ -12536,7 +12536,7 @@ class GithubUtils {
1253612536
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1253712537
// Tag version and comparison URL
1253812538
// eslint-disable-next-line max-len
12539-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
12539+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1254012540
// PR list
1254112541
if (sortedPRList.length > 0) {
1254212542
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -736639,8 +736639,8 @@ checkAndroidStatus()
736639736639
Object.defineProperty(exports, "__esModule", ({ value: true }));
736640736640
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
736641736641
const GIT_CONST = {
736642-
GITHUB_OWNER: 'Expensify',
736643-
APP_REPO: 'App',
736642+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
736643+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
736644736644
};
736645736645
const CONST = {
736646736646
...GIT_CONST,
@@ -736929,7 +736929,7 @@ class GithubUtils {
736929736929
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
736930736930
// Tag version and comparison URL
736931736931
// eslint-disable-next-line max-len
736932-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
736932+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
736933736933
// PR list
736934736934
if (sortedPRList.length > 0) {
736935736935
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -11529,8 +11529,8 @@ exports["default"] = run;
1152911529
Object.defineProperty(exports, "__esModule", ({ value: true }));
1153011530
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1153111531
const GIT_CONST = {
11532-
GITHUB_OWNER: 'Expensify',
11533-
APP_REPO: 'App',
11532+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
11533+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1153411534
};
1153511535
const CONST = {
1153611536
...GIT_CONST,
@@ -11819,7 +11819,7 @@ class GithubUtils {
1181911819
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1182011820
// Tag version and comparison URL
1182111821
// eslint-disable-next-line max-len
11822-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
11822+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1182311823
// PR list
1182411824
if (sortedPRList.length > 0) {
1182511825
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

.github/actions/javascript/createOrUpdateStagingDeploy/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -11592,8 +11592,8 @@ exports["default"] = run;
1159211592
Object.defineProperty(exports, "__esModule", ({ value: true }));
1159311593
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1159411594
const GIT_CONST = {
11595-
GITHUB_OWNER: 'Expensify',
11596-
APP_REPO: 'App',
11595+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
11596+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1159711597
};
1159811598
const CONST = {
1159911599
...GIT_CONST,
@@ -12101,7 +12101,7 @@ class GithubUtils {
1210112101
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1210212102
// Tag version and comparison URL
1210312103
// eslint-disable-next-line max-len
12104-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
12104+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1210512105
// PR list
1210612106
if (sortedPRList.length > 0) {
1210712107
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

.github/actions/javascript/getArtifactInfo/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -11490,8 +11490,8 @@ exports["default"] = run;
1149011490
Object.defineProperty(exports, "__esModule", ({ value: true }));
1149111491
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1149211492
const GIT_CONST = {
11493-
GITHUB_OWNER: 'Expensify',
11494-
APP_REPO: 'App',
11493+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
11494+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1149511495
};
1149611496
const CONST = {
1149711497
...GIT_CONST,
@@ -11780,7 +11780,7 @@ class GithubUtils {
1178011780
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1178111781
// Tag version and comparison URL
1178211782
// eslint-disable-next-line max-len
11783-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
11783+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1178411784
// PR list
1178511785
if (sortedPRList.length > 0) {
1178611786
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

.github/actions/javascript/getDeployPullRequestList/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -11633,8 +11633,8 @@ exports.getStringInput = getStringInput;
1163311633
Object.defineProperty(exports, "__esModule", ({ value: true }));
1163411634
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1163511635
const GIT_CONST = {
11636-
GITHUB_OWNER: 'Expensify',
11637-
APP_REPO: 'App',
11636+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
11637+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1163811638
};
1163911639
const CONST = {
1164011640
...GIT_CONST,
@@ -12142,7 +12142,7 @@ class GithubUtils {
1214212142
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1214312143
// Tag version and comparison URL
1214412144
// eslint-disable-next-line max-len
12145-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
12145+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1214612146
// PR list
1214712147
if (sortedPRList.length > 0) {
1214812148
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

.github/actions/javascript/getPreviousVersion/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -2757,8 +2757,8 @@ exports["default"] = run;
27572757
Object.defineProperty(exports, "__esModule", ({ value: true }));
27582758
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
27592759
const GIT_CONST = {
2760-
GITHUB_OWNER: 'Expensify',
2761-
APP_REPO: 'App',
2760+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
2761+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
27622762
};
27632763
const CONST = {
27642764
...GIT_CONST,

.github/actions/javascript/getPullRequestDetails/getPullRequestDetails.ts

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ GithubUtils.octokit.pulls
5454
.then(({data: PR}) => {
5555
if (!isEmptyObject(PR)) {
5656
console.log(`Found matching pull request: ${PR.html_url}`);
57+
console.log(`Pull request details: ${JSON.stringify(PR)}}`);
5758
core.setOutput('MERGE_COMMIT_SHA', PR.merge_commit_sha);
5859
core.setOutput('HEAD_COMMIT_SHA', PR.head?.sha);
5960
core.setOutput('IS_MERGED', PR.merged);

.github/actions/javascript/getPullRequestDetails/index.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -11502,6 +11502,7 @@ GithubUtils_1.default.octokit.pulls
1150211502
.then(({ data: PR }) => {
1150311503
if (!(0, EmptyObject_1.isEmptyObject)(PR)) {
1150411504
console.log(`Found matching pull request: ${PR.html_url}`);
11505+
console.log(`Pull request details: ${JSON.stringify(PR)}}`);
1150511506
core.setOutput('MERGE_COMMIT_SHA', PR.merge_commit_sha);
1150611507
core.setOutput('HEAD_COMMIT_SHA', PR.head?.sha);
1150711508
core.setOutput('IS_MERGED', PR.merged);
@@ -11592,8 +11593,8 @@ exports.getStringInput = getStringInput;
1159211593
Object.defineProperty(exports, "__esModule", ({ value: true }));
1159311594
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1159411595
const GIT_CONST = {
11595-
GITHUB_OWNER: 'Expensify',
11596-
APP_REPO: 'App',
11596+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
11597+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1159711598
};
1159811599
const CONST = {
1159911600
...GIT_CONST,
@@ -11882,7 +11883,7 @@ class GithubUtils {
1188211883
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1188311884
// Tag version and comparison URL
1188411885
// eslint-disable-next-line max-len
11885-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
11886+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1188611887
// PR list
1188711888
if (sortedPRList.length > 0) {
1188811889
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

.github/actions/javascript/isStagingDeployLocked/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -11490,8 +11490,8 @@ exports["default"] = run;
1149011490
Object.defineProperty(exports, "__esModule", ({ value: true }));
1149111491
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
1149211492
const GIT_CONST = {
11493-
GITHUB_OWNER: 'Expensify',
11494-
APP_REPO: 'App',
11493+
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
11494+
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
1149511495
};
1149611496
const CONST = {
1149711497
...GIT_CONST,
@@ -11780,7 +11780,7 @@ class GithubUtils {
1178011780
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
1178111781
// Tag version and comparison URL
1178211782
// eslint-disable-next-line max-len
11783-
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
11783+
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
1178411784
// PR list
1178511785
if (sortedPRList.length > 0) {
1178611786
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';

0 commit comments

Comments
 (0)