首页 > 其他分享 >优化 GitHub 体验的浏览器插件「GitHub 热点速览」

优化 GitHub 体验的浏览器插件「GitHub 热点速览」

时间:2024-07-30 08:57:16浏览次数:7  
标签:Fork 插件 GitHub 项目 开源 github 速览 model

上周,GitHub 有个“安全问题”——CFOR(Cross Fork Object Reference)冲上了热搜,该问题的表现是:

远程仓库的提交内容任何人可以访问,即使已被删除。只需要拿到 commit ID+源/Fork 的项目地址,任何人都能访问之前提交到远程仓库的内容。下面有 3 个演示,可以复现该问题:

演示一:Fork 项目已删除,之前的提交所有人可见,复现步骤如下:

  1. Fork 任意公开的开源项目(源项目)
  2. 在 Fork 项目中提交 commit 并推送到远程仓库(push)
  3. 记下 commit ID 后删除 Fork 项目
  4. 访问源项目,并在地址栏拼接上 commit ID,即可查看之前的提交内容

演示二:源(上游)项目已被删除,但通过 Fork 项目地址和 commit ID,仍可访问源项目的提交内容。

演示三:源项目是私有项目,被 Fork(私有)后,源项目设置为公开,此时 Fork 项目中的私有内容可被任何人访问。

对此,GitHub 官方很早之前就回应过,这些不是 bug,而是故意为之的特性。既然如此,我们应该如何规避这些安全隐患呢?限于篇幅,详细讨论将在正文中展开。

说回本周的开源热搜项目,第一个开源项目是推荐给 GitHub 产品经理的 refined-github,这是一个来自“民间”的优化 GitHub 使用体验的浏览器插件。一体化的令牌管理平台 Infisical,能够有效地防止令牌和密钥信息泄漏。友好的联邦学习框架 Flower,开箱即用对新手友好。

最后,极简的 GPT-4o 客户端和用 AI 智能批量重命名文件的工具 ai-renamer,都是能帮你提升效率的 LLM 应用神器。

  • 本文目录
    • 1. 开源新闻
      • 1.1 防范 CFOR 问题的建议
    • 2. 开源热搜项目
      • 2.1 优化 GitHub 体验的浏览器插件:refined-github
      • 2.2 一体化的令牌管理平台:Infisical
      • 2.3 Linux 内核模块编程指南:lkmpg
      • 2.4 友好的联邦学习框架:Flower
      • 2.5 用 AI 批量重命名文件:ai-renamer
    • 3. HelloGitHub 热评
      • 3.1 免费的可视化 Web 页面构建平台:GrapesJS
      • 3.2 极简的 GPT-4o 客户端:gpt-computer-assistant
    • 4. 结尾

1. 开源新闻

1.1 防范 CFOR 问题的建议

爆出这个问题的文章,原标题是《Anyone can Access Deleted and Private Repository Data on GitHub》,我认为有些夸张,​因为必须满足以下条件:

  1. 你需要推送改动到远程仓库
  2. 你必须知道特定的 commit ID
  3. 机密信息本身就不应该推送到远程仓库

但删除/私有内容能在公网访问,这设计确实“反人类”。如果官方不改进,我们只能规范使用 GitHub 的流程来防止机密泄露,下面是我给出的建议:

  1. 不要在项目中放明文的密钥和令牌等机密信息,应该放在本地的环境变量中。
  2. 避免直接在 GitHub 网页上进行敏感操作,因为会自动执行 push 操作。
  3. 在本地设置 git hook 自动进行泄密检查,从源头控制泄密风险。
  4. 在将私有项目开源之前,必须进行脱敏检查。此外,即使开发私有的 Fork 项目,也应加上防止泄密的检查流程。

最后,值得一提的是 git 悬空提交,它通常用于找回被误删和被 force 掉的提交。如果你曾经“有幸”用过:git fsck –lost-found 命令,当时的心情大概是劫后余生,感谢这条神命令又救了你一命!

git push 命令不会推送悬空提交。

2. 开源热搜项目

2.1 优化 GitHub 体验的浏览器插件:refined-github

主语言:TypeScriptStar:23.8k周增长:200

