Dependabot 开始支持 pub package 版本检测

今年年初,我们发布了 Flutter 2022 产品路线图,其中「基础设施建设」这部分提到:2022 年 Flutter 团队将增加对供应链的安全的投入,目的是达到符合基础设施 SLSA 4 级别中描述的要求。
供应链安全
大多数开源项目依赖了数百个开源依赖项[1],随着更多开源项目被更广泛地使用,这些依赖项给其使用者们带来了安全隐患:如果我们使用的开源项目的依赖项受到攻击和破坏该怎么办?这将让你的直接用户 (软件的最终使用者) 蒙受供应链攻击带来的风险。
供应链攻击是一种新兴的、针对软件开发者和供应商的安全威胁[2],攻击者会通过寻找不安全的网络协议、不受保护的服务器以及不安全的代码等安全漏洞并更改代码,导致使用它的程序在构建和更新的过程中被加入隐藏的恶意代码。
为了确保依赖项供应链的安全性,开发者们需要确保所有依赖项和工具定期更新到最新稳定版本,因为这些新的版本通常会包含最新功能和已知漏洞的安全修补程序。依赖项包括依赖的代码、使用的二进制文件、使用的工具以及其他组件等[3]。在 GitHub 上托管的开源代码可以使用 GitHub 提供的代码扫描功能来查找项目中的安全漏洞和错误,并使用 Dependabot 维护项目的依赖项,以确保项目自动更新到依赖项的最新版本。
启用 package 版本检测
对 Dart package 的支持可以回溯至 19 年 4 月初,当时的 Flutter 刚刚发布到 v1.2 稳定版;同年 5 月,Dependabot 被 GitHub 收购并免费为开发者提供服务。有一位社区成员在 dependabot-core#2166 这个议题 (issue) 中发起提问,希望 Dependabot 加入对 Flutter / Dart 的支持。通过 Dependabot 与 Dart 团队的共同努力,包括后期为 Flutter 命令行工具加入了一些对 package 版本检测等功能,最后在今年 3 月 22 日开启封闭测试,并于 4 月 5 日进行公开的 beta 测试。
目前,Dependabot 版本更新对 pub package 生态的支持已进入测试阶段,开发者们可以使用 Dependabot 为他们的 Flutter 或 Dart 项目加入 package 的更新检测。目前仅支持已发布到 pub.dev 网站上的 package。
如果想在自己的 Dart 或 Flutter 仓库测试 Dependabot 版本更新检测,需要创建 .github/dependabot.yml 文件并添加如下内容:
version: 2
enable-beta-ecosystems: true
updates:
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: "weekly"
请确保这两个参数设定: package-ecosystem: "pub" 以及 enable-beta-ecosystems: true。
已知限制
目前的 pub package 版本检测支持仍处于测试阶段,并包含了一些已知的限制,例如 Dependabot 安全更新 目前尚不支持,将在未来发布的版本中加入对其的支持。
其他已知的限制:
- 不支持更新以 git 方式引用的依赖
- 如果在 dependabot 中配置忽略新版本检测,将不会进行任何更新
- 不支持检测私享和自定义 pub 发布的 package
开发者们可以在 GitHub 官方的反馈讨论 里提出建议或 vote +1,也可以在 dependabot-core 仓库提交议题来帮助团队排查问题。
致谢
- 消息源: GitHub 博客 - pub beta support for Dependabot version updates
- 编辑: CFUG 本地化团队 Alex, Luke
- 制图: Lynn
Dependabot 开始支持 pub package 版本检测的更多相关文章
- pub package all in one
pub package all in one best practice The pubspec file https://dart.dev/tools/pub/pubspec demo name: ...
- GitHub 供应链安全已支持 Dart 开发者生态
通过 Dart 和 GitHub 团队的共同努力,自 10 月 7 日起,GitHub 的 Advisory Database (安全咨询数据库).Dependency Graph (依赖项关系图) ...
- Flutter Cocoon 已达到 SLSA 2 级标准的要求
文/ Jesse Seales, Dart 和 Flutter 安全工作组工程师 今年年初,我们发布了 Flutter 2022 产品路线图,其中「基础设施建设」这部分提到:2022 年 Flutte ...
- java使用poi操作word, 支持动态的行(一个占位符插入多条)和表格中动态行, 支持图片
依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifa ...
- Dart语法学习
Dart语法学习 目录 参考资料 语言特性 关键字 变量与常量 数据类型 运算符 operators 控制流程语句 异常 Exceptions 函数 Function 类 Class 类-方法 类-抽 ...
- 【攻略】如何在云开发中使用 Redis?
默认情况下,云开发的函数部署在公共网络中,只可以访问公网.如果开发者需要访问腾讯云的 Redis.TencentDB.CVM.Kafka 等资源,需要建立私有网络来确保数据安全及连接安全. 本文会演示 ...
- Dart 学习
语言特性 Dart所有的东西都是对象, 即使是数字numbers.函数function.null也都是对象,所有的对象都继承自Object类. Dart动态类型语言, 尽量给变量定义一个类型,会更安全 ...
- Flutter 2.8 更新详解
北半球的冬意已至,黄叶与气温均随风而落.年终的最后一个 Flutter 稳定版本 已悄然来到你的面前.让我们向 Flutter 2.8 打声招呼- 本次更新包含了 207 位贡献者和 178 位审核者 ...
- Dart 2.15 现已发布
作者 / Michael Thomsen, Dart & Flutter Product Manager, Google 我们已经正式发布了 Dart SDK 的 2.15 版本,该版本新增了 ...
随机推荐
- 数字IC笔试题-芯源
前言 由于最近开始找数字IC的工作,所以准备多练笔试题,下面贴上芯源笔试题,来源微信公众号<数字IC打工人> 参考资源: 1. mu_guang_ 2. 李锐博恩 3. 长弓的坚持 4. ...
- Intellij IDEA实现SpringBoot项目多端口启动的两种方法
有时候使用springboot项目时遇到这样一种情况,用一个项目需要复制很多遍进行测试,除了端口号不同以外,没有任何不同.遇到这种情况怎么办呢?这时候可以使用Intellij IDEA解决 前言 有时 ...
- 什么是Spring beans?
Spring beans 是那些形成Spring应用的主干的java对象.它们被Spring IOC容器初始化,装配,和管理.这些beans通过容器中配置的元数据创建.比如,以XML文件中 的形式定义 ...
- Springmvc入门基础(四) ---参数绑定
1.默认支持的参数类型 处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值. 除了ModelAndView以外,还可以使用Model来向页面传递数据, Model是一个接口,在参数里直接声明 ...
- Linux如何查看某个端口是否被占用
1.netstat -anp |grep 端口号 2.netstat -nultp(此处不用加端口号) 3.netstat -anp |grep 82 查看82端口的使用情况
- Samba通过Openldap统一认证
1.环境准备1.1.实验环境[root@moban ~]# cat /etc/redhat-releaseCentOS release 6.8 (Final)[root@moban ~]# uname ...
- torch.optim.SGD参数详解
随机梯度下降法 $\theta_{t} \leftarrow \theta_{t-1}-\alpha g_{t}$ Code: optimzer = torch.optim.SGD(model.par ...
- 理解OIDC协议和认证机制
当互联网应用越来越多,每个应用程序都实现了自己的身份存储.认证和授权,用户需要在应用上反复的注册与登录,体验糟糕,用户身份信息无法在多个应用间共享与同步.当使用企业应用时,企业提供了一系列应用,尽管是 ...
- vue+koa2即时聊天,实时推送比特币价格,爬取电影网站
技术栈 vue+vuex+vue-router+socket.io+koa2+mongodb+pm2自动化部署+图灵机器人+[npm script打包,cdn同步,服务器上传一个命令全搞定] 功能清单 ...
- Linux 0.11源码阅读笔记-块设备驱动程序
块设备驱动程序 块设备驱动程序负责实现对块设备数据的读写功能.内核代码统一使用缓冲块间接和块设备(如磁盘)交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据. 块设备的管理 块设备表 内核通过一张 ...