定时任务管理系统

gocron - 定时任务管理系统

Downloads license Release

项目简介

使用Go语言开发的轻量级定时任务集中调度和管理系统, 用于替代Linux-crontab 查看文档

原有的延时任务拆分为独立项目延迟队列

功能特性

  • Web界面管理定时任务
  • crontab时间表达式, 精确到秒
  • 任务执行失败可重试
  • 任务执行超时, 强制结束
  • 任务依赖配置, A任务完成后再执行B任务
  • 账户权限控制
  • 任务类型
    • shell任务

    在任务节点上执行shell命令, 支持任务同时在多个节点上运行

    • HTTP任务

    访问指定的URL地址, 由调度器直接执行, 不依赖任务节点

  • 查看任务执行结果日志
  • 任务执行结果通知, 支持邮件、Slack、Webhook

截图

流程图 任务 Slack

支持平台

Windows、Linux、Mac OS

环境要求

MySQL

下载

releases

版本升级

安装

二进制安装

  1. 解压压缩包  
  2. cd 解压目录
  3. 启动
  • 调度器启动
    • Windows: gocron.exe web
    • Linux、Mac OS: ./gocron web
  • 任务节点启动, 默认监听0.0.0.0:5921
    • Windows: gocron-node.exe
    • Linux、Mac OS: ./gocron-node
  1. 浏览器访问 http://localhost:5920

源码安装

  • 安装Go 1.11+
  • go get -d github.com/ouqiang/gocron
  • export GO111MODULE=on
  • 编译 make
  • 启动
    • gocron ./bin/gocron web
    • gocron-node ./bin/gocron-node

docker

docker run --name gocron --link mysql:db -p 5920:5920 -d ouqg/gocron

配置: /app/conf/app.ini

日志: /app/log/cron.log

镜像不包含gocron-node, gocron-node需要和具体业务一起构建

开发

  1. 安装Go1.9+, Node.js, Yarn
  2. 安装前端依赖 make install-vue
  3. 启动gocron, gocron-node make run
  4. 启动node server make run-vue, 访问地址 http://localhost:8080

访问http://localhost:8080, API请求会转发给gocron

make 编译

make run 编译并运行

make package 打包

生成当前系统的压缩包 gocron-v1.5-darwin-amd64.tar.gz gocron-node-v1.5-darwin-amd64.tar.gz

make package-all 生成Windows、Linux、Mac的压缩包

命令

  • gocron

    • -v 查看版本
  • gocron web

    • --host 默认0.0.0.0
    • -p 端口, 指定端口, 默认5920
    • -e 指定运行环境, dev|test|prod, dev模式下可查看更多日志信息, 默认prod
    • -h 查看帮助
  • gocron-node

    • -allow-root *nix平台允许以root用户运行
    • -s ip:port 监听地址
    • -enable-tls 开启TLS
    • -ca-file   CA证书文件  
    • -cert-file 证书文件
    • -key-file 私钥文件
    • -h 查看帮助
    • -v 查看版本

To Do List

  • 版本升级
  • 批量开启、关闭、删除任务
  • 调度器与任务节点通信支持https
  • 任务分组
  • 多用户
  • 权限控制

程序使用的组件

反馈

提交issue

ChangeLog

v1.5

  • 前端使用Vue+ElementUI重构
  • 任务通知
    • 新增WebHook通知
    • 自定义通知模板
    • 匹配任务执行结果关键字发送通知
  • 任务列表页显示任务下次执行时间

v1.4

  • HTTP任务支持POST请求
  • 后台手动停止运行中的shell任务
  • 任务执行失败重试间隔时间支持用户自定义
  • 修复API接口调用报403错误

v1.3

  • 支持多用户登录
  • 增加用户权限控制

v1.2.2

  • 用户登录页增加图形验证码
  • 支持从旧版本升级
  • 任务批量开启、关闭、删除
  • 调度器与任务节点支持HTTPS双向认证
  • 修复任务列表页总记录数显示错误

v1.1

  • 任务可同时在多个节点上运行
  • *nix平台默认禁止以root用户运行任务节点
  • 子任务命令中增加预定义占位符, 子任务可根据主任务运行结果执行相应操作
  • 删除守护进程模块
  • Web访问日志输出到终端
Owner
qiang.ou
to be a better man
qiang.ou
Comments
  • 手工执行UPDATE `task_log` SET可以成功,但是gocron自己执行报错

    手工执行UPDATE `task_log` SET可以成功,但是gocron自己执行报错

    [root@zabbix-server log]# tail cron.log 2020-05-26/11:45:35 [ERR] 编辑任务#获取任务详情失败#任务ID-0 2020-05-26/11:46:59 [INF] 开始执行任务#bj-his-test-expdp.sh#命令-su - oracle -lc "/usr/local/shell/expdp.sh" 2020-05-26/11:56:16 [INF] 任务完成#bj-his-test-expdp.sh#命令-su - oracle -lc "/usr/local/shell/expdp.sh" 2020-05-26/11:56:16 [ERR] [[任务结束#更新任务日志失败- Error 1366: Incorrect string value: '\xD5\xEF\xB6\xCF" ...' for column 'result' at row 1]] 2020-05-26/12:31:25 [INF] 开始执行任务#bj-his-test-expdp.sh#命令-su - oracle -lc "/usr/local/shell/expdp.sh" 2020-05-26/12:34:07 [INF] 任务完成#bj-his-test-expdp.sh#命令-su - oracle -lc "/usr/local/shell/expdp.sh" 2020-05-26/12:34:07 [ERR] [[任务结束#更新任务日志失败- Error 1366: Incorrect string value: '\xD5\xEF\xB6\xCF" ...' for column 'result' at row 1]] 2020-05-26/12:50:26 [INF] 开始执行任务#bj-his-test-expdp.sh#命令-su - oracle -lc "/usr/local/shell/expdp.sh" 2020-05-26/12:52:51 [INF] 任务完成#bj-his-test-expdp.sh#命令-su - oracle -lc "/usr/local/shell/expdp.sh" 2020-05-26/12:52:51 [ERR] [[任务结束#更新任务日志失败- Error 1366: Incorrect string value: '\xD5\xEF\xB6\xCF" ...' for column 'result' at row 1]]

    手工执行下面这个sql是可以成功的,为什么gocron自己执行报错:

    UPDATE task_log SET retry_times = 0, status = 2, result = '主机: [bj-his-test-172.xxxxx:5921]\n\n\nExport: Release 11.2.0.4.0 - Production on Tue May 26 12:50:26 2020\n\nCopyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.\n\nConnected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\nFLASHBACK automatically enabled to preserve database integrity.\nStarting "SYS"."SYS_EXPORT_SCHEMA_01": "/******** AS SYSDBA" directory=DATA_DIR Dumpfile=appuser_local_20200526_125026.dmp LOGFILE=appuser_local_20200526_125026.log schemas=appuser compression=all \nEstimate in progress using BLOCKS method...\nProcessing object type SCHEMA_EXPORT/TABLE/TABLE_DATA\nTotal estimation using BLOCKS method: 7.367 GB\nProcessing object type SCHEMA_EXPORT/USER\nProcessing object type SCHEMA_EXPORT/SYSTEM_GRANT\nProcessing object type SCHEMA_EXPORT/ROLE_GRANT\nProcessing object type SCHEMA_EXPORT/DEFAULT_ROLE\nProcessing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA\nProcessing object type SCHEMA_EXPORT/SYNONYM/SYNONYM\nProcessing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC\nProcessing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE\nProcessing object type SCHEMA_EXPORT/TABLE/TABLE\nProcessing object type SCHEMA_EXPORT/TABLE/COMMENT\nProcessing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC\nProcessing object type SCHEMA_EXPORT/FUNCTION/FUNCTION\nProcessing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE\nProcessing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC\nProcessing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION\nProcessing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE\nProcessing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX\nProcessing object type SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX\nProcessing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT\nProcessing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS\nProcessing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS\nProcessing object type SCHEMA_EXPORT/VIEW/VIEW\nProcessing object type SCHEMA_EXPORT/VIEW/COMMENT\nProcessing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY\nProcessing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT\nProcessing object type SCHEMA_EXPORT/TABLE/TRIGGER\nProcessing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS\n. . exported "appuser"."EXTEND_MONITOR_ACCESS_RECORDS" 817.3 MB 359438 rows\n. . exported "appuser"."BAS_TASK_LOGS" 137.8 MB 5311296 rows\n. . exported "appuser"."INS_MEDLIST_YB1023" 29.30 MB 765537 rows\n. . exported "appuser"."PAY_TRANSACTION_DETAIL20191028" 7.634 MB 69943 rows\n. . exported "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded\n******************************************************************************\nDump file set for SYS.SYS_EXPORT_SCHEMA_01 is:\n /data/backup/appuser_local_20200526_125026.dmp\nJob "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Tue May 26 12:52:50 2020 elapsed 0 00:02:24\n\n\n\n', end_time = '2020-05-26 12:52:51' WHERE id=86

  • gocron v1.5  build error

    gocron v1.5 build error

    when i was make the project, the result is 🥇 go build -o bin/gocron ./cmd/gocron cmd/gocron/gocron.go:11:2: use of internal package not allowed cmd/gocron/gocron.go:12:2: use of internal package not allowed cmd/gocron/gocron.go:13:2: use of internal package not allowed cmd/gocron/gocron.go:14:2: use of internal package not allowed cmd/gocron/gocron.go:15:2: use of internal package not allowed cmd/gocron/gocron.go:16:2: use of internal package not allowed make: *** [gocron] Error 1

    how to resolve this, please help! the go version is 1.9.4

  • rpc error

    rpc error

    rpc error: code = ResourceExhausted desc = grpc: trying to send message larger than max (40254453 vs. 4194304) 主机: [localhost-127.0.0.1] rpc error: code = ResourceExhausted desc = grpc: trying to send message larger than max (40254453 vs. 4194304)

    再次讨教下,我的爬虫任务执行一段时间就这个样子 搞不清楚什么问题,刚部署的时候还是ok的

  • 为什么这种错误没有报出来

    为什么这种错误没有报出来

    cron.log: 2018-09-18/00:05:30 [ERR] [[任务结束#更新任务日志失败- Error 1105: Parameter of prepared statement which is set through mysql_send_long_data() is longer than 'max_allowed_packet' bytes]] 还有这个: 2018-09-17/23:00:05 [ERR] [[任务结束#更新任务日志失败- Error 1366: Incorrect string value: '\xF0\x9F\x8E\xA7\xE7\xA7...' for column 'result' at row 1]]

    面板上的状态一直是执行中,但是看后台进程是已经kill掉了的,所以点击停止也没反应,也没有触发异常消息提醒

  • 安装初始化一直报 表单验证失败, 请检测输入

    安装初始化一直报 表单验证失败, 请检测输入

    • 数据库配置
      • 数据库选择
      • MySQL
    • 主机名
      • 127.0.0.1
    • 端口
      • 3306
    • 用户名
      • root
    • 密码
      • root
    • 数据库名称
      • gocron
    • 表前缀
    • 管理员账号配置
    • 账号
      • admin
    • 邮箱
    • 密码
      • root
    • 确认密码
    • root

    这个输入哪里有错么?

    • 日志内容
      • [Macaron] 2018-09-17 23:52:06: Started POST /api/install/store for 127.0.0.1
      • [Macaron] 2018-09-17 23:52:07: Started POST /api/install/store for 127.0.0.1
      • [Macaron] 2018-09-17 23:52:07: Completed /api/install/store 200 OK in 1.9996ms
      • [Macaron] 2018-09-17 23:52:07: Completed /api/install/store 200 OK in 287.0193ms
  • gocron是否支持非root账号的定时任务?

    gocron是否支持非root账号的定时任务?

    看了一大圈任务调度,发现大神这个最轻量,很是喜欢。 刚安装了下,发现在添加节点的时候,发现没有可以填写用户的功能。 我们生产环境有很多是非root跑的业务,比如publish跑的程序, 我们的任务计划都是加到publish账号下。

    不知道gocron是否能支持非root账号执行任务?我是这样想的: 如果一个服务器需要普通账号定时任务,那么就用普通账号身份去启动gocron-node?? 不过有的服务器既有root任务,又有普通账号任务,可能实现起来比较啰嗦。。 不知道后续gocron是否能支持指定账号身份,比如我都用root身份运行node,但是我可以指定这个node1以其他身份执行即可,期待大神的回复~~

  • api签名的部分有些问题

    api签名的部分有些问题

    问题: ctx.Req.URL.Path会忽略掉路径的前缀 "/api",计算签名不一致 例如: 实际请求path为:/api/v1/tasklog/remove/1 服务端中计算签名使用ctx.Req.URL.Path:/v1/tasklog/remove/1 客户端在计算签名使用的是"/api/v1/tasklog/remove/1"导致计算签名和系统不一致

  • 想了解下启动原理

    想了解下启动原理

    一VUE的文件编译成exe后都打包到exe里了吗?库文件也在里面?exe发布到别的机器上还要另外安装vue的库吗? 二启动时go打开端口5920,这时是如何启动VUE,或者如何到VUE的首页,或者调用到安装页面的,我看BEEGO框架是以go后端打开前端的HTML的,这个VUE一般前后端分离的方式,是要用node.js命令npm run dev启动的 你这个启动不一样,所以我有兴趣了解下。 三这个可否加一个sqlite库的支持,我想如果我发布单独应用的话,就不要求别人装mysql或者别的数据 库了,如果用户用你这个那还要附带装下数据库。

  • build(deps): bump express from 4.16.3 to 4.18.2 in /web/vue

    build(deps): bump express from 4.16.3 to 4.18.2 in /web/vue

    Bumps express from 4.16.3 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • build(deps): bump qs from 6.5.1 to 6.5.3 in /web/vue

    build(deps): bump qs from 6.5.1 to 6.5.3 in /web/vue

    Bumps qs from 6.5.1 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main

    6.5.2

    • [Fix] use safer-buffer instead of Buffer constructor
    • [Refactor] utils: module.exports one thing, instead of mutating exports (#230)
    • [Dev Deps] update browserify, eslint, iconv-lite, safer-buffer, tape, browserify
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • build(deps): bump decode-uri-component from 0.2.0 to 0.2.2 in /web/vue

    build(deps): bump decode-uri-component from 0.2.0 to 0.2.2 in /web/vue

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • build(deps): bump css-what from 2.1.0 to 2.1.3 in /web/vue

    build(deps): bump css-what from 2.1.0 to 2.1.3 in /web/vue

    Bumps css-what from 2.1.0 to 2.1.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.