Gitness 是一个开源开发平台 2.20版本发布

Gitness 是一个开源开发平台,具有代码托管和自动化持续集成管道的强大功能。

本地运行 Gitness

最新公开发布的 docker 镜像可以在harness/gitness上找到。

要自行安装 Gitness,只需运行以下命令即可。容器启动后,您可以在浏览器中访问http://localhost:3000 。

docker run -d \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp/gitness:/data \
  --name gitness \
  --restart always \
  harness/gitness


Gitness 镜像使用一个卷来存储数据库和存储库。强烈建议使用绑定挂载或命名卷,否则一旦容器停止,所有数据都将丢失。

请访问docs.gitness.com了解如何充分利用 Gitness。

无人机在哪里?

Gitness 代表了对下一代无人机的巨额投资。Drone 专注于持续集成,而 Gitness 添加了源代码托管,使代码管理和管道更加紧密地结合在一起。

Gitness 的目标是最终在管道功能方面与 Drone 完全同等,允许用户无缝地从 Drone 迁移到 Gitness。

但是,我们预计这需要一些时间,这就是为什么我们将 Drone 的快照作为功能分支无人机自述文件),以便它可以继续开发。

至于 Gitness,开发是在分支上进行的。

有关 Gitness 的更多信息,请访问gitness.com

有关无人机的更多信息,请访问Drone.io

吉尼斯发展

先决条件

安装最新稳定版本的 Node 和 Go 1.19 或更高版本,然后安装以下 Go 程序。确保 GOPATH bin 目录已添加到您的 PATH 中。

安装protobuf

  • 检查你是否已经安装了protobufprotoc --version
  • 如果您的版本与 v3.21.11 不同,请运行brew unlink protobuf
  • 获取v3.21.11curl -s https://raw.githubusercontent.com/Homebrew/homebrew-core/9de8de7a533609ebfded833480c1f7c05a3448cb/Formula/protobuf.rb > /tmp/protobuf.rb
  • 安装它brew install /tmp/protobuf.rb
  • 查看您的版本protoc --version

安装 protoc-gen-go 和 protoc-gen-go-rpc:

  • 安装 protoc-gen-go v1.28.1 go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1 (请注意,这将在 $GOBIN 中安装二进制文件,因此请确保 $GOBIN 在您的 $PATH 中)
  • <
      >>
    • 安装 protoc-gen-go-grpc v1.2.0go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0
    $ make dep
    $ make tools
    


    建造

    第一步是构建用户界面工件:

    $ pushd web
    $ yarn install
    $ yarn build
    $ popd
    


    之后,您可以构建 gitness 二进制文件:

    $ make build
    


    跑步

    该项目支持Go支持的所有操作系统和架构。这意味着您可以在您的机器上构建并运行系统;本地开发和测试不需要 docker 容器。

    要在 启动服务器localhost:3000,只需运行以下命令:

    ./gitness server .local.env
    


    使用 Swagger 自动生成 UI 使用的 Gitness API 客户端

    添加新的 REST API 时,请确保更新 UI 使用的自动生成的客户端代码。

    要重新生成代码,请执行以下步骤:

    • 运行具有最新更改的本地 gitness 实例
    • 从中获取最新的 OpenAPI 规范http://localhost:3000/openapi.yaml并将其存储在web/src/services/code/swagger.yaml
    • 导航到web文件夹并运行yarn services

    最新的 API 更改现在应该反映在web/src/services/code/index.tsx

    用户界面

    该项目包括用于与系统交互的完整用户界面。运行应用程序时,您可以通过http://localhost:3000在浏览器中导航 来访问用户界面。

    休息API

    该项目包含一个 swagger 规范。http://localhost:3000/swagger当您运行应用程序时,您可以通过在浏览器中导航来访问 swagger 规范(有关原始 yaml,请参阅http://localhost:3000/openapi.yaml)。

    对于测试,最简单的方法是使用 cli 创建令牌(这需要运行 gitness 服务器):

    # LOGIN (user: admin, pw: changeit)
    $ ./gitness login
    # GENERATE PAT (1 YEAR VALIDITY)
    $ ./gitness user pat "my-pat-uid" 2592000
    


    该命令输出已被授予用户完全访问权限的有效 PAT。Authorization然后可以使用 Postman 或curl将令牌作为标头的一部分发送:

    $ curl http://localhost:3000/api/v1/user \
    -H "Authorization: Bearer $TOKEN"
    


    命令行界面

    该项目包括用于开发和运行服务的非常基本的命令行工具。请记住,您必须先启动服务器才能执行命令。

    有关支持的操作的完整列表,请参阅

    $ ./gitness --help
    


© GVGNN 2013-2026