Skip to content

Commit 4956799

Browse files
Fix mirror issue workflow token usage (#9001)
Use github-script's github-token input for the minted app token and prefetch workflow_dispatch issue data before switching clients. Co-authored-by: Oz <oz-agent@warp.dev>
1 parent 92ddd31 commit 4956799

1 file changed

Lines changed: 35 additions & 23 deletions

File tree

.github/workflows/mirror-new-issues.yml

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,41 @@ jobs:
5959
private-key: ${{ secrets.WARP_ISSUES_APP_PRIVATE_KEY }}
6060
owner: ${{ secrets.WARP_ISSUES_REPO_ORG }}
6161
repositories: ${{ secrets.WARP_ISSUES_REPO_NAME }}
62+
- name: Load source issue
63+
if: ${{ github.event_name == 'workflow_dispatch' }}
64+
id: source-issue
65+
uses: actions/github-script@v7
66+
with:
67+
script: |
68+
const issueNumberInput = context.payload.inputs?.issue_number;
69+
const issueNumber = Number(issueNumberInput);
70+
71+
if (!Number.isInteger(issueNumber) || issueNumber <= 0) {
72+
core.setFailed(`Invalid issue_number input: "${issueNumberInput}".`);
73+
return;
74+
}
75+
76+
const response = await github.rest.issues.get({
77+
owner: context.repo.owner,
78+
repo: context.repo.repo,
79+
issue_number: issueNumber,
80+
});
81+
82+
core.setOutput("title", response.data.title);
83+
core.setOutput("body", response.data.body ?? "");
84+
core.setOutput("html_url", response.data.html_url);
6285
6386
- name: Mirror issue
6487
uses: actions/github-script@v7
6588
env:
66-
TARGET_APP_TOKEN: ${{ steps.app-token.outputs.token }}
89+
SOURCE_ISSUE_TITLE: ${{ steps.source-issue.outputs.title }}
90+
SOURCE_ISSUE_BODY: ${{ steps.source-issue.outputs.body }}
91+
SOURCE_ISSUE_HTML_URL: ${{ steps.source-issue.outputs.html_url }}
6792
with:
93+
github-token: ${{ steps.app-token.outputs.token }}
6894
script: |
69-
const { getOctokit } = require("@actions/github");
7095
const targetOwner = process.env.TARGET_REPO_ORG;
7196
const targetName = process.env.TARGET_REPO_NAME;
72-
const targetToken = process.env.TARGET_APP_TOKEN;
7397
7498
if (!targetOwner || !targetName) {
7599
core.setFailed(
@@ -78,29 +102,18 @@ jobs:
78102
return;
79103
}
80104
81-
if (!targetToken) {
82-
core.setFailed("Failed to mint a GitHub App installation token.");
83-
return;
84-
}
85-
86105
let issue;
87106
88107
if (context.eventName === "workflow_dispatch") {
89-
const issueNumberInput = context.payload.inputs?.issue_number;
90-
const issueNumber = Number(issueNumberInput);
91-
92-
if (!Number.isInteger(issueNumber) || issueNumber <= 0) {
93-
core.setFailed(`Invalid issue_number input: "${issueNumberInput}".`);
108+
if (!process.env.SOURCE_ISSUE_TITLE || !process.env.SOURCE_ISSUE_HTML_URL) {
109+
core.setFailed("Failed to load the source issue.");
94110
return;
95111
}
96-
97-
const response = await github.rest.issues.get({
98-
owner: context.repo.owner,
99-
repo: context.repo.repo,
100-
issue_number: issueNumber,
101-
});
102-
103-
issue = response.data;
112+
issue = {
113+
title: process.env.SOURCE_ISSUE_TITLE,
114+
body: process.env.SOURCE_ISSUE_BODY,
115+
html_url: process.env.SOURCE_ISSUE_HTML_URL,
116+
};
104117
} else {
105118
issue = context.payload.issue;
106119
}
@@ -109,8 +122,7 @@ jobs:
109122
? `[Original issue](${issue.html_url})\n\n${issue.body}`
110123
: `[Original issue](${issue.html_url})`;
111124
112-
const targetGitHub = getOctokit(targetToken);
113-
await targetGitHub.rest.issues.create({
125+
await github.rest.issues.create({
114126
owner: targetOwner,
115127
repo: targetName,
116128
title: issue.title,

0 commit comments

Comments
 (0)