You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无交互命令行下登录GitHub CLI并运行指定工作流?

无交互登录GitHub CLI并运行指定工作流的方法

1. 无交互登录GitHub CLI

要实现无交互登录,你可以利用gh auth login --with-token命令直接从标准输入读取个人访问令牌(PAT),跳过所有交互式提示。确保你的PAT已包含repo、read:org、workflow这几个最小必要权限。

执行命令:

# 替换为你的GitHub个人访问令牌
echo "你的GitHub_PAT" | gh auth login --with-token
# 对应手动流程中的Git协议设置步骤
gh config set -h github.com git_protocol https

2. 无交互运行指定Node.js工作流

登录完成后,使用gh workflow run命令指定工作流文件和仓库即可触发运行:

# 替换为你的工作流文件名和仓库路径
gh workflow run node.js.yaml --repo yuuval/react-deploy-aws

3. 集成到cloud-init文件

将上述命令替换到你cloud-init文件的//HERE COMES THE LOGIN PART + GH WORKFLOW RUN NODE.JS.YML FILE注释位置,同时修复第一条命令的语法问题(确保curl安装与后续命令正确衔接)。修改后的runcmd部分如下:

runcmd:
  - type -p curl >/dev/null || sudo apt install curl -y && curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
    && sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
    && sudo apt update \
    && sudo apt install gh -y
  - mkdir react
  - cd react
  - curl -o actions-runner-linux-x64-2.301.1.tar.gz -L https://github.com/actions/runner/releases/download/v2.300.1/actions-runner-linux-x64-2.301.1.tar.gz
  - tar xzf ./actions-runner-linux-x64-2.301.1.tar.gz
  - yes "" | ./config.sh --url https://github.com/yuuval/react-deploy-aws --token AVYXWHVAXX2TB4J63XBJCIDDYB6TA
  - sudo ./svc.sh install
  - sudo ./svc.sh start
  # 无交互登录GitHub CLI
  - echo "你的GitHub_PAT" | gh auth login --with-token
  - gh config set -h github.com git_protocol https
  # 运行指定Node.js工作流
  - gh workflow run node.js.yaml --repo yuuval/react-deploy-aws
  - cd _work
  - cd react-deploy-aws
  - cd react-deploy-aws
  - cd /etc/nginx/sites-available
  - sudo rm default
  - echo "server {listen 80 default_server;server_name _;location / {root /home/ubuntu/react/_work/react-deploy-aws/react-deploy-aws/build;try_files \$uri /index.html;}}" | sudo tee /etc/nginx/sites-available/default
  - sudo service nginx restart
  - sudo chmod +x /home
  - sudo chmod +x /home/ubuntu
  - sudo chmod +x /home/ubuntu/react
  - sudo chmod +x /home/ubuntu/react/_work
  - sudo chmod +x /home/ubuntu/react/_work/react-deploy-aws
  - sudo chmod +x /home/ubuntu/react/_work/react-deploy-aws/react-deploy-aws
  - sudo chmod +x /home/ubuntu/react/_work/react-deploy-aws/build

安全提示:

直接在cloud-init文件中硬编码个人访问令牌存在安全风险,建议使用云服务商的密钥管理服务或cloud-init的机密注入功能来安全传递令牌。

内容的提问来源于stack exchange,提问作者crvxッ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:51:56