关闭

浏览器扩展

UpdateSWH:检查和更新存储库的存档

这个方便的浏览器扩展允许您无缝地检查您正在浏览的存储库是否已在Software Heritage中存档和更新。

获取扩展名

通过单击您感兴趣的浏览器的图像,您可以找到并安装Updateswh扩展
                                          

了解颜色代码

浏览器右侧的彩色编码按钮包含有关存档状态的信息,并允许触发相应的操作,如下所示:

  • :获得的副本是最新的,单击该按钮将在存档的相应页面上打开一个选项卡(如果您想获得SWHID永久链接,则非常实用)
  • :存档副本不是最新的,单击按钮会触发立即保存代码请求以更新存档;右键单击将进入上一次成功存档的页面
  • :存档的副本不是最新的,上次尝试存档失败;单击该按钮会触发“立即保存代码”请求以更新存档,但可能存在技术问题,导致该存储库目前无法存档;右键单击会将您带到上一次存档的页面,该页面可能会失败
  • :此存储库在存档中找不到(至少不是来自此来源),单击按钮会触发立即保存代码请求,以将其首次存档
  • :您目前已用完了SWH API或forge API上的API调用配额:请稍等片刻,然后重试,或者获取令牌以提高速率限制(详细信息如下)
  • :对Software Heritage的API请求未成功。这可能是由于以下几个原因造成的:
    • 在大多数情况下,您访问的存储库是私有的,因此无法存档
    • 没有人是完美的,你被扩展中的错误绊倒了:你可以在选项面板中启用调试模式在扩展开发存储库中报告问题

工具提示可以回忆起所有这些,所以您不需要记住上面的所有内容,它们还提供了其他信息(例如锻造和档案上的上次修改日期)。

支持的代码托管平台

扩展支持现成的BitBucket、GitHub、GitLab.com和GitLab实例,这些实例的域名格式为吉特实验室*它还支持域名格式为Gitea.*.*和codeberg.org的Gitea实例。

您可以在选项面板中添加其他GitLab实例(请参见下文)。

未来可能会添加对其他代码托管平台和技术的支持。

时间延迟

当存储库中发生更改(例如,推送新提交)或软件遗产存档中发生更改时(例如,存档中接收了(新版本的)存储库),事件可能需要一些时间才能显示在API中。在Software Heritage方面,这通常是几分钟的问题,但在一些代码托管平台上,我们看到了几个小时左右的延迟。

为了确定要显示的正确颜色,扩展调用代码宿主API以获取存储库的上次更新日期,调用Software Heritage API以获取最新存档的日期,因此显示的颜色确实反映了这些API公开的内容,但这可能不是一段时间内的实际状态。

选择您的选项

可以通过单击浏览器栏中的图标(如果它不在栏中,请在活动扩展列表中查找它)。

这允许您选择是否启用以下选项:

  • 显示保存请求:如果选中,这会告诉扩展打开一个新选项卡,以便在您通过单击黄色或灰色按钮发出保存请求时检查该请求(当该按钮变为浅绿色时,您可以通过单击该按钮来访问同一页面)。
  • SWH调试模式:如果选中,有关扩展功能的详细信息将记录在浏览器控制台中(通常通过F12访问);这对调试很有用,除非你需要,否则不要打开它
  • GitHub API访问令牌:此文本区域允许您粘贴GitHubAPI访问令牌,如果您用完了标准GitHub API请求配额(相当低:每30分钟只有60个请求),则会很有用。如果你的按钮开始变橙色过一段时间,这就是你的情况:请关注GitHub指令并创建一个新的令牌 (不要授予它任何权利,扩展不需要它们!) 并将其粘贴到此处。
  • SWH API访问令牌:此文本区域允许您粘贴你的SWH API访问令牌,如果您用完了标准API请求配额。如果你的按钮开始变小橙色过了一会儿,这是你的情况:请登录或注册Software Heritage存档首先,然后为扩展创建访问令牌并将其粘贴到此处。
  • 其他GitLab实例:在此处添加希望扩展识别的其他GitLab实例的域名。每行一个域名,没有前缀或后缀(例如:写“src.koda.cnrs.fr”,而不是“网址:https://src.koda.cnrs.fr/”,请参见图片)。
  • 其他Gitea实例:在此处添加希望扩展识别的其他gitea实例的域名。每行一个域名,没有前缀或后缀.

注意:如果在文本字段中粘贴垃圾,扩展将无法正常工作!如果有疑问,请选择文本区域的所有内容,将其擦除以恢复正常操作,然后重试。

为什么安装警告“此扩展需要访问所有网站上的数据”?

当您第一次安装扩展时,您会看到下面的警告:“此扩展要求访问所有网站上的数据“。让我们解释一下这条消息的含义以及原因在这种特殊情况下,你不应该被它吓倒.

这个updateswh(更新)延伸需要访问权限到一个软件伪造网站的源代码有两个原因:

  1. 添加彩色按钮添加到HTML中,作为添加到DOM的“<div>”元素
  2. 监视对URL的更改当网站在幕后操纵DOM时(例如GitHub)

不幸的是,没有办法具体说明updateswh仅执行此操作,所以我们需要使用match指令对于扩展运行的脚本,其中包含“<anyurl>”,这将触发警告消息。

为了得到一个不那么可怕的消息,我们可以将访问限制为只访问已知的代码托管平台,但这意味着阻止您在您选择的平台上使用扩展(有数千个GitLab实例!)。

所以,为了给您提供更多功能,我们决定使用这个可怕的消息,但您可以签入源代码没有什么可疑的事情发生(我们不使用javascript提取器或代码混淆器,您可以阅读评论).

贡献

这个扩展是开放源码的,是根据麻省理工学院许可条款发布的。源代码位于开发存储库。欢迎捐款。