10个版本 (4个重大更改)

0.5.3 2021年12月4日
0.5.2 2021年12月4日
0.5.0 2021年11月29日
0.4.0 2021年11月28日
0.1.0 2021年9月28日

#1621 in 开发工具

每月下载 27次

GPL-2.0 许可证

110KB
2.5K SLoC

Build Status crates.io

货物提升机

此项目提供了一个备用注册表的实现。它不是拥有自己的认证机制,而是使用现有的源代码控制提供者登录。这些包括

  • Github
  • Gitlab
  • Gitea(例如codederg)

货物提升机使用访问令牌与后端交互。因此,每个动作都将被伪装。这当然需要写入权限,这也是限制的方式。

货物登录

Github

使用用户名和个人访问令牌的组合,如下所示:<username>:<token>

Gitlab

使用您的gitlab访问令牌作为货物登录令牌。

配置

配置通过JSON配置文件完成。

服务

"web": {
    "port": 8080
}

存储

文件系统存储配置

"storage": {
    "FileSystem": {
        "path": "<path>"
    }
}

S3存储配置(您可以选择省略S3访问的credentials,因为它将默认为环境变量)

"storage": {
    "S3": {
        "bucket": "<bucket name>",
        "credentials": {
            "access_key": "<access key>",
            "secret_key": "<secret key>",
            "secret_token": "<optional secret token>",
        }
    }
}

要镜像的文件将自动放入名为mirror的子文件夹中。

后端

Github配置

"backend": {
    "Github": {
        "owner": "<username>",
        "repo": "<repository>",
        "host": "<for future when hosting custom instance>",
        "cargolifter_token": "<a token to use to merge pull requests>",
        "default_branch": "<default to main>"
    }
}

Gitlab配置

"backend": {
    "Gitlab": {
        "project_id": "<project id>",
        "host": "<hosting custom instance>",
        "cargolifter_token": "<a token to use to merge pull requests>",
        "default_branch": "<default to main>"
    }
}

注册表git仓库必须包含一个预先填充的config.json,其中包含两种情况

{
    "dl": "http://<hostname>:<port>/api/v1/crates",
    "api": "http://<hostname>:<port>"
}

示例配置

{
    "backend": {
        "Github": {
            "owner": "cemoktra",
            "repo": "my-private-crates",
        }
    },
    "web": {
        "port": 8080
    },
    "storage": {
        "FileSystem": {
            "path": "./test/storage"
        }
    }
}

依赖关系

~34–52MB
~857K SLoC