gitness - Gitness 是一个开源开发者平台,具有源代码控制管理、持续集成和持续交付功能。

Created at: 2014-02-07 15:54:44
Language: Go
License: Apache-2.0

吉特内斯

你的轻量级、超快速的代码托管和持续集成服务(由 Drone 提供支持)

Gitness正在Drone之上构建,以创建一个具有代码托管和管道功能的新开源开发人员平台。Gitness开发正在分支中进行。无人机开发将继续在分支中,直到我们准备好发布第一个标记的 Gitness 版本,届时项目将完全收敛。

master
drone

有关 Gitness 的更多信息,请访问 gitness.com。有关无人机的更多信息,请访问 drone.io

使用 Docker

最新公开发布的 docker 镜像可以在 harness/gitness 上找到。要试用,请运行以下命令。容器运行后,你可以在浏览器中访问 localhost:3000。

docker run \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp/gitness:/data \
  harness/gitness:latest

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

先决条件

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

安装原型

  • 检查你是否已经安装了 protobuf
    protoc --version
  • 如果你的版本与 v3.21.11 不同,请运行
    brew unlink protobuf
  • 获取 v3.21.11
    curl -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(请注意,这将在$GOBIN中安装二进制文件,因此请确保$GOBIN在你的$PATH中)

    go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1

  • 安装 protoc-gen-go-grpc v1.2.0

    go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0

$ make dep
$ make tools

构建用户界面:

$ pushd web
$ yarn install
$ yarn build
$ popd

构建服务器和命令行工具:

$ make build

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

在 启动服务器

localhost:3000

./gitness server .local.env

用户界面

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

http://localhost:3000

斯瓦格

该项目包括一个招摇的规范。运行应用程序时,可以通过在浏览器中导航到 来访问 swagger 规范(有关原始 yaml,请参阅)。

http://localhost:3000/swagger
http://localhost:3000/openapi.yaml

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

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

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

  • 使用最新更改运行本地 gitness 实例
  • 从中获取最新的 OpenAPI 规范并将其存储在
    http://localhost:3000/openapi.yaml
    web/src/services/code/swagger.yaml

最新的 API 更改现在应反映在

web/src/services/code/index.tsx

休息接口

请参考 大摇大摆 了解我们 rest API 的规范。

对于测试,最简单的方法是使用 PAT 以默认用户身份执行操作:

admin

# LOGIN (user: admin, pw: changeit)
$ ./gitness login

# GENERATE PAT (1 YEAR VALIDITY)
$ ./gitness user pat "my-pat-uid" 2592000

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

Authorization

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

命令行界面

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

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

$ ./gitness --help