【问题标题】:Updating GitHub issues from GitHub Actions从 GitHub Actions 更新 GitHub 问题
【发布时间】:2021-06-19 16:32:55
【问题描述】:

我正在尝试使用一些我想在 docker 容器中运行的简单脚本(我已经在本地使用)进行 GitHub 操作。

一个新的问题应该触发事件以基于一些处理来更新该问题的内容。这方面的一个例子可能是:

假设我在脚本中定义了一个标签列表,它会检查问题的标题并向问题添加标签。

我仍在阅读 GitHub Action 的文档,所以我可能没有完全了解,但我似乎遇到的问题是,在我的本地机器中,这些脚本使用 gh cli 来执行此类任务(例如添加标签)。所以我想知道是否需要在该 docker 容器中安装 gh 或者是否有更好的方法来更新问题?我非常愿意再次使用 GitHub 的事件负载和其他东西从头开始制作这些脚本,只要我不必用 TypeScript 编写。

我查看了文档,找不到任何关于更新问题的内容。在这里也找不到类似的问题;可能是我错过了一些东西,所以如果是这种情况,请指导我查阅相关材料,我将非常感激。

【问题讨论】:

    标签: github github-actions


    【解决方案1】:

    一个选项可能是(如您所说)在该 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),进行身份验证,然后使用“run”选项执行 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 service to update an ISSUE 的脚本并使用运行选项执行该脚本。

    在您的工作流程中执行 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.
    

    【讨论】:

    • 是的,我最终使用了 GitHub API。我在 docker 容器中制作了一个 Go 程序,并将 Github Token 作为环境变量传递给身份验证。
    猜你喜欢
    • 2020-05-30
    • 2022-01-02
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2022-01-19
    • 1970-01-01
    • 2022-11-29
    相关资源
    最近更新 更多