执行GitHub Actions定时工作流时遭遇Identifier 'github'重复声明错误的求助
执行GitHub Actions定时工作流时遭遇Identifier 'github'重复声明错误的求助
嘿,我来帮你搞定这个问题!你碰到的SyntaxError: Identifier 'github' has already been declared错误,原因其实很直白——在actions/github-script这个Action的运行环境里,github这个变量已经被自动注入可用了,结果你又手动写了const { github } = require('@actions/github');去重新声明它,这不就撞车了嘛😆
具体修复步骤:
- 首先,直接删掉那行重复声明的代码:把
const { github } = require('@actions/github');这一行彻底删除,因为github-script已经为你预加载好了github对象,完全不需要自己再引入一次。 - 然后,简化你的调用逻辑:既然现成的
github对象就在那,直接用它调用方法就行,不需要再通过getOctokit重新创建实例。原来的github.getOctokit(...).actions.createWorkflowDispatch(...)可以直接改成github.actions.createWorkflowDispatch(...),参数部分保留owner、repo这些就没问题。
修复后的完整脚本代码参考:
async function run() { try { await github.actions.createWorkflowDispatch({ owner: github.context.repo.owner, repo: github.context.repo.repo, // 记得补上你之前省略的必要参数,比如工作流ID和分支名 workflow_id: 'playwright.yml', ref: 'main' // 根据你的实际分支调整,比如dev、master等 }); console.log('Playwright e2e测试工作流已成功触发!'); } catch (error) { console.error('触发工作流失败:', error); throw error; } } run();
另外你提到playwright.yml能正常运行,这也说得通——因为那个工作流里没有多余的github变量声明操作,自然不会有冲突问题啦。
备注:内容来源于stack exchange,提问作者soccerway
相关产品推荐
相关产品推荐