这是一个简化 GitHub 界面并添加实用功能的开源浏览器插件,它通过移除页面的多余元素让界面和交互更加简洁,新增了空白字符可见、一键合并修复冲突和放弃 PR 中某个文件的所有修改等实用功能,优化了 GitHub 使用体验,支持 Chrome 和 Firefox 浏览器。

GitHub 地址→github.com/refined-github/refined-github

2.2 一体化的令牌管理平台:Infisical

主语言:TypeScriptStar:13.3k周增长:150

该项目可以帮助团队集中管理应用配置和机密信息,防止 API TOKEN、密码和公钥等信息泄漏。它提供了简单的界面、客户端 SDK、命令行工具和 API 接口,方便集中管理并集成进现有的项目和 CI/CD 流程,同时还支持令牌扫描等功能,防止 git 提交时泄密。

GitHub 地址→github.com/Infisical/infisical

2.3 Linux 内核模块编程指南:lkmpg

主语言:OtherStar:7.3k周增长:170

这是一本关于如何为 Linux 内核编写模块的指南,包含了针对最新的 5.x 和 6.x 内核版本的示例。Linux 内核模块是为 Linux 内核添加新功能的一种方法,无需修改内核本身和重启系统,编写此类程序需要具有 C 编程语言基础。

GitHub 地址→github.com/sysprog21/lkmpg

2.4 友好的联邦学习框架:Flower

主语言:PythonStar:4.6k周增长:200

联邦学习是一种分布式的机器学习方法,可以在不共享数据的情况下训练模型。该项目是一个简单易用的联邦学习框架,可与流行的机器学习框架(PyTorch、TensorFlow、JAX 和 scikit-learn 等)结合使用。它支持联邦学习训练、分析和评估,以及模拟客户端运行等功能,包含丰富的示例,适用于需要保护隐私的机器学习模型开发场景,如医疗、政企和金融等。

import flwr as fl
import tensorflow as tf

# Load model and data (MobileNetV2, CIFAR-10)
model = tf.keras.applications.MobileNetV2((32, 32, 3), classes=10, weights=None)
model.compile("adam", "sparse_categorical_crossentropy", metrics=["accuracy"])
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()

# Define Flower client
class CifarClient(fl.client.NumPyClient):
  def get_parameters(self, config):
    return model.get_weights()

  def fit(self, parameters, config):
    model.set_weights(parameters)
    model.fit(x_train, y_train, epochs=1, batch_size=32)
    return model.get_weights(), len(x_train), {}

  def evaluate(self, parameters, config):
    model.set_weights(parameters)
    loss, accuracy = model.evaluate(x_test, y_test)
    return loss, len(x_test), {"accuracy": accuracy}

# Start Flower client
fl.client.start_numpy_client(server_address="127.0.0.1:8080", client=CifarClient())

GitHub 地址→github.com/adap/flower

2.5 用 AI 批量重命名文件:ai-renamer

主语言:JavaScriptStar:1.1周增长:200

这是一个 Node.js 写的命令行工具,基于 LLM(Llava、Gemma、Llama 等)实现智能、自动化、批量重命名本地文件。它使用简单、无需人为干预,可根据文件的内容智能重命名文件,支持视频、图片和文件。

GitHub 地址→github.com/ozgrozer/ai-renamer

3. HelloGitHub 热评

在这个章节,将会分享下本周 HelloGitHub 网站上的热门开源项目,欢迎与我们分享你上手这些开源项目后的使用体验。

3.1 免费的可视化 Web 页面构建平台:GrapesJS

主语言:TypeScript

该项目通过直观的可视化界面,让用户能够通过拖拽的方式,快速设计和构建网站的 HTML 模板。它所见即所得、移动端适配,适用于官网、新闻和 CMS 等类型的网站。

项目详情→hellogithub.com/repository/572e31f5fc7541efb19c16d331796edf

3.2 极简的 GPT-4o 客户端:gpt-computer-assistant

主语言:Python

该项目是适用于 Windows、macOS 和 Ubuntu 的 GPT-4o 客户端,它拥有极简的用户界面,支持执行多种任务,包括读取屏幕、打开应用、系统音频和文本输入等。

项目详情→hellogithub.com/repository/4688db1465d5437aab851a70ba39f1e2

4. 结尾

以上就是本期「GitHub 热点速览」的全部内容,希望你能够在这里找到自己感兴趣的开源项目,如果你有其他好玩、有趣的 GitHub 开源项目想要分享,欢迎来 HelloGitHub 与我们交流和讨论。

往期回顾

标签:Fork,插件,GitHub,项目,开源,github,速览,model
From: https://www.cnblogs.com/xueweihan/p/18331360

相关文章

  • UniApp 原生插件接入步骤
    app插件主要分2种:原生语言插件原生语言插件有分为2类:(1)moduleAPI接口插件这种插件是API插件,有同步或异步API(2)UIcomponent组件插件这种插件是UI视图组件,使用到插件里的UI组件的页面要用nvueUTS插件uts集成步骤参考https://www.cnblogs.com/wenrisheng/p/183230......
  • Jenkins之插件Blue Ocean
    1、安装插件BlueOcean 2、创建并配置: 3、将生成的公钥配置到gitlab: 4、配置完公钥: 创建完后: 因为这个仓库有Jenkinsfile文件,所以会直接执行: 而不会进行设计步骤,查看执行结果: 对应仓库文件Jenkinsfile: ......
  • ComfyUI插件:ComfyUI Impact 节点(三)
    前言:学习ComfyUI是一场持久战,而ComfyUIImpact是一个庞大的模块节点库,内置许多非常实用且强大的功能节点,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、......
  • 自动数据抓取、GitHub 提交、通知和部署的最佳实践
    我正在计划一个项目来自动执行以下任务:从网站上抓取数据。检查数据是否是新的或更新的。将新数据推送到GitHub存储库。检测到新数据时发送电子邮件通知或其他类型的通知(例如Slack、FCM)。将更新的数据部署到Web应用程序或其他应用程序。鉴于可用的工具和库范围广泛,......
  • Dynamics 365 插件开发教程
    插件(Plugin)是Dynamics365中一种非常强大的扩展机制,可以在系统中实现自定义的业务逻辑。插件是在服务器端运行的代码,能够在特定事件发生时被触发,例如创建、更新或删除记录时。本文将介绍如何在Dynamics365中开发插件。准备工作在开始开发插件之前,需要准备以下工具和......
  • vue的无缝滚动,使用vue-seamless-scroll插件完成滚动动画
    文章目录一、使用步骤1、npm安装2、引入3、使用二、总结一、使用步骤1、npm安装npminstallvue-seamless-scroll--save2、引入importvueSeamlessfrom'vue-seamless-scroll'components:{vueSeamless},3、使用我这里用的是vw和vh,你们使用的时候看个人需......
  • 构建大规模账号池与本地部署:GitHub爬虫项目详解
    账号池搭建必要性常见登录方式:基于Session+Cookie的登录基于JWT的登录:登录生成JWT字符串账号池存储cookie或者JWT字符串方便后续发请求爬取数据本地部署conda建立一个虚拟环境condacreate-nnew_envpython=3.x#替换x为你需要的Python版本激活新建环......
  • ComfyUI插件:ComfyUI Impact 节点(二)
    前言:学习ComfyUI是一场持久战,而ComfyUIImpact是一个庞大的模块节点库,内置许多非常实用且强大的功能节点,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、......
  • Jenkins之插件Publish Over SSH
    1、安装插件PublishOverSSH 2、配置ssh:  进行测试: 3、配置job: 如果需要展示复制过程: 则需要将如下打开: 另外的,如果需要将下面test目录下面的index.html文件copy到远程host主机,配置如下:[root@node1test1]#lltotal12-rw-r--r--.1rootroot5Jul......
  • 18、flask-进阶-插件-缓存flask-caching - 钩子函数(中间件)
    1.认识flask-caching插件使用插件1.安装$flaskinstallflask-caching2.初始化在exts.py中导入并初始化fromflask_cachingimportCache#初始化插件cache=Cache(config={'CACHE_TYPE':'simple'#缓存类型})#和app对象绑定definit_exts(app):......