English Doc (Generated by DeepSeek)
此工具采用了程序(Monitor)和数据(Data)分离的模式,最初是为了绕过GitHub Action的收费策略,另外也满足了监控内容和数据存储的保密需求。
Monitor是Public的,所以Action的执行不计费。
需要在Monitor的Action Secrets里配置若干参数,获取读写数据仓库的权限。具体请看Actions参数说明
数据仓库需要单独创建。使用时,需要自己配置一个数据仓库,建议取名:monitor-data
,可以设置成private,也可以是public的。
只需要在根目录下创建监控配置文件config.json
,格式请参考./config.json
和 完整参数说明。
数据文件会保存在/data
目录下。
可以用GitHub Action的schedule:
schedule:
- cron: '*/1 * * * *'
但它的轮询间隙是无法保证的,有时候甚至一小时才会触发一次。所以,对于定时的准确度,如果要求高,就不要用schedule,可以改用其他定时器通过workflow_dispatch的方式来触发Action。
比如Linux的cron,example:
*/1 * * * * root curl 'https://api.github.com/repos/[YOUR_ORG]/[YOUR_REPO]/actions/workflows/detect.yml/dispatches' -H 'authorization: Bearer [GITHUB_PAT]' -d '{"ref":"master"}'
{
"id": "simple_get",
"url": "https://dummyjson.com/test"
}
{
"id": "livescore",
"url": "https://match.uefa.com/v5/livescore?matchId=2036177",
"format": true,
"filters": [
"hash",
"minute"
],
"condition": "length",
"notify": true,
"notifyCondition": ".length > 0"
}
Configuration | Instruction | Default | Required |
---|---|---|---|
id | 任务的唯一标识 | Yes | |
url | 需要轮询的数据文件地址 | Yes | |
options | fetch的options | No | |
every | 每隔几分钟执行一次,默认每次执行 | 1 | No |
random | 执行时间(秒)是否加入随机Delay | False | No |
randomMin | 是否在随机分钟时执行,需配合perDay使用 | No | |
perDay | 每天随机运行的总次数,需配合randomMin使用 | No | |
enable | 是否启用 | True | No |
record | 是否保存 | True | No |
filters | 文件差异比较时,需要忽略的属性 | No | |
condition | 文件差异比较时,需满足的额外条件 | No | |
format | 保存时是否格式化 | False | No |
notify | 是否启用通知 | False | No |
notifyCondition | 通知的额外条件 | No | |
errorCondition | 异常条件,满足时会记录以及发送消息通知 | No |
Repository secrets | Instruction | Required |
---|---|---|
DATA_REPO | 数据仓库 | Yes |
DATA_REPO_PAT | 访问数据仓库的PAT | Yes |
NOTIFY_SERVER | 通知服务的请求URL | No |
NOTIFY_TOKEN | 通知服务的Token | No |