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 版本,该版本新增了 ...
随机推荐
- Nextcloud fpm 版在 Dokcer 下安装踩坑
安装 首先到 https://registry.hub.docker.com/_/nextcloud 获取 Nextcloud 的示例 docker-compose version: '2' volu ...
- CF17E Palisection(manacher/回文树)
CF17E Palisection(manacher/回文树) Luogu 题解时间 直接正难则反改成求不相交的对数. manacher求出半径之后就可以差分搞出以某个位置为开头/结尾的回文串个数. ...
- WeakHashMap 是怎么工作的?
WeakHashMap 的工作与正常的 HashMap 类似,但是使用弱引用作为 key,意思就是当 key 对象没有任何引用时,key/value 将会被回收.
- java 中有几种方法可以实现一个线程?
继承 Thread 类 实现 Runnable 接口 实现 Callable 接口,需要实现的是 call() 方法
- django CBV 及其装饰器
#urls.py from django.contrib import admin from django.urls import path, re_path from app01 import vi ...
- su 和 sudo的区别
su是一个命令,可切换其他用户进行操作:而 '-' 号则是代表是否完全切换指定的用户环境信息 sudo是一个服务,可通过/etc/sudoers进行配置文件,让被限制的用户只能执行被授予的命令操作.
- 如果我不输入<!DOCTYPE HTML>,HTML 5能工作吗?
No,浏览器将无法识别HTML文件,并且HTML 5标签将无法正常工作.
- WebSQL是什么?
WebSQL是客户浏览器端的结构化的关系数据库.这是浏览器内部的本地RDBMS,你可以在这个本地RDBMS上执行SQL查询.
- vue 初识(基础语法与数据驱动模型)
1.es6的语法 let 特点: 1.局部作用域 2.不会存在变量提升 3.变量不能重复声明 const 特点: 1.局部作用域 2.不会存在变量提升 3.不能重复声明,只声明常量 不可变的量 模板字 ...
- C语言break,return
C语言break,continue,return的相似与区别 相同点: 都改变了程序的执行流程 区别是:break 用于循环和switch分支,跳出它所在分支或循环体到它所在的模块的 ...