mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Merge pull request #482 from kradalby/flake-build-env
Add Nix reproducible build system
This commit is contained in:
		
						commit
						e80954b6c8
					
				
							
								
								
									
										17
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@ -22,30 +22,21 @@ jobs:
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            *.nix
 | 
			
		||||
            go.*
 | 
			
		||||
            **/*.go
 | 
			
		||||
            integration_test/
 | 
			
		||||
            config-example.yaml
 | 
			
		||||
 | 
			
		||||
      - name: Setup Go
 | 
			
		||||
      - uses: cachix/install-nix-action@v16
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        uses: actions/setup-go@v2
 | 
			
		||||
        with:
 | 
			
		||||
          go-version: "1.18.0"
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: |
 | 
			
		||||
          go version
 | 
			
		||||
          sudo apt update
 | 
			
		||||
          sudo apt install -y make
 | 
			
		||||
 | 
			
		||||
      - name: Run build
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: make build
 | 
			
		||||
        run: nix build
 | 
			
		||||
 | 
			
		||||
      - uses: actions/upload-artifact@v2
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        with:
 | 
			
		||||
          name: headscale-linux
 | 
			
		||||
          path: headscale
 | 
			
		||||
          path: result/bin/headscale
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
								
							@ -16,6 +16,7 @@ jobs:
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            *.nix
 | 
			
		||||
            go.*
 | 
			
		||||
            **/*.go
 | 
			
		||||
            integration_test/
 | 
			
		||||
@ -45,6 +46,7 @@ jobs:
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            *.nix
 | 
			
		||||
            **/*.md
 | 
			
		||||
            **/*.yml
 | 
			
		||||
            **/*.yaml
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/test-integration.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-integration.yml
									
									
									
									
										vendored
									
									
								
							@ -16,17 +16,15 @@ jobs:
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            *.nix
 | 
			
		||||
            go.*
 | 
			
		||||
            **/*.go
 | 
			
		||||
            integration_test/
 | 
			
		||||
            config-example.yaml
 | 
			
		||||
 | 
			
		||||
      - name: Setup Go
 | 
			
		||||
      - uses: cachix/install-nix-action@v16
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        uses: actions/setup-go@v2
 | 
			
		||||
        with:
 | 
			
		||||
          go-version: "1.18.0"
 | 
			
		||||
 | 
			
		||||
      - name: Run Integration tests
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: make test_integration
 | 
			
		||||
        run: nix develop --command -- make test_integration
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							@ -16,28 +16,15 @@ jobs:
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            *.nix
 | 
			
		||||
            go.*
 | 
			
		||||
            **/*.go
 | 
			
		||||
            integration_test/
 | 
			
		||||
            config-example.yaml
 | 
			
		||||
 | 
			
		||||
      - name: Setup Go
 | 
			
		||||
      - uses: cachix/install-nix-action@v16
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        uses: actions/setup-go@v2
 | 
			
		||||
        with:
 | 
			
		||||
          go-version: "1.18.0"
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: |
 | 
			
		||||
          go version
 | 
			
		||||
          sudo apt update
 | 
			
		||||
          sudo apt install -y make
 | 
			
		||||
 | 
			
		||||
      - name: Run tests
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: make test
 | 
			
		||||
 | 
			
		||||
      - name: Run build
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: make
 | 
			
		||||
        run: nix develop --check
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -28,6 +28,6 @@ derp.yaml
 | 
			
		||||
 | 
			
		||||
test_output/ 
 | 
			
		||||
 | 
			
		||||
# Nix and direnv
 | 
			
		||||
.direnv/
 | 
			
		||||
# Nix build output
 | 
			
		||||
result
 | 
			
		||||
.direnv/
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
								
							@ -91,6 +91,10 @@ Please have a look at the documentation under [`docs/`](docs/).
 | 
			
		||||
To contribute to headscale you would need the lastest version of [Go](https://golang.org)
 | 
			
		||||
and [Buf](https://buf.build)(Protobuf generator).
 | 
			
		||||
 | 
			
		||||
We recommend using [Nix](https://nixos.org/) to setup a development environment. This can
 | 
			
		||||
be done with `nix develop`, which will install the tools and give you a shell.
 | 
			
		||||
This guarantees that you will have the same dev env as `headscale` maintainers.
 | 
			
		||||
 | 
			
		||||
PRs and suggestions are welcome.
 | 
			
		||||
 | 
			
		||||
### Code style
 | 
			
		||||
@ -115,10 +119,12 @@ Check out the `.golangci.yaml` and `Makefile` to see the specific configuration.
 | 
			
		||||
 | 
			
		||||
- Go
 | 
			
		||||
- Buf
 | 
			
		||||
- Protobuf tools:
 | 
			
		||||
- Protobuf tools
 | 
			
		||||
 | 
			
		||||
Install and activate:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
make install-protobuf-plugins
 | 
			
		||||
nix develop
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Testing and building
 | 
			
		||||
@ -140,6 +146,12 @@ make test
 | 
			
		||||
 | 
			
		||||
To build the program:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
nix build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
or
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										42
									
								
								flake.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								flake.lock
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,42 @@
 | 
			
		||||
{
 | 
			
		||||
  "nodes": {
 | 
			
		||||
    "flake-utils": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1644229661,
 | 
			
		||||
        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1647536224,
 | 
			
		||||
        "narHash": "sha256-SUIiz4DhMXgM7i+hvFWmLnhywr1WeRGIz+EIbwQQguM=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "dd8cebebbf0f9352501f251ac37b851d947f92dc",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "id": "nixpkgs",
 | 
			
		||||
        "ref": "master",
 | 
			
		||||
        "type": "indirect"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils",
 | 
			
		||||
        "nixpkgs": "nixpkgs"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "root": "root",
 | 
			
		||||
  "version": 7
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										148
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,148 @@
 | 
			
		||||
{
 | 
			
		||||
  description = "headscale - Open Source Tailscale Control server";
 | 
			
		||||
 | 
			
		||||
  inputs = {
 | 
			
		||||
    # TODO: Use unstable when Go 1.18 has made it in
 | 
			
		||||
    # https://nixpk.gs/pr-tracker.html?pr=164292
 | 
			
		||||
    # nixpkgs.url = "nixpkgs/nixpkgs-unstable";
 | 
			
		||||
    nixpkgs.url = "nixpkgs/master";
 | 
			
		||||
    flake-utils.url = "github:numtide/flake-utils";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, flake-utils, ... }:
 | 
			
		||||
    let
 | 
			
		||||
      headscaleVersion = if (self ? shortRev) then self.shortRev else "dev";
 | 
			
		||||
    in
 | 
			
		||||
    {
 | 
			
		||||
      overlay = final: prev:
 | 
			
		||||
        let
 | 
			
		||||
          pkgs = nixpkgs.legacyPackages.${prev.system};
 | 
			
		||||
        in
 | 
			
		||||
        rec {
 | 
			
		||||
          golines =
 | 
			
		||||
            pkgs.buildGoModule rec {
 | 
			
		||||
              pname = "golines";
 | 
			
		||||
              version = "0.9.0";
 | 
			
		||||
 | 
			
		||||
              src = pkgs.fetchFromGitHub {
 | 
			
		||||
                owner = "segmentio";
 | 
			
		||||
                repo = "golines";
 | 
			
		||||
                rev = "v${version}";
 | 
			
		||||
                sha256 = "sha256-BUXEg+4r9L/gqe4DhTlhN55P3jWt7ZyWFQycO6QePrw=";
 | 
			
		||||
              };
 | 
			
		||||
 | 
			
		||||
              vendorSha256 = "sha256-sEzWUeVk5GB0H41wrp12P8sBWRjg0FHUX6ABDEEBqK8=";
 | 
			
		||||
 | 
			
		||||
              nativeBuildInputs = [ pkgs.installShellFiles ];
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
          protoc-gen-grpc-gateway =
 | 
			
		||||
            pkgs.buildGoModule rec {
 | 
			
		||||
              pname = "grpc-gateway";
 | 
			
		||||
              version = "2.8.0";
 | 
			
		||||
 | 
			
		||||
              src = pkgs.fetchFromGitHub {
 | 
			
		||||
                owner = "grpc-ecosystem";
 | 
			
		||||
                repo = "grpc-gateway";
 | 
			
		||||
                rev = "v${version}";
 | 
			
		||||
                sha256 = "sha256-8eBBBYJ+tBjB2fgPMX/ZlbN3eeS75e8TAZYOKXs6hcg=";
 | 
			
		||||
              };
 | 
			
		||||
 | 
			
		||||
              vendorSha256 = "sha256-AW2Gn/mlZyLMwF+NpK59eiOmQrYWW/9HPjbunYc9Ij4=";
 | 
			
		||||
 | 
			
		||||
              nativeBuildInputs = [ pkgs.installShellFiles ];
 | 
			
		||||
 | 
			
		||||
              subPackages = [ "protoc-gen-grpc-gateway" "protoc-gen-openapiv2" ];
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
          headscale =
 | 
			
		||||
            pkgs.buildGo118Module rec {
 | 
			
		||||
              pname = "headscale";
 | 
			
		||||
              version = headscaleVersion;
 | 
			
		||||
              src = pkgs.lib.cleanSource self;
 | 
			
		||||
 | 
			
		||||
              # When updating go.mod or go.sum, a new sha will need to be calculated,
 | 
			
		||||
              # update this if you have a mismatch after doing a change to thos files.
 | 
			
		||||
              vendorSha256 = "sha256-J2d4qSBwpw1GET0pu2ol3+7HsyQ95iC1vCJUT5ed7IM=";
 | 
			
		||||
 | 
			
		||||
              ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ];
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
    } // flake-utils.lib.eachDefaultSystem
 | 
			
		||||
      (system:
 | 
			
		||||
        let
 | 
			
		||||
          pkgs = import nixpkgs {
 | 
			
		||||
            overlays = [ self.overlay ];
 | 
			
		||||
            inherit system;
 | 
			
		||||
          };
 | 
			
		||||
          buildDeps = with pkgs; [ git go_1_18 gnumake ];
 | 
			
		||||
          devDeps = with pkgs;
 | 
			
		||||
            buildDeps ++ [
 | 
			
		||||
              golangci-lint
 | 
			
		||||
              golines
 | 
			
		||||
              nodePackages.prettier
 | 
			
		||||
 | 
			
		||||
              # Protobuf dependencies
 | 
			
		||||
              protobuf
 | 
			
		||||
              protoc-gen-go
 | 
			
		||||
              protoc-gen-go-grpc
 | 
			
		||||
              protoc-gen-grpc-gateway
 | 
			
		||||
              buf
 | 
			
		||||
              clang-tools # clang-format
 | 
			
		||||
            ];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          # Add entry to build a docker image with headscale
 | 
			
		||||
          # caveat: only works on Linux
 | 
			
		||||
          #
 | 
			
		||||
          # Usage:
 | 
			
		||||
          # nix build .#headscale-docker
 | 
			
		||||
          # docker load < result
 | 
			
		||||
          headscale-docker = pkgs.dockerTools.buildLayeredImage {
 | 
			
		||||
            name = "headscale";
 | 
			
		||||
            tag = headscaleVersion;
 | 
			
		||||
            contents = [ pkgs.headscale ];
 | 
			
		||||
            config.Entrypoint = [ (pkgs.headscale + "/bin/headscale") ];
 | 
			
		||||
          };
 | 
			
		||||
        in
 | 
			
		||||
        rec {
 | 
			
		||||
          # `nix develop`
 | 
			
		||||
          devShell = pkgs.mkShell { buildInputs = devDeps; };
 | 
			
		||||
 | 
			
		||||
          # `nix build`
 | 
			
		||||
          packages = with pkgs; {
 | 
			
		||||
            inherit headscale;
 | 
			
		||||
            inherit headscale-docker;
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          defaultPackage = pkgs.headscale;
 | 
			
		||||
 | 
			
		||||
          # `nix run`
 | 
			
		||||
          apps.headscale = flake-utils.lib.mkApp {
 | 
			
		||||
            drv = packages.headscale;
 | 
			
		||||
          };
 | 
			
		||||
          defaultApp = apps.headscale;
 | 
			
		||||
 | 
			
		||||
          checks = {
 | 
			
		||||
            format = pkgs.runCommand "check-format"
 | 
			
		||||
              {
 | 
			
		||||
                buildInputs = with pkgs; [
 | 
			
		||||
                  gnumake
 | 
			
		||||
                  nixpkgs-fmt
 | 
			
		||||
                  golangci-lint
 | 
			
		||||
                  nodePackages.prettier
 | 
			
		||||
                  golines
 | 
			
		||||
                  clang-tools
 | 
			
		||||
                ];
 | 
			
		||||
              } ''
 | 
			
		||||
              ${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt ${./.}
 | 
			
		||||
              ${pkgs.golangci-lint}/bin/golangci-lint run --fix --timeout 10m
 | 
			
		||||
              ${pkgs.nodePackages.prettier}/bin/prettier --write '**/**.{ts,js,md,yaml,yml,sass,css,scss,html}'
 | 
			
		||||
              ${pkgs.golines}/bin/golines --max-len=88 --base-formatter=gofumpt -w ${./.}
 | 
			
		||||
              ${pkgs.clang-tools}/bin/clang-format -style="{BasedOnStyle: Google, IndentWidth: 4, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, ColumnLimit: 0}" -i ${./.}
 | 
			
		||||
            '';
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        });
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										84
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								go.mod
									
									
									
									
									
								
							@ -4,7 +4,6 @@ go 1.18
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/AlecAivazis/survey/v2 v2.3.2
 | 
			
		||||
	github.com/bufbuild/buf v1.4.0
 | 
			
		||||
	github.com/ccding/go-stun/stun v0.0.0-20200514191101-4dc67bcdb029
 | 
			
		||||
	github.com/coreos/go-oidc/v3 v3.1.0
 | 
			
		||||
	github.com/efekarakus/termcolor v1.0.1
 | 
			
		||||
@ -14,7 +13,6 @@ require (
 | 
			
		||||
	github.com/gofrs/uuid v4.2.0+incompatible
 | 
			
		||||
	github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
 | 
			
		||||
	github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.3
 | 
			
		||||
	github.com/infobloxopen/protoc-gen-gorm v1.1.0
 | 
			
		||||
	github.com/klauspost/compress v1.15.1
 | 
			
		||||
	github.com/ory/dockertest/v3 v3.8.1
 | 
			
		||||
	github.com/patrickmn/go-cache v2.1.0+incompatible
 | 
			
		||||
@ -33,7 +31,6 @@ require (
 | 
			
		||||
	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
 | 
			
		||||
	google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4
 | 
			
		||||
	google.golang.org/grpc v1.45.0
 | 
			
		||||
	google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0
 | 
			
		||||
	google.golang.org/protobuf v1.28.0
 | 
			
		||||
	gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
 | 
			
		||||
	gopkg.in/yaml.v2 v2.4.0
 | 
			
		||||
@ -45,120 +42,99 @@ require (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
 | 
			
		||||
	github.com/Microsoft/go-winio v0.5.2 // indirect
 | 
			
		||||
	github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
 | 
			
		||||
	github.com/Microsoft/go-winio v0.5.1 // indirect
 | 
			
		||||
	github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
 | 
			
		||||
	github.com/akutz/memconn v0.1.0 // indirect
 | 
			
		||||
	github.com/atomicgo/cursor v0.0.1 // indirect
 | 
			
		||||
	github.com/beorn7/perks v1.0.1 // indirect
 | 
			
		||||
	github.com/cenkalti/backoff/v4 v4.1.2 // indirect
 | 
			
		||||
	github.com/cespare/xxhash/v2 v2.1.2 // indirect
 | 
			
		||||
	github.com/containerd/continuity v0.2.2 // indirect
 | 
			
		||||
	github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect
 | 
			
		||||
	github.com/containerd/continuity v0.0.0-20190827140505-75bee3e2ccb6 // indirect
 | 
			
		||||
	github.com/davecgh/go-spew v1.1.1 // indirect
 | 
			
		||||
	github.com/denisenkom/go-mssqldb v0.12.0 // indirect
 | 
			
		||||
	github.com/docker/cli v20.10.12+incompatible // indirect
 | 
			
		||||
	github.com/docker/docker v20.10.12+incompatible // indirect
 | 
			
		||||
	github.com/docker/cli v20.10.11+incompatible // indirect
 | 
			
		||||
	github.com/docker/docker v20.10.7+incompatible // indirect
 | 
			
		||||
	github.com/docker/go-connections v0.4.0 // indirect
 | 
			
		||||
	github.com/docker/go-units v0.4.0 // indirect
 | 
			
		||||
	github.com/fsnotify/fsnotify v1.5.1 // indirect
 | 
			
		||||
	github.com/gin-contrib/sse v0.1.0 // indirect
 | 
			
		||||
	github.com/glebarez/go-sqlite v1.14.8 // indirect
 | 
			
		||||
	github.com/go-playground/locales v0.14.0 // indirect
 | 
			
		||||
	github.com/go-playground/universal-translator v0.18.0 // indirect
 | 
			
		||||
	github.com/go-playground/validator/v10 v10.10.0 // indirect
 | 
			
		||||
	github.com/go-sql-driver/mysql v1.6.0 // indirect
 | 
			
		||||
	github.com/gofrs/flock v0.8.1 // indirect
 | 
			
		||||
	github.com/glebarez/go-sqlite v1.14.7 // indirect
 | 
			
		||||
	github.com/go-playground/locales v0.13.0 // indirect
 | 
			
		||||
	github.com/go-playground/universal-translator v0.17.0 // indirect
 | 
			
		||||
	github.com/go-playground/validator/v10 v10.4.1 // indirect
 | 
			
		||||
	github.com/gogo/protobuf v1.3.2 // indirect
 | 
			
		||||
	github.com/golang/glog v1.0.0 // indirect
 | 
			
		||||
	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
 | 
			
		||||
	github.com/golang/protobuf v1.5.2 // indirect
 | 
			
		||||
	github.com/google/go-github v17.0.0+incompatible // indirect
 | 
			
		||||
	github.com/google/go-querystring v1.1.0 // indirect
 | 
			
		||||
	github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
 | 
			
		||||
	github.com/google/uuid v1.3.0 // indirect
 | 
			
		||||
	github.com/gookit/color v1.5.0 // indirect
 | 
			
		||||
	github.com/gookit/color v1.4.2 // indirect
 | 
			
		||||
	github.com/hashicorp/go-version v1.4.0 // indirect
 | 
			
		||||
	github.com/hashicorp/hcl v1.0.0 // indirect
 | 
			
		||||
	github.com/imdario/mergo v0.3.12 // indirect
 | 
			
		||||
	github.com/inconshreveable/mousetrap v1.0.0 // indirect
 | 
			
		||||
	github.com/jackc/chunkreader/v2 v2.0.1 // indirect
 | 
			
		||||
	github.com/jackc/pgconn v1.11.0 // indirect
 | 
			
		||||
	github.com/jackc/pgconn v1.10.1 // indirect
 | 
			
		||||
	github.com/jackc/pgio v1.0.0 // indirect
 | 
			
		||||
	github.com/jackc/pgpassfile v1.0.0 // indirect
 | 
			
		||||
	github.com/jackc/pgproto3/v2 v2.2.0 // indirect
 | 
			
		||||
	github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect
 | 
			
		||||
	github.com/jackc/pgtype v1.10.0 // indirect
 | 
			
		||||
	github.com/jackc/pgx/v4 v4.15.0 // indirect
 | 
			
		||||
	github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a // indirect
 | 
			
		||||
	github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f // indirect
 | 
			
		||||
	github.com/jhump/protoreflect v1.12.1-0.20220417024638-438db461d753 // indirect
 | 
			
		||||
	github.com/jinzhu/gorm v1.9.16 // indirect
 | 
			
		||||
	github.com/jackc/pgtype v1.9.1 // indirect
 | 
			
		||||
	github.com/jackc/pgx/v4 v4.14.1 // indirect
 | 
			
		||||
	github.com/jinzhu/inflection v1.0.0 // indirect
 | 
			
		||||
	github.com/jinzhu/now v1.1.4 // indirect
 | 
			
		||||
	github.com/json-iterator/go v1.1.12 // indirect
 | 
			
		||||
	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
 | 
			
		||||
	github.com/klauspost/pgzip v1.2.5 // indirect
 | 
			
		||||
	github.com/kr/pretty v0.3.0 // indirect
 | 
			
		||||
	github.com/kr/text v0.2.0 // indirect
 | 
			
		||||
	github.com/leodido/go-urn v1.2.1 // indirect
 | 
			
		||||
	github.com/lib/pq v1.10.3 // indirect
 | 
			
		||||
	github.com/magiconair/properties v1.8.6 // indirect
 | 
			
		||||
	github.com/leodido/go-urn v1.2.0 // indirect
 | 
			
		||||
	github.com/magiconair/properties v1.8.5 // indirect
 | 
			
		||||
	github.com/mattn/go-colorable v0.1.12 // indirect
 | 
			
		||||
	github.com/mattn/go-isatty v0.0.14 // indirect
 | 
			
		||||
	github.com/mattn/go-runewidth v0.0.13 // indirect
 | 
			
		||||
	github.com/mattn/go-sqlite3 v1.14.11 // indirect
 | 
			
		||||
	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
 | 
			
		||||
	github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
 | 
			
		||||
	github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
 | 
			
		||||
	github.com/mitchellh/go-ps v1.0.0 // indirect
 | 
			
		||||
	github.com/mitchellh/mapstructure v1.4.3 // indirect
 | 
			
		||||
	github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect
 | 
			
		||||
	github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 // indirect
 | 
			
		||||
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 | 
			
		||||
	github.com/modern-go/reflect2 v1.0.2 // indirect
 | 
			
		||||
	github.com/opencontainers/go-digest v1.0.0 // indirect
 | 
			
		||||
	github.com/opencontainers/go-digest v1.0.0-rc1 // indirect
 | 
			
		||||
	github.com/opencontainers/image-spec v1.0.2 // indirect
 | 
			
		||||
	github.com/opencontainers/runc v1.1.0 // indirect
 | 
			
		||||
	github.com/opencontainers/runc v1.0.2 // indirect
 | 
			
		||||
	github.com/pelletier/go-toml v1.9.4 // indirect
 | 
			
		||||
	github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
 | 
			
		||||
	github.com/pkg/errors v0.9.1 // indirect
 | 
			
		||||
	github.com/pkg/profile v1.6.0 // indirect
 | 
			
		||||
	github.com/pmezard/go-difflib v1.0.0 // indirect
 | 
			
		||||
	github.com/prometheus/client_model v0.2.0 // indirect
 | 
			
		||||
	github.com/prometheus/common v0.32.1 // indirect
 | 
			
		||||
	github.com/prometheus/procfs v0.7.3 // indirect
 | 
			
		||||
	github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
 | 
			
		||||
	github.com/rivo/uniseg v0.2.0 // indirect
 | 
			
		||||
	github.com/rogpeppe/go-internal v1.8.1 // indirect
 | 
			
		||||
	github.com/russross/blackfriday/v2 v2.1.0 // indirect
 | 
			
		||||
	github.com/rogpeppe/go-internal v1.8.1-0.20211023094830-115ce09fd6b4 // indirect
 | 
			
		||||
	github.com/sirupsen/logrus v1.8.1 // indirect
 | 
			
		||||
	github.com/spf13/afero v1.8.1 // indirect
 | 
			
		||||
	github.com/spf13/afero v1.6.0 // indirect
 | 
			
		||||
	github.com/spf13/cast v1.4.1 // indirect
 | 
			
		||||
	github.com/spf13/jwalterweatherman v1.1.0 // indirect
 | 
			
		||||
	github.com/spf13/pflag v1.0.5 // indirect
 | 
			
		||||
	github.com/subosito/gotenv v1.2.0 // indirect
 | 
			
		||||
	github.com/ugorji/go/codec v1.2.7 // indirect
 | 
			
		||||
	github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
 | 
			
		||||
	github.com/ugorji/go/codec v1.1.7 // indirect
 | 
			
		||||
	github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
 | 
			
		||||
	github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
 | 
			
		||||
	github.com/xeipuuv/gojsonschema v1.2.0 // indirect
 | 
			
		||||
	github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect
 | 
			
		||||
	go.opencensus.io v0.23.0 // indirect
 | 
			
		||||
	go.uber.org/atomic v1.9.0 // indirect
 | 
			
		||||
	go.uber.org/multierr v1.8.0 // indirect
 | 
			
		||||
	go.uber.org/zap v1.21.0 // indirect
 | 
			
		||||
	go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect
 | 
			
		||||
	go4.org/mem v0.0.0-20210711025021-927187094b94 // indirect
 | 
			
		||||
	go4.org/unsafe/assume-no-moving-gc v0.0.0-20211027215541-db492cf91b37 // indirect
 | 
			
		||||
	golang.org/x/net v0.0.0-20220412020605-290c469a71a5 // indirect
 | 
			
		||||
	golang.org/x/sys v0.0.0-20220412211240-33da011f77ad // indirect
 | 
			
		||||
	golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 // indirect
 | 
			
		||||
	golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect
 | 
			
		||||
	golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27 // indirect
 | 
			
		||||
	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
 | 
			
		||||
	golang.org/x/text v0.3.7 // indirect
 | 
			
		||||
	golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 // indirect
 | 
			
		||||
	google.golang.org/appengine v1.6.7 // indirect
 | 
			
		||||
	gopkg.in/ini.v1 v1.66.4 // indirect
 | 
			
		||||
	gopkg.in/square/go-jose.v2 v2.6.0 // indirect
 | 
			
		||||
	modernc.org/libc v1.14.5 // indirect
 | 
			
		||||
	gopkg.in/ini.v1 v1.66.2 // indirect
 | 
			
		||||
	gopkg.in/square/go-jose.v2 v2.5.1 // indirect
 | 
			
		||||
	modernc.org/libc v1.14.3 // indirect
 | 
			
		||||
	modernc.org/mathutil v1.4.1 // indirect
 | 
			
		||||
	modernc.org/memory v1.0.5 // indirect
 | 
			
		||||
	modernc.org/sqlite v1.14.7 // indirect
 | 
			
		||||
	sigs.k8s.io/yaml v1.3.0 // indirect
 | 
			
		||||
	modernc.org/sqlite v1.14.5 // indirect
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								tools.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								tools.go
									
									
									
									
									
								
							@ -1,13 +0,0 @@
 | 
			
		||||
//go:build tools
 | 
			
		||||
// +build tools
 | 
			
		||||
 | 
			
		||||
package tools
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/bufbuild/buf/cmd/buf"
 | 
			
		||||
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway"
 | 
			
		||||
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2"
 | 
			
		||||
	_ "github.com/infobloxopen/protoc-gen-gorm"
 | 
			
		||||
	_ "google.golang.org/grpc/cmd/protoc-gen-go-grpc"
 | 
			
		||||
	_ "google.golang.org/protobuf/cmd/protoc-gen-go"
 | 
			
		||||
)
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user