利用 iOS 的快捷指令配合 GitHub Actions 实现自动化

为什么需要通过快捷指令实现自动化

  • 最初的 Github Actions 需要 crontab 来定时进行自动化,这样做不仅消耗过多资源,而且在完成某个任务时不会立即获取新生成的数据。
  • 如果我可以完成某个特定动作,例如关闭闹钟、充电、关闭 APP 时自动进行 Actions时,这样做非常高效,方法是可以利用快捷指令触发 Actions 同步数据
  • 下面拿跑步举例,一般会用 app(我用的是 keep)来记录跑步数据,实现的操作是当关闭 keep 时会自动进行 Actions,更新数据

如何触发 Actions

  • 首先在 yml 文件中增加 workflow_dispatch: 可以手动触发

    srcworkflow_dispatch

  • 先拿到这个项目的 actions id (需要自行申请 token)

    • 在个人的 settings 中申请 项目的token,然后在项目里的 Secrets and variables 里的 Actions 设置密钥,内容为刚刚申请的 token

    • 执行下面代码获取 actionid

      1
      curl https://api.github.com/repos/jujimeizuo/running_page/actions/workflows -H "Authorization: token d8xxxxxxxxxx" ## change to your config

    get-action-id

  • 拿到 action id 就可以利用 api post 触发 action 啦

    1
    curl -H "Content-Type:application/json" -X POST -d '{"inputs": {}, "ref":"master"}' https://api.github.com/repos/jujimeizu/running_page/actions/workflows/: ${actionid}/dispatches -H "Authorization: token d8e03d6xxxxxxxxxxxx"  ## change to your config

结合快捷指令

快捷指令

running-page-template

自动化

new-automation select-close

select-shortcut finish-automation

其他

  • 可以通过关闭闹钟来同步自己的起床记录——这也是 yihong 大神写的
  • 可以利用一个 action 触发另一个项目的 action,实现另一个 repo 的更新

Reference

本文作者:jujimeizuo
本文地址https://blog.jujimeizuo.cn/2023/10/06/shortcut-github-actions-automation/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!