github - 从 GitHub Actions 更新 GitHub 问题
问题描述
我试图使用一些我想在 docker 容器中运行的简单脚本(我已经在本地使用)进行 GitHub 操作。
新问题应触发事件以基于某些处理使用其内容更新所述问题。这方面的一个例子可能是:
假设我在脚本中定义了一个标签列表,它会检查问题的标题并向问题添加标签。
我仍在阅读 GitHub Action 的文档,所以我可能没有完全了解,但我似乎遇到的问题是,在我的本地机器中,这些脚本使用gh
cli 来执行此类任务(例如添加标签)。所以我想知道是否需要gh
在该 docker 容器中安装它,或者是否有更好的方法来更新问题?我非常愿意再次使用 GitHub 的事件负载和其他东西从头开始制作这些脚本,只要我不必用 TypeScript 编写。
我查看了文档,找不到任何关于更新问题的内容。在这里也找不到类似的问题;可能是我错过了一些东西,所以如果是这种情况,请指导我查阅相关材料,我将非常感激。
解决方案
一个选项可能是(如您所说)在该 docker 容器中安装 GH,然后运行 GH 命令。
使用容器的示例:
jobs:
build:
runs-on: ubuntu-latest
container:
image: docker://myrepoandimagewithghinstalled
steps:
- name: Github CLI Authentication
run: gh auth login --hostname <your hostname>
- name: Github CLI commands execution samples
run: |
gh command1
gh command2
gh command3
另一种选择是直接在操作系统上安装 GH(例如 ubuntu-latest),进行身份验证,然后使用“运行”选项执行 GH 命令。
在操作系统上安装 GH 的示例:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Github CLI
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0
sudo apt-add-repository https://cli.github.com/packages
sudo apt update
sudo apt install gh
- name: Github CLI Authentication
run: gh auth login --hostname <your hostname>
- name: Github CLI commands execution samples
run: |
gh command1
gh command2
gh command3
最后,您还可以创建一个使用Github API 服务的脚本来更新 ISSUE并使用 run 选项执行脚本。
在工作流程中执行 Python 脚本的示例:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout repo content
uses: actions/checkout@v2 # checkout the repository content to github runner.
- name: setup python
uses: actions/setup-python@v2
with:
python-version: 3.8 #install the python needed
- name: execute py script # run the run.py to get the latest data
run: |
python run.py
env:
key: ${{ secrets.key }} # if run.py requires passwords..etc, set it as secrets
- name: export index
.... # use crosponding script or actions to help export.
推荐阅读
- node.js - 为什么 res.header() 不能在 express 中工作?
- istio - Istio-Service 到服务的通信没有按预期进行
- javascript - 如何将此代码从 Jquery 转换为 Vanilla Javascript?
- java - 如何减少 Docker 中的 Spring Boot 应用程序内存使用量?
- c# - 使用 nhibernate 将两个表映射到一个对象
- asp.net-mvc - 身份无法连接到远程数据库,继续连接到本地数据库
- pyspark - 计算日期在每个 ID 的日期范围内的行数
- javascript - 如何隐藏未选中的表单的输入字段并仅显示已选中的输入字段
- c# - 显示 RAZOR 页面而不是 JSON 格式(C#、WebService)
- python - 结帐或下订单后如何清空购物车?Django