返回介绍

我们的全部 API

发布于 2023-08-06 23:35:04 字数 8377 浏览 0 评论 0 收藏 0

为了使 F-Droid 值得信赖,我们需要透明。让人们可以轻易关注我们使用的所有流程和系统帮助我们保持安全。这些是关于发布流程的关键信息的 API。

活跃包

通过 https://f-droid.org/api/v1/packages可访问一个每应用 API, 它可用来查询主存储库中应用的信息。JSON API 目前列出了已发布和建议的版本。存档的应用和包在此 API 中不可用。

示例请求:

GET https://f-droid.org/api/v1/packages/org.fdroid.fdroid HTTP/1.1

示例响应:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
  "packageName": "org.fdroid.fdroid",
  "suggestedVersionCode": 1009000,
  "packages": [
    {
      "versionName": "1.10-alpha0",
      "versionCode": 1010000
    },
    {
      "versionName": "1.9",
      "versionCode": 1009000
    }
  ]
}

shields.io 已经使用这个 API 来提供 F-Droid 徽章,像这样

存储库索引

F-Droid 是围绕所有可用的应用和软件包的签名索引构建的。 这是一个 JSON 文件,尽管它更像是一个索引而不是一个 API,因为所有信息都通过一个文件分发。 * https://f-droid.org/repo/index-v2.json * https://f-droid.org/repo/index-v1.json * https://f-droid.org/archive/index-v2.json * https://f-droid.org/archive/index-v1.json

从 index-v2 开始,支持仅包含更改的文件,称为差异(“diff”)文件。 还有一个单独的入口点,由 JAR 和 GPG 签名签署,并列出可用的索引和差异文件。

v1 仓库索引以签名的 JAR 文件的形式出现,该文件包含 index-v1.json。 最好的方法是验证 JAR 签名,然后提取 index-v1.json ,如果验证通过的话。 fdroidserver Python 库提供 fdroidserver.download_repo_index() 使这很容易完成。

还有用于验证下列 JSON 文件的 GPG 签名:

应用搜索 API

我们有了一个基础的 web-api 用来执行对 f-droid 存储库的全文搜索。

应用构建元数据

f-droid.org 中的每个应用在 fdroiddata 中有一个相应的构建元数据文件 。为了鼓励更多有创意的应用,我们将数据以标准格式存储在易于获取的地方。全部应用集合以 YAML 格式存储。文件可以通过 Application ID 使用 GitLab Raw URL https://gitlab.com/fdroid/fdroiddata/-/raw/master/metadata/<ApplicationID>.yml (例如 https://gitlab.com/fdroid/fdroiddata/-/raw/master/metadata/org.fdroid.fdroid.yml)直接访问。 存储库索引和 GitLab Repository Files API 可以用于请求 可用的 Application ID。这些文件也可以通过 GitHub 上的镜像获取,例如 https://raw.githubusercontent.com/f-droid/fdroiddata/master/metadata/org.fdroid.fdroid.yml

f-droid.org 构建服务器状态

构建循环的四个主要步骤为:checkupdatesbuildupdatedeploy。每个步骤有一个包含状态信息的 JSON 文件。步骤运行完成后此文件将立即发布。当前运行的步骤发布在_running_。

使用这些 JSON API 的例子可以参见 F-Droid Monitor 网站和 F-Droid Build Status 应用。

镜像和存储库监视器

mirror-monitorrepo-monitor 分别是检查 f-droid.org 镜像和第三方存储库状态的自动化任务。它们提供了一个单一大文件 JSON 日志记录了所有运行的检查:

可重复构建

verification.f-droid.org 是一个重构器,它从 f-droid.org 重新构建官方发行版, 然后检查它们是否可重复构建。每个包都有一个基于包名的入口点: https://verification.f-droid.org/org.fdroid.fdroid.json

然后,每个已检查的 APK 都有一个 JSON 文件, 其中的文件名格式为 <ApplicationId>_<VersionCode>.apk.json,示例: https://verification.f-droid.org/org.fdroid.fdroid_1010050.apk.json

还有一个所有成功验证过的 APK 的清单:https://verification.f-droid.org/verified.json

二进制透明度日志

二进制透明度指所有发布的包应当应当如它们发布的原样记录。这提供了检查给出的二进制文件是否由发布者制作,或来自其他地方,如漏洞。fdroidserver 拥有作为发布过程的一部分管理二进制透明度日志的内建工具。它已经在 f-droid.org 上启用: https://gitlab.com/fdroid/f-droid.org-transparency-log

因为 Gradle 和 Google Android Tools team 没有发布一个,F-Droid 做了。基本 API 是一个 JSON 文件包含包含已发布 URL 的列表。每个 URL 包含一个日志过程得到的 SHA-256 校验和列表。也有其他被跟踪的文件,取决于发布者提供什么。

issuebot

issuebot 在应用合并请求和打包请求 (RFP) 上运行以对评审者提供关于应用的信息。大部分这些信息也以 JSON 格式提供。每个报告由来自在特定应用上运行的模块的数据组成。有两个入口点:

指标

使用数据多个 F-Droid 网站生成并发布,不包含个人识别信息 (PII)。每周发布一个 JSON 文件,每个网站发布一个 JSON 索引文件。例如,这是一周的搜索指标:https://fdroid.gitlab.io/metrics/search.f-droid.org/2021-01-18.json

尽管并非真正的 API,镜像提供一些统计数据: https://ftp.fau.de/cgi-bin/show-ftp-stats.cgi

Git 统计数据

每个 git 存储库有很多令人感兴趣的元数据。GitStats 项目从这些数据中生成漂亮的图表。这不算一个 API,但它相关因为它使用公开项目数据。可从此处访问每个中心化 git 存储库的预生成页面:https://fdroid.gitlab.io/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文