mirror of https://github.com/harness/drone.git
[MAINT] Isolate harness app into harness package (#133)
parent
eb3cad3bec
commit
43f0be35e0
35
.harness.env
35
.harness.env
|
@ -1,35 +0,0 @@
|
||||||
# Gitness values
|
|
||||||
GITNESS_TRACE=true
|
|
||||||
GITNESS_WEBHOOK_ALLOW_LOOPBACK=true
|
|
||||||
|
|
||||||
GITNESS_PRINCIPAL_SYSTEM_UID="harness"
|
|
||||||
GITNESS_PRINCIPAL_SYSTEM_DISPLAY_NAME="Harness"
|
|
||||||
GITNESS_PRINCIPAL_SYSTEM_EMAIL="noreply@harness.io"
|
|
||||||
|
|
||||||
GITNESS_WEBHOOK_HEADER_IDENTITY="Harness"
|
|
||||||
|
|
||||||
# Harness specifc values
|
|
||||||
HARNESS_JWT_IDENTITY="code"
|
|
||||||
HARNESS_JWT_SECRET="IC04LYMBf1lDP5oeY4hupxd4HJhLmN6azUku3xEbeE3SUx5G3ZYzhbiwVtK4i7AmqyU9OZkwB4v8E9qM"
|
|
||||||
HARNESS_JWT_VALIDINMIN=1440
|
|
||||||
HARNESS_JWT_BEARER_SECRET="dOkdsVqdRPPRJG31XU0qY4MPqmBBMk0PTAGIKM6O7TGqhjyxScIdJe80mwh5Yb5zF3KxYBHw6B3Lfzlq"
|
|
||||||
|
|
||||||
HARNESS_SERVICES_IDENTITY_JWT_IDENTITY="IdentityService"
|
|
||||||
HARNESS_SERVICES_IDENTITY_JWT_SECRET="HVSKUYqD4e5Rxu12hFDdCJKGM64sxgEynvdDhaOHaTHhwwn0K4Ttr0uoOxSsEVYNrUU"
|
|
||||||
|
|
||||||
HARNESS_SERVICES_ACL_IGNORE=true
|
|
||||||
HARNESS_SERVICES_ACL_CLIENT_SECURE=false
|
|
||||||
HARNESS_SERVICES_ACL_CLIENT_BASEURL="http://localhost:9006/api"
|
|
||||||
|
|
||||||
HARNESS_SERVICES_MANAGER_CLIENT_SECURE=false
|
|
||||||
HARNESS_SERVICES_MANAGER_CLIENT_BASEURL="http://localhost:3457/api"
|
|
||||||
HARNESS_SERVICES_MANAGER_JWT_IDENTITY="Manager"
|
|
||||||
HARNESS_SERVICES_MANAGER_JWT_SECRET="dOkdsVqdRPPRJG31XU0qY4MPqmBBMk0PTAGIKM6O7TGqhjyxScIdJe80mwh5Yb5zF3KxYBHw6B3Lfzlq"
|
|
||||||
|
|
||||||
HARNESS_SERVICES_NGMANAGER_CLIENT_SECURE=false
|
|
||||||
HARNESS_SERVICES_NGMANAGER_CLIENT_BASEURL="http://localhost:7457"
|
|
||||||
HARNESS_SERVICES_NGMANAGER_JWT_IDENTITY="NextGenManager"
|
|
||||||
HARNESS_SERVICES_NGMANAGER_JWT_SECRET="IC04LYMBf1lDP5oeY4hupxd4HJhLmN6azUku3xEbeE3SUx5G3ZYzhbiwVtK4i7AmqyU9OZkwB4v8E9qM"
|
|
||||||
|
|
||||||
HARNESS_SERVICES_CIMANAGER_JWT_IDENTITY="CIManager"
|
|
||||||
HARNESS_SERVICES_CIMANAGER_JWT_SECRET="IC04LYMBf1lDP5oeY4hupxd4HJhLmN6azUku3xEbeE3SUx5G3ZYzhbiwVtK4i7AmqyU9OZkwB4v8E9qM"
|
|
|
@ -9,15 +9,16 @@
|
||||||
"type": "go",
|
"type": "go",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"mode": "auto",
|
"mode": "auto",
|
||||||
"buildFlags": "-tags=harness",
|
"buildFlags": "-tags=sqlite",
|
||||||
"program": "cmd/gitness",
|
"program": "./harness",
|
||||||
"args": ["server", "../../.harness.env"]
|
"args": ["server", ".env"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Standalone",
|
"name": "Standalone",
|
||||||
"type": "go",
|
"type": "go",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"mode": "auto",
|
"mode": "auto",
|
||||||
|
"buildFlags": "-tags=sqlite",
|
||||||
"program": "cmd/gitness",
|
"program": "cmd/gitness",
|
||||||
"args": ["server", "../../.local.env"]
|
"args": ["server", "../../.local.env"]
|
||||||
}
|
}
|
||||||
|
|
106
Makefile
106
Makefile
|
@ -20,6 +20,16 @@ endif
|
||||||
|
|
||||||
.DEFAULT_GOAL := all
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
|
ifeq ($(BUILD_TAGS),)
|
||||||
|
BUILD_TAGS := sqlite
|
||||||
|
endif
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# Initialization
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
init: ## Install git hooks to perform pre-commit checks
|
init: ## Install git hooks to perform pre-commit checks
|
||||||
git config core.hooksPath .githooks
|
git config core.hooksPath .githooks
|
||||||
git config commit.template .gitmessage
|
git config commit.template .gitmessage
|
||||||
|
@ -34,18 +44,11 @@ dep: $(deps) ## Install the deps required to generate code and build gitness
|
||||||
tools: $(tools) ## Install tools required for the build
|
tools: $(tools) ## Install tools required for the build
|
||||||
@echo "Installed tools"
|
@echo "Installed tools"
|
||||||
|
|
||||||
mocks: $(mocks)
|
###############################################################################
|
||||||
@echo "Generating Test Mocks"
|
#
|
||||||
|
# Build and testing rules
|
||||||
wire: cli/server/harness.wire_gen.go cli/server/standalone.wire_gen.go cmd/gitrpcserver/wire_gen.go
|
#
|
||||||
|
###############################################################################
|
||||||
force-wire: ## Force wire code generation
|
|
||||||
@sh ./scripts/wire/server/standalone.sh
|
|
||||||
@sh ./scripts/wire/server/harness.sh
|
|
||||||
@sh ./scripts/wire/gitrpcserver/wire.sh
|
|
||||||
|
|
||||||
generate: $(mocks) wire mocks/mock_client.go proto
|
|
||||||
@echo "Generating Code"
|
|
||||||
|
|
||||||
build: generate ## Build the all-in-one gitness binary
|
build: generate ## Build the all-in-one gitness binary
|
||||||
@echo "Building Gitness Server"
|
@echo "Building Gitness Server"
|
||||||
|
@ -65,34 +68,14 @@ test: generate ## Run the go tests
|
||||||
go tool cover -html=coverage.out
|
go tool cover -html=coverage.out
|
||||||
|
|
||||||
run: dep ## Run the gitness binary from source
|
run: dep ## Run the gitness binary from source
|
||||||
@go run -race -ldflags=${LDFLAGS} .
|
@go run -race -ldflags=${LDFLAGS} ./cmd/gitness
|
||||||
|
|
||||||
clean-db: ## delete all data from local database
|
###############################################################################
|
||||||
psql postgresql://gitness:gitness@localhost:5432/gitness -f scripts/db/cleanup.sql
|
#
|
||||||
|
|
||||||
populate-db: ## inject sample data into local database
|
|
||||||
psql postgresql://gitness:gitness@localhost:5432/gitness -f scripts/db/sample_data.sql
|
|
||||||
|
|
||||||
update-tools: delete-tools $(tools) ## Update the tools by deleting and re-installing
|
|
||||||
|
|
||||||
delete-tools: ## Delete the tools
|
|
||||||
@rm $(tools) || true
|
|
||||||
|
|
||||||
#########################################
|
|
||||||
# Docker environment commands
|
# Docker environment commands
|
||||||
# The following targets relate to running gitness and its dependent services
|
# The following targets relate to running gitness and its dependent services
|
||||||
#########################################
|
#
|
||||||
start: ## Run all dependent services and start the gitness server locally - the service will listen on :3000 by default
|
###############################################################################
|
||||||
docker-compose -f ./docker/docker-compose.yml up ${DOCKER_BUILD_OPTS} --remove-orphans
|
|
||||||
|
|
||||||
stop: ## Stop all services
|
|
||||||
docker-compose -f ./docker/docker-compose.yml down --remove-orphans
|
|
||||||
|
|
||||||
dev: ## Run local dev environment this starts the services which gitness depends on
|
|
||||||
docker-compose -f ./docker/docker-compose.yml up ${DOCKER_BUILD_OPTS} --remove-orphans db redis
|
|
||||||
|
|
||||||
test-env: stop ## Run test environment - this runs all services and the gitness in test mode.
|
|
||||||
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.test.yml up -d ${DOCKER_BUILD_OPTS} --remove-orphans
|
|
||||||
|
|
||||||
image: ## Build the gitness docker image
|
image: ## Build the gitness docker image
|
||||||
@echo "Building Gitness Standalone Image"
|
@echo "Building Gitness Standalone Image"
|
||||||
|
@ -115,14 +98,11 @@ gitrpc-image: ## Build the gitness gitrpc docker image
|
||||||
-t gitness-gitrpc:latest \
|
-t gitness-gitrpc:latest \
|
||||||
-f ./docker/Dockerfile.gitrpc .
|
-f ./docker/Dockerfile.gitrpc .
|
||||||
|
|
||||||
e2e: generate test-env ## Run e2e tests
|
###############################################################################
|
||||||
chmod +x wait-for-gitness.sh && ./wait-for-gitness.sh
|
#
|
||||||
go test -p 1 -v -coverprofile=e2e_cov.out ./tests/... -env=".env.local"
|
|
||||||
|
|
||||||
|
|
||||||
###########################################
|
|
||||||
# Code Formatting and linting
|
# Code Formatting and linting
|
||||||
###########################################
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
format: tools # Format go code and error if any changes are made
|
format: tools # Format go code and error if any changes are made
|
||||||
@echo "Formating ..."
|
@echo "Formating ..."
|
||||||
|
@ -138,16 +118,26 @@ lint: tools generate # lint the golang code
|
||||||
@echo "Linting $(1)"
|
@echo "Linting $(1)"
|
||||||
@golangci-lint run --timeout=3m --verbose
|
@golangci-lint run --timeout=3m --verbose
|
||||||
|
|
||||||
###########################################
|
###############################################################################
|
||||||
# Code Generation
|
# Code Generation
|
||||||
#
|
#
|
||||||
# Some code generation can be slow, so we only run it if
|
# Some code generation can be slow, so we only run it if
|
||||||
# the source file has changed.
|
# the source file has changed.
|
||||||
###########################################
|
###############################################################################
|
||||||
cli/server/harness.wire_gen.go: cli/server/harness.wire.go
|
|
||||||
@sh ./scripts/wire/server/harness.sh
|
|
||||||
|
|
||||||
cli/server/standalone.wire_gen.go: cli/server/standalone.wire.go
|
generate: $(mocks) wire mocks/mock_client.go proto
|
||||||
|
@echo "Generating Code"
|
||||||
|
|
||||||
|
mocks: $(mocks)
|
||||||
|
@echo "Generating Test Mocks"
|
||||||
|
|
||||||
|
wire: cmd/gitness/wire_gen.go cmd/gitrpcserver/wire_gen.go
|
||||||
|
|
||||||
|
force-wire: ## Force wire code generation
|
||||||
|
@sh ./scripts/wire/server/standalone.sh
|
||||||
|
@sh ./scripts/wire/gitrpcserver/wire.sh
|
||||||
|
|
||||||
|
cmd/gitness/wire_gen.go: cmd/gitness/wire.go
|
||||||
@sh ./scripts/wire/server/standalone.sh
|
@sh ./scripts/wire/server/standalone.sh
|
||||||
|
|
||||||
cmd/gitrpcserver/wire_gen.go: cmd/gitrpcserver/wire.go
|
cmd/gitrpcserver/wire_gen.go: cmd/gitrpcserver/wire.go
|
||||||
|
@ -156,7 +146,7 @@ cmd/gitrpcserver/wire_gen.go: cmd/gitrpcserver/wire.go
|
||||||
mocks/mock_client.go: internal/store/database.go client/client.go
|
mocks/mock_client.go: internal/store/database.go client/client.go
|
||||||
go generate mocks/mock.go
|
go generate mocks/mock.go
|
||||||
|
|
||||||
proto:
|
proto: ## generate proto files for gitrpc integration
|
||||||
@protoc --proto_path=./gitrpc/proto \
|
@protoc --proto_path=./gitrpc/proto \
|
||||||
--go_out=./gitrpc/rpc \
|
--go_out=./gitrpc/rpc \
|
||||||
--go_opt=paths=source_relative \
|
--go_opt=paths=source_relative \
|
||||||
|
@ -164,19 +154,17 @@ proto:
|
||||||
--go-grpc_opt=paths=source_relative \
|
--go-grpc_opt=paths=source_relative \
|
||||||
./gitrpc/proto/*.proto
|
./gitrpc/proto/*.proto
|
||||||
|
|
||||||
harness-proto:
|
###############################################################################
|
||||||
@protoc --proto_path=./harness/proto \
|
|
||||||
--go_out=./harness/rpc \
|
|
||||||
--go_opt=paths=source_relative \
|
|
||||||
--go-grpc_out=./harness/rpc \
|
|
||||||
--go-grpc_opt=paths=source_relative \
|
|
||||||
./harness/proto/*.proto
|
|
||||||
###########################################
|
|
||||||
# Install Tools and deps
|
# Install Tools and deps
|
||||||
#
|
#
|
||||||
# These targets specify the full path to where the tool is installed
|
# These targets specify the full path to where the tool is installed
|
||||||
# If the tool already exists it wont be re-installed.
|
# If the tool already exists it wont be re-installed.
|
||||||
###########################################
|
###############################################################################
|
||||||
|
|
||||||
|
update-tools: delete-tools $(tools) ## Update the tools by deleting and re-installing
|
||||||
|
|
||||||
|
delete-tools: ## Delete the tools
|
||||||
|
@rm $(tools) || true
|
||||||
|
|
||||||
# Install golangci-lint
|
# Install golangci-lint
|
||||||
$(GOBIN)/golangci-lint:
|
$(GOBIN)/golangci-lint:
|
||||||
|
|
40
cli/cli.go
40
cli/cli.go
|
@ -7,49 +7,11 @@ package cli
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/harness/gitness/cli/operations/account"
|
|
||||||
"github.com/harness/gitness/cli/operations/hooks"
|
"github.com/harness/gitness/cli/operations/hooks"
|
||||||
"github.com/harness/gitness/cli/operations/migrate"
|
|
||||||
"github.com/harness/gitness/cli/operations/user"
|
|
||||||
"github.com/harness/gitness/cli/operations/users"
|
|
||||||
"github.com/harness/gitness/cli/server"
|
|
||||||
"github.com/harness/gitness/internal/githook"
|
"github.com/harness/gitness/internal/githook"
|
||||||
"github.com/harness/gitness/version"
|
|
||||||
|
|
||||||
"gopkg.in/alecthomas/kingpin.v2"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
func GetArguments() []string {
|
||||||
application = "gitness"
|
|
||||||
description = "description goes here" // TODO edit this application description
|
|
||||||
)
|
|
||||||
|
|
||||||
// Command parses the command line arguments and then executes a
|
|
||||||
// subcommand program.
|
|
||||||
func Command() {
|
|
||||||
args := getArguments()
|
|
||||||
|
|
||||||
app := kingpin.New(application, description)
|
|
||||||
|
|
||||||
migrate.Register(app)
|
|
||||||
server.Register(app)
|
|
||||||
|
|
||||||
user.Register(app)
|
|
||||||
users.Register(app)
|
|
||||||
|
|
||||||
account.RegisterLogin(app)
|
|
||||||
account.RegisterRegister(app)
|
|
||||||
account.RegisterLogout(app)
|
|
||||||
|
|
||||||
hooks.Register(app)
|
|
||||||
|
|
||||||
registerSwagger(app)
|
|
||||||
|
|
||||||
kingpin.Version(version.Version.String())
|
|
||||||
kingpin.MustParse(app.Parse(args))
|
|
||||||
}
|
|
||||||
|
|
||||||
func getArguments() []string {
|
|
||||||
command := os.Args[0]
|
command := os.Args[0]
|
||||||
args := os.Args[1:]
|
args := os.Args[1:]
|
||||||
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
// Copyright 2022 Harness Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Polyform Free Trial License
|
|
||||||
// that can be found in the LICENSE.md file for this repository.
|
|
||||||
|
|
||||||
// go:build harness
|
|
||||||
|
|
||||||
package server
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/harness/gitness/harness/types"
|
|
||||||
|
|
||||||
"github.com/kelseyhightower/envconfig"
|
|
||||||
)
|
|
||||||
|
|
||||||
func ProvideHarnessConfig() (*types.Config, error) {
|
|
||||||
config := new(types.Config)
|
|
||||||
err := envconfig.Process("", config)
|
|
||||||
return config, err
|
|
||||||
}
|
|
|
@ -1,97 +0,0 @@
|
||||||
// Copyright 2021 Harness Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Polyform Free Trial License
|
|
||||||
// that can be found in the LICENSE.md file for this repository.
|
|
||||||
|
|
||||||
//go:build wireinject && harness
|
|
||||||
// +build wireinject,harness
|
|
||||||
|
|
||||||
package server
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
"github.com/harness/gitness/events"
|
|
||||||
"github.com/harness/gitness/gitrpc"
|
|
||||||
gitrpcserver "github.com/harness/gitness/gitrpc/server"
|
|
||||||
gitrpccron "github.com/harness/gitness/gitrpc/server/cron"
|
|
||||||
"github.com/harness/gitness/harness/auth/authn"
|
|
||||||
"github.com/harness/gitness/harness/auth/authz"
|
|
||||||
"github.com/harness/gitness/harness/bootstrap"
|
|
||||||
"github.com/harness/gitness/harness/client"
|
|
||||||
"github.com/harness/gitness/harness/router"
|
|
||||||
harnessservices "github.com/harness/gitness/harness/services"
|
|
||||||
harnessevents "github.com/harness/gitness/harness/services/events"
|
|
||||||
"github.com/harness/gitness/harness/store"
|
|
||||||
"github.com/harness/gitness/harness/types/check"
|
|
||||||
checkcontroller "github.com/harness/gitness/internal/api/controller/check"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/githook"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/principal"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/pullreq"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/repo"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/service"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/serviceaccount"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/space"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/user"
|
|
||||||
controllerwebhook "github.com/harness/gitness/internal/api/controller/webhook"
|
|
||||||
gitevents "github.com/harness/gitness/internal/events/git"
|
|
||||||
pullreqevents "github.com/harness/gitness/internal/events/pullreq"
|
|
||||||
"github.com/harness/gitness/internal/server"
|
|
||||||
"github.com/harness/gitness/internal/services/codecomments"
|
|
||||||
pullreqservice "github.com/harness/gitness/internal/services/pullreq"
|
|
||||||
"github.com/harness/gitness/internal/services/webhook"
|
|
||||||
"github.com/harness/gitness/internal/store/cache"
|
|
||||||
"github.com/harness/gitness/internal/store/database"
|
|
||||||
"github.com/harness/gitness/internal/url"
|
|
||||||
"github.com/harness/gitness/lock"
|
|
||||||
"github.com/harness/gitness/pubsub"
|
|
||||||
gitnesstypes "github.com/harness/gitness/types"
|
|
||||||
|
|
||||||
"github.com/google/wire"
|
|
||||||
)
|
|
||||||
|
|
||||||
func initSystem(ctx context.Context, config *gitnesstypes.Config) (*system, error) {
|
|
||||||
wire.Build(
|
|
||||||
newSystem,
|
|
||||||
ProvideHarnessConfig,
|
|
||||||
harnessevents.WireSet,
|
|
||||||
ProvideRedis,
|
|
||||||
bootstrap.WireSet,
|
|
||||||
database.WireSet,
|
|
||||||
pullreqservice.WireSet,
|
|
||||||
harnessservices.WireSet,
|
|
||||||
cache.WireSet,
|
|
||||||
server.WireSet,
|
|
||||||
url.WireSet,
|
|
||||||
space.WireSet,
|
|
||||||
repo.WireSet,
|
|
||||||
pullreq.WireSet,
|
|
||||||
controllerwebhook.WireSet,
|
|
||||||
user.WireSet,
|
|
||||||
service.WireSet,
|
|
||||||
serviceaccount.WireSet,
|
|
||||||
principal.WireSet,
|
|
||||||
gitevents.WireSet,
|
|
||||||
pullreqevents.WireSet,
|
|
||||||
ProvideGitRPCServerConfig,
|
|
||||||
gitrpcserver.WireSet,
|
|
||||||
ProvideGitRPCClientConfig,
|
|
||||||
gitrpc.WireSet,
|
|
||||||
router.WireSet,
|
|
||||||
authn.WireSet,
|
|
||||||
authz.WireSet,
|
|
||||||
client.WireSet,
|
|
||||||
store.WireSet,
|
|
||||||
check.WireSet,
|
|
||||||
ProvideEventsConfig,
|
|
||||||
events.WireSet,
|
|
||||||
ProvideWebhookConfig,
|
|
||||||
webhook.WireSet,
|
|
||||||
githook.WireSet,
|
|
||||||
lock.WireSet,
|
|
||||||
pubsub.WireSet,
|
|
||||||
codecomments.WireSet,
|
|
||||||
gitrpccron.WireSet,
|
|
||||||
checkcontroller.WireSet,
|
|
||||||
)
|
|
||||||
return &system{}, nil
|
|
||||||
}
|
|
|
@ -1,202 +0,0 @@
|
||||||
// Code generated by Wire. DO NOT EDIT.
|
|
||||||
|
|
||||||
//go:build !wireinject && harness
|
|
||||||
// +build !wireinject,harness
|
|
||||||
|
|
||||||
package server
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"github.com/harness/gitness/events"
|
|
||||||
"github.com/harness/gitness/gitrpc"
|
|
||||||
server2 "github.com/harness/gitness/gitrpc/server"
|
|
||||||
"github.com/harness/gitness/gitrpc/server/cron"
|
|
||||||
"github.com/harness/gitness/harness/auth/authn"
|
|
||||||
"github.com/harness/gitness/harness/auth/authz"
|
|
||||||
"github.com/harness/gitness/harness/bootstrap"
|
|
||||||
"github.com/harness/gitness/harness/client"
|
|
||||||
"github.com/harness/gitness/harness/router"
|
|
||||||
"github.com/harness/gitness/harness/services"
|
|
||||||
events4 "github.com/harness/gitness/harness/services/events"
|
|
||||||
"github.com/harness/gitness/harness/store"
|
|
||||||
"github.com/harness/gitness/harness/types/check"
|
|
||||||
check2 "github.com/harness/gitness/internal/api/controller/check"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/githook"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/principal"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/pullreq"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/repo"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/service"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/serviceaccount"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/space"
|
|
||||||
"github.com/harness/gitness/internal/api/controller/user"
|
|
||||||
webhook2 "github.com/harness/gitness/internal/api/controller/webhook"
|
|
||||||
events3 "github.com/harness/gitness/internal/events/git"
|
|
||||||
events2 "github.com/harness/gitness/internal/events/pullreq"
|
|
||||||
router2 "github.com/harness/gitness/internal/router"
|
|
||||||
"github.com/harness/gitness/internal/server"
|
|
||||||
"github.com/harness/gitness/internal/services/codecomments"
|
|
||||||
pullreq2 "github.com/harness/gitness/internal/services/pullreq"
|
|
||||||
"github.com/harness/gitness/internal/services/webhook"
|
|
||||||
"github.com/harness/gitness/internal/store/cache"
|
|
||||||
"github.com/harness/gitness/internal/store/database"
|
|
||||||
"github.com/harness/gitness/internal/url"
|
|
||||||
"github.com/harness/gitness/lock"
|
|
||||||
"github.com/harness/gitness/pubsub"
|
|
||||||
"github.com/harness/gitness/types"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Injectors from harness.wire.go:
|
|
||||||
|
|
||||||
func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
|
||||||
principalUID := check.ProvidePrincipalUIDCheck()
|
|
||||||
typesConfig, err := ProvideHarnessConfig()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
serviceJWTProvider, err := client.ProvideServiceJWTProvider(typesConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
acl, err := client.ProvideACL(ctx, serviceJWTProvider, typesConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
authorizer := authz.ProvideAuthorizer(ctx, typesConfig, config, acl)
|
|
||||||
db, err := database.ProvideDatabase(ctx, config)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
principalUIDTransformation := store.ProvidePrincipalUIDTransformation()
|
|
||||||
principalStore := database.ProvidePrincipalStore(db, principalUIDTransformation)
|
|
||||||
tokenStore := database.ProvideTokenStore(db)
|
|
||||||
controller := user.NewController(principalUID, authorizer, principalStore, tokenStore)
|
|
||||||
serviceController := service.NewController(principalUID, authorizer, principalStore)
|
|
||||||
bootstrapBootstrap := bootstrap.ProvideBootstrap(config, controller, serviceController)
|
|
||||||
tokenClient, err := client.ProvideTokenClient(serviceJWTProvider, typesConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
userClient, err := client.ProvideUserClient(serviceJWTProvider, typesConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
serviceAccountClient, err := client.ProvideServiceAccountClient(serviceJWTProvider, typesConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
pathTransformation := store.ProvidePathTransformation()
|
|
||||||
pathStore := database.ProvidePathStore(db, pathTransformation)
|
|
||||||
pathCache := cache.ProvidePathCache(pathStore, pathTransformation)
|
|
||||||
spaceStore := database.ProvideSpaceStore(db, pathCache)
|
|
||||||
repoStore := database.ProvideRepoStore(db, pathCache)
|
|
||||||
serviceaccountController := serviceaccount.NewController(principalUID, authorizer, principalStore, spaceStore, repoStore, tokenStore)
|
|
||||||
provider, err := url.ProvideURLProvider(config)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
pathUID := check.ProvidePathUIDCheck()
|
|
||||||
gitrpcConfig, err := ProvideGitRPCClientConfig()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
gitrpcInterface, err := gitrpc.ProvideClient(gitrpcConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
repoController := repo.ProvideController(config, db, provider, pathUID, authorizer, pathStore, repoStore, spaceStore, principalStore, gitrpcInterface)
|
|
||||||
spaceController := space.ProvideController(db, provider, pathUID, authorizer, pathStore, spaceStore, repoStore, principalStore, repoController)
|
|
||||||
accountClient, err := client.ProvideAccountClient(serviceJWTProvider, typesConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
authenticator, err := authn.ProvideAuthenticator(controller, tokenClient, userClient, typesConfig, serviceAccountClient, serviceaccountController, serviceController, spaceController, accountClient)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
principalController := principal.NewController(principalStore)
|
|
||||||
principalInfoView := database.ProvidePrincipalInfoView(db)
|
|
||||||
principalInfoCache := cache.ProvidePrincipalInfoCache(principalInfoView)
|
|
||||||
pullReqStore := database.ProvidePullReqStore(db, principalInfoCache)
|
|
||||||
pullReqActivityStore := database.ProvidePullReqActivityStore(db, principalInfoCache)
|
|
||||||
codeCommentView := database.ProvideCodeCommentView(db)
|
|
||||||
pullReqReviewStore := database.ProvidePullReqReviewStore(db)
|
|
||||||
pullReqReviewerStore := database.ProvidePullReqReviewerStore(db, principalInfoCache)
|
|
||||||
eventsConfig, err := ProvideEventsConfig()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
universalClient, err := ProvideRedis(config)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
eventsSystem, err := events.ProvideSystem(eventsConfig, universalClient)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
reporter, err := events2.ProvideReporter(eventsSystem)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
lockConfig := lock.ProvideConfig(config)
|
|
||||||
mutexManager := lock.ProvideMutexManager(lockConfig, universalClient)
|
|
||||||
migrator := codecomments.ProvideMigrator(gitrpcInterface)
|
|
||||||
pullreqController := pullreq.ProvideController(db, provider, authorizer, pullReqStore, pullReqActivityStore, codeCommentView, pullReqReviewStore, pullReqReviewerStore, repoStore, principalStore, gitrpcInterface, reporter, mutexManager, migrator)
|
|
||||||
webhookConfig, err := ProvideWebhookConfig()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
webhookStore := database.ProvideWebhookStore(db)
|
|
||||||
webhookExecutionStore := database.ProvideWebhookExecutionStore(db)
|
|
||||||
readerFactory, err := events3.ProvideReaderFactory(eventsSystem)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
eventsReaderFactory, err := events2.ProvideReaderFactory(eventsSystem)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
webhookService, err := webhook.ProvideService(ctx, webhookConfig, readerFactory, eventsReaderFactory, webhookStore, webhookExecutionStore, repoStore, pullReqStore, provider, principalStore, gitrpcInterface)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
webhookController := webhook2.ProvideController(webhookConfig, db, authorizer, webhookStore, webhookExecutionStore, repoStore, webhookService)
|
|
||||||
eventsReporter, err := events3.ProvideReporter(eventsSystem)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
githookController := githook.ProvideController(db, authorizer, principalStore, repoStore, eventsReporter)
|
|
||||||
checkStore := database.ProvideCheckStore(db, principalInfoCache)
|
|
||||||
checkController := check2.ProvideController(db, authorizer, checkStore, repoStore, gitrpcInterface)
|
|
||||||
apiHandler := router.ProvideAPIHandler(config, authenticator, accountClient, controller, principalController, spaceController, repoController, pullreqController, webhookController, githookController, checkController)
|
|
||||||
gitHandler := router.ProvideGitHandler(config, provider, repoStore, authenticator, authorizer, gitrpcInterface)
|
|
||||||
webHandler := router2.ProvideWebHandler(config)
|
|
||||||
routerRouter := router2.ProvideRouter(config, apiHandler, gitHandler, webHandler)
|
|
||||||
serverServer := server.ProvideServer(config, routerRouter)
|
|
||||||
serverConfig, err := ProvideGitRPCServerConfig()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
server3, err := server2.ProvideServer(serverConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
manager := cron.ProvideManager(serverConfig)
|
|
||||||
repoGitInfoView := database.ProvideRepoGitInfoView(db)
|
|
||||||
repoGitInfoCache := cache.ProvideRepoGitInfoCache(repoGitInfoView)
|
|
||||||
pubsubConfig := pubsub.ProvideConfig(config)
|
|
||||||
pubSub := pubsub.ProvidePubSub(pubsubConfig, universalClient)
|
|
||||||
pullreqService, err := pullreq2.ProvideService(ctx, config, readerFactory, eventsReaderFactory, reporter, gitrpcInterface, db, repoGitInfoCache, principalInfoCache, repoStore, pullReqStore, pullReqActivityStore, codeCommentView, migrator, pubSub)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
eventsService, err := events4.ProvideEventService(ctx, typesConfig, spaceController, config)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
servicesServices, err := services.ProvideServices(ctx, webhookService, pullreqService, eventsService)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
serverSystem := newSystem(bootstrapBootstrap, serverServer, server3, manager, servicesServices)
|
|
||||||
return serverSystem, nil
|
|
||||||
}
|
|
|
@ -30,7 +30,9 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type command struct {
|
type command struct {
|
||||||
envfile string
|
envfile string
|
||||||
|
enableGitRPC bool
|
||||||
|
initializer func(context.Context, *types.Config) (*System, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *command) run(*kingpin.ParseContext) error {
|
func (c *command) run(*kingpin.ParseContext) error {
|
||||||
|
@ -57,7 +59,7 @@ func (c *command) run(*kingpin.ParseContext) error {
|
||||||
ctx = log.WithContext(ctx)
|
ctx = log.WithContext(ctx)
|
||||||
|
|
||||||
// initialize system
|
// initialize system
|
||||||
system, err := initSystem(ctx, config)
|
system, err := c.initializer(ctx, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("encountered an error while wiring the system: %w", err)
|
return fmt.Errorf("encountered an error while wiring the system: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -83,15 +85,17 @@ func (c *command) run(*kingpin.ParseContext) error {
|
||||||
Stringer("version", version.Version).
|
Stringer("version", version.Version).
|
||||||
Msg("server started")
|
Msg("server started")
|
||||||
|
|
||||||
// start grpc server
|
if c.enableGitRPC {
|
||||||
g.Go(system.gitRPCServer.Start)
|
// start grpc server
|
||||||
log.Info().Msg("gitrpc server started")
|
g.Go(system.gitRPCServer.Start)
|
||||||
|
log.Info().Msg("gitrpc server started")
|
||||||
|
|
||||||
// run the gitrpc cron jobs
|
// run the gitrpc cron jobs
|
||||||
g.Go(func() error {
|
g.Go(func() error {
|
||||||
return system.gitRPCCronMngr.Run(ctx)
|
return system.gitRPCCronMngr.Run(ctx)
|
||||||
})
|
})
|
||||||
log.Info().Msg("gitrpc cron manager subroutine started")
|
log.Info().Msg("gitrpc cron manager subroutine started")
|
||||||
|
}
|
||||||
|
|
||||||
// wait until the error group context is done
|
// wait until the error group context is done
|
||||||
<-gCtx.Done()
|
<-gCtx.Done()
|
||||||
|
@ -108,8 +112,10 @@ func (c *command) run(*kingpin.ParseContext) error {
|
||||||
log.Err(sErr).Msg("failed to shutdown http server gracefully")
|
log.Err(sErr).Msg("failed to shutdown http server gracefully")
|
||||||
}
|
}
|
||||||
|
|
||||||
if rpcErr := system.gitRPCServer.Stop(); rpcErr != nil {
|
if c.enableGitRPC {
|
||||||
log.Err(rpcErr).Msg("failed to shutdown grpc server gracefully")
|
if rpcErr := system.gitRPCServer.Stop(); rpcErr != nil {
|
||||||
|
log.Err(rpcErr).Msg("failed to shutdown grpc server gracefully")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info().Msg("wait for subroutines to complete")
|
log.Info().Msg("wait for subroutines to complete")
|
||||||
|
@ -147,8 +153,9 @@ func SetupLogger(config *types.Config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register the server command.
|
// Register the server command.
|
||||||
func Register(app *kingpin.Application) {
|
func Register(app *kingpin.Application, initializer func(context.Context, *types.Config) (*System, error)) {
|
||||||
c := new(command)
|
c := new(command)
|
||||||
|
c.initializer = initializer
|
||||||
|
|
||||||
cmd := app.Command("server", "starts the server").
|
cmd := app.Command("server", "starts the server").
|
||||||
Action(c.run)
|
Action(c.run)
|
||||||
|
@ -156,4 +163,9 @@ func Register(app *kingpin.Application) {
|
||||||
cmd.Arg("envfile", "load the environment variable file").
|
cmd.Arg("envfile", "load the environment variable file").
|
||||||
Default("").
|
Default("").
|
||||||
StringVar(&c.envfile)
|
StringVar(&c.envfile)
|
||||||
|
|
||||||
|
cmd.Flag("enable-gitrpc", "start the gitrpc server").
|
||||||
|
Default("true").
|
||||||
|
Envar("ENABLE_GITRPC").
|
||||||
|
BoolVar(&c.enableGitRPC)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,8 @@ import (
|
||||||
"github.com/harness/gitness/internal/services"
|
"github.com/harness/gitness/internal/services"
|
||||||
)
|
)
|
||||||
|
|
||||||
// system stores high level system sub-routines.
|
// System stores high level System sub-routines.
|
||||||
type system struct {
|
type System struct {
|
||||||
bootstrap bootstrap.Bootstrap
|
bootstrap bootstrap.Bootstrap
|
||||||
server *server.Server
|
server *server.Server
|
||||||
gitRPCServer *gitrpcserver.Server
|
gitRPCServer *gitrpcserver.Server
|
||||||
|
@ -21,10 +21,10 @@ type system struct {
|
||||||
gitRPCCronMngr *gitrpccron.Manager
|
gitRPCCronMngr *gitrpccron.Manager
|
||||||
}
|
}
|
||||||
|
|
||||||
// newSystem returns a new system structure.
|
// NewSystem returns a new system structure.
|
||||||
func newSystem(bootstrap bootstrap.Bootstrap, server *server.Server, gitRPCServer *gitrpcserver.Server,
|
func NewSystem(bootstrap bootstrap.Bootstrap, server *server.Server, gitRPCServer *gitrpcserver.Server,
|
||||||
gitrpccron *gitrpccron.Manager, services services.Services) *system {
|
gitrpccron *gitrpccron.Manager, services services.Services) *System {
|
||||||
return &system{
|
return &System{
|
||||||
bootstrap: bootstrap,
|
bootstrap: bootstrap,
|
||||||
server: server,
|
server: server,
|
||||||
gitRPCServer: gitRPCServer,
|
gitRPCServer: gitRPCServer,
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (c *swaggerCommand) run(*kingpin.ParseContext) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper function to register the swagger command.
|
// helper function to register the swagger command.
|
||||||
func registerSwagger(app *kingpin.Application) {
|
func RegisterSwagger(app *kingpin.Application) {
|
||||||
c := new(swaggerCommand)
|
c := new(swaggerCommand)
|
||||||
|
|
||||||
cmd := app.Command("swagger", "generate swagger file").
|
cmd := app.Command("swagger", "generate swagger file").
|
||||||
|
|
|
@ -8,11 +8,5 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/harness/gitness/cli"
|
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
|
||||||
cli.Command()
|
|
||||||
}
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
// Copyright 2022 Harness Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by the Polyform Free Trial License
|
||||||
|
// that can be found in the LICENSE.md file for this repository.
|
||||||
|
|
||||||
|
//go:build sqlite
|
||||||
|
// +build sqlite
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/mattn/go-sqlite3"
|
||||||
|
)
|
|
@ -9,10 +9,41 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/harness/gitness/cli"
|
"github.com/harness/gitness/cli"
|
||||||
|
"github.com/harness/gitness/cli/operations/account"
|
||||||
|
"github.com/harness/gitness/cli/operations/hooks"
|
||||||
|
"github.com/harness/gitness/cli/operations/migrate"
|
||||||
|
"github.com/harness/gitness/cli/operations/user"
|
||||||
|
"github.com/harness/gitness/cli/operations/users"
|
||||||
|
"github.com/harness/gitness/cli/server"
|
||||||
|
"github.com/harness/gitness/version"
|
||||||
|
|
||||||
_ "github.com/mattn/go-sqlite3"
|
"gopkg.in/alecthomas/kingpin.v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
application = "gitness"
|
||||||
|
description = "Gitness Open source edition"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
cli.Command()
|
args := cli.GetArguments()
|
||||||
|
|
||||||
|
app := kingpin.New(application, description)
|
||||||
|
|
||||||
|
migrate.Register(app)
|
||||||
|
server.Register(app, initSystem)
|
||||||
|
|
||||||
|
user.Register(app)
|
||||||
|
users.Register(app)
|
||||||
|
|
||||||
|
account.RegisterLogin(app)
|
||||||
|
account.RegisterRegister(app)
|
||||||
|
account.RegisterLogout(app)
|
||||||
|
|
||||||
|
hooks.Register(app)
|
||||||
|
|
||||||
|
cli.RegisterSwagger(app)
|
||||||
|
|
||||||
|
kingpin.Version(version.Version.String())
|
||||||
|
kingpin.MustParse(app.Parse(args))
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,14 +2,15 @@
|
||||||
// Use of this source code is governed by the Polyform Free Trial License
|
// Use of this source code is governed by the Polyform Free Trial License
|
||||||
// that can be found in the LICENSE.md file for this repository.
|
// that can be found in the LICENSE.md file for this repository.
|
||||||
|
|
||||||
//go:build wireinject && !harness
|
//go:build wireinject
|
||||||
// +build wireinject,!harness
|
// +build wireinject
|
||||||
|
|
||||||
package server
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
|
cliserver "github.com/harness/gitness/cli/server"
|
||||||
"github.com/harness/gitness/events"
|
"github.com/harness/gitness/events"
|
||||||
"github.com/harness/gitness/gitrpc"
|
"github.com/harness/gitness/gitrpc"
|
||||||
gitrpcserver "github.com/harness/gitness/gitrpc/server"
|
gitrpcserver "github.com/harness/gitness/gitrpc/server"
|
||||||
|
@ -47,10 +48,10 @@ import (
|
||||||
"github.com/google/wire"
|
"github.com/google/wire"
|
||||||
)
|
)
|
||||||
|
|
||||||
func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
func initSystem(ctx context.Context, config *types.Config) (*cliserver.System, error) {
|
||||||
wire.Build(
|
wire.Build(
|
||||||
newSystem,
|
cliserver.NewSystem,
|
||||||
ProvideRedis,
|
cliserver.ProvideRedis,
|
||||||
bootstrap.WireSet,
|
bootstrap.WireSet,
|
||||||
database.WireSet,
|
database.WireSet,
|
||||||
cache.WireSet,
|
cache.WireSet,
|
||||||
|
@ -71,15 +72,15 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
authz.WireSet,
|
authz.WireSet,
|
||||||
gitevents.WireSet,
|
gitevents.WireSet,
|
||||||
pullreqevents.WireSet,
|
pullreqevents.WireSet,
|
||||||
ProvideGitRPCServerConfig,
|
cliserver.ProvideGitRPCServerConfig,
|
||||||
gitrpcserver.WireSet,
|
gitrpcserver.WireSet,
|
||||||
ProvideGitRPCClientConfig,
|
cliserver.ProvideGitRPCClientConfig,
|
||||||
gitrpc.WireSet,
|
gitrpc.WireSet,
|
||||||
store.WireSet,
|
store.WireSet,
|
||||||
check.WireSet,
|
check.WireSet,
|
||||||
ProvideEventsConfig,
|
cliserver.ProvideEventsConfig,
|
||||||
events.WireSet,
|
events.WireSet,
|
||||||
ProvideWebhookConfig,
|
cliserver.ProvideWebhookConfig,
|
||||||
webhook.WireSet,
|
webhook.WireSet,
|
||||||
githook.WireSet,
|
githook.WireSet,
|
||||||
lock.WireSet,
|
lock.WireSet,
|
||||||
|
@ -88,5 +89,5 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
gitrpccron.WireSet,
|
gitrpccron.WireSet,
|
||||||
checkcontroller.WireSet,
|
checkcontroller.WireSet,
|
||||||
)
|
)
|
||||||
return &system{}, nil
|
return &cliserver.System{}, nil
|
||||||
}
|
}
|
|
@ -1,15 +1,17 @@
|
||||||
// Code generated by Wire. DO NOT EDIT.
|
// Code generated by Wire. DO NOT EDIT.
|
||||||
|
|
||||||
//go:build !wireinject && !harness
|
//go:generate go run github.com/google/wire/cmd/wire
|
||||||
// +build !wireinject,!harness
|
//go:build !wireinject
|
||||||
|
// +build !wireinject
|
||||||
|
|
||||||
package server
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/harness/gitness/cli/server"
|
||||||
"github.com/harness/gitness/events"
|
"github.com/harness/gitness/events"
|
||||||
"github.com/harness/gitness/gitrpc"
|
"github.com/harness/gitness/gitrpc"
|
||||||
server2 "github.com/harness/gitness/gitrpc/server"
|
server3 "github.com/harness/gitness/gitrpc/server"
|
||||||
"github.com/harness/gitness/gitrpc/server/cron"
|
"github.com/harness/gitness/gitrpc/server/cron"
|
||||||
check2 "github.com/harness/gitness/internal/api/controller/check"
|
check2 "github.com/harness/gitness/internal/api/controller/check"
|
||||||
"github.com/harness/gitness/internal/api/controller/githook"
|
"github.com/harness/gitness/internal/api/controller/githook"
|
||||||
|
@ -27,7 +29,7 @@ import (
|
||||||
events3 "github.com/harness/gitness/internal/events/git"
|
events3 "github.com/harness/gitness/internal/events/git"
|
||||||
events2 "github.com/harness/gitness/internal/events/pullreq"
|
events2 "github.com/harness/gitness/internal/events/pullreq"
|
||||||
"github.com/harness/gitness/internal/router"
|
"github.com/harness/gitness/internal/router"
|
||||||
"github.com/harness/gitness/internal/server"
|
server2 "github.com/harness/gitness/internal/server"
|
||||||
"github.com/harness/gitness/internal/services"
|
"github.com/harness/gitness/internal/services"
|
||||||
"github.com/harness/gitness/internal/services/codecomments"
|
"github.com/harness/gitness/internal/services/codecomments"
|
||||||
pullreq2 "github.com/harness/gitness/internal/services/pullreq"
|
pullreq2 "github.com/harness/gitness/internal/services/pullreq"
|
||||||
|
@ -42,9 +44,13 @@ import (
|
||||||
"github.com/harness/gitness/types/check"
|
"github.com/harness/gitness/types/check"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Injectors from standalone.wire.go:
|
import (
|
||||||
|
_ "github.com/mattn/go-sqlite3"
|
||||||
|
)
|
||||||
|
|
||||||
func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
// Injectors from wire.go:
|
||||||
|
|
||||||
|
func initSystem(ctx context.Context, config *types.Config) (*server.System, error) {
|
||||||
principalUID := check.ProvidePrincipalUIDCheck()
|
principalUID := check.ProvidePrincipalUIDCheck()
|
||||||
authorizer := authz.ProvideAuthorizer()
|
authorizer := authz.ProvideAuthorizer()
|
||||||
db, err := database.ProvideDatabase(ctx, config)
|
db, err := database.ProvideDatabase(ctx, config)
|
||||||
|
@ -68,7 +74,7 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
pathCache := cache.ProvidePathCache(pathStore, pathTransformation)
|
pathCache := cache.ProvidePathCache(pathStore, pathTransformation)
|
||||||
repoStore := database.ProvideRepoStore(db, pathCache)
|
repoStore := database.ProvideRepoStore(db, pathCache)
|
||||||
spaceStore := database.ProvideSpaceStore(db, pathCache)
|
spaceStore := database.ProvideSpaceStore(db, pathCache)
|
||||||
gitrpcConfig, err := ProvideGitRPCClientConfig()
|
gitrpcConfig, err := server.ProvideGitRPCClientConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -85,19 +91,19 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
codeCommentView := database.ProvideCodeCommentView(db)
|
codeCommentView := database.ProvideCodeCommentView(db)
|
||||||
pullReqReviewStore := database.ProvidePullReqReviewStore(db)
|
pullReqReviewStore := database.ProvidePullReqReviewStore(db)
|
||||||
pullReqReviewerStore := database.ProvidePullReqReviewerStore(db, principalInfoCache)
|
pullReqReviewerStore := database.ProvidePullReqReviewerStore(db, principalInfoCache)
|
||||||
eventsConfig, err := ProvideEventsConfig()
|
eventsConfig, err := server.ProvideEventsConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
universalClient, err := ProvideRedis(config)
|
universalClient, err := server.ProvideRedis(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
eventsSystem, err := events.ProvideSystem(eventsConfig, universalClient)
|
system, err := events.ProvideSystem(eventsConfig, universalClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
reporter, err := events2.ProvideReporter(eventsSystem)
|
reporter, err := events2.ProvideReporter(system)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -105,17 +111,17 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
mutexManager := lock.ProvideMutexManager(lockConfig, universalClient)
|
mutexManager := lock.ProvideMutexManager(lockConfig, universalClient)
|
||||||
migrator := codecomments.ProvideMigrator(gitrpcInterface)
|
migrator := codecomments.ProvideMigrator(gitrpcInterface)
|
||||||
pullreqController := pullreq.ProvideController(db, provider, authorizer, pullReqStore, pullReqActivityStore, codeCommentView, pullReqReviewStore, pullReqReviewerStore, repoStore, principalStore, gitrpcInterface, reporter, mutexManager, migrator)
|
pullreqController := pullreq.ProvideController(db, provider, authorizer, pullReqStore, pullReqActivityStore, codeCommentView, pullReqReviewStore, pullReqReviewerStore, repoStore, principalStore, gitrpcInterface, reporter, mutexManager, migrator)
|
||||||
webhookConfig, err := ProvideWebhookConfig()
|
webhookConfig, err := server.ProvideWebhookConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
webhookStore := database.ProvideWebhookStore(db)
|
webhookStore := database.ProvideWebhookStore(db)
|
||||||
webhookExecutionStore := database.ProvideWebhookExecutionStore(db)
|
webhookExecutionStore := database.ProvideWebhookExecutionStore(db)
|
||||||
readerFactory, err := events3.ProvideReaderFactory(eventsSystem)
|
readerFactory, err := events3.ProvideReaderFactory(system)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
eventsReaderFactory, err := events2.ProvideReaderFactory(eventsSystem)
|
eventsReaderFactory, err := events2.ProvideReaderFactory(system)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -124,7 +130,7 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
webhookController := webhook2.ProvideController(webhookConfig, db, authorizer, webhookStore, webhookExecutionStore, repoStore, webhookService)
|
webhookController := webhook2.ProvideController(webhookConfig, db, authorizer, webhookStore, webhookExecutionStore, repoStore, webhookService)
|
||||||
eventsReporter, err := events3.ProvideReporter(eventsSystem)
|
eventsReporter, err := events3.ProvideReporter(system)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -137,12 +143,12 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
gitHandler := router.ProvideGitHandler(config, provider, repoStore, authenticator, authorizer, gitrpcInterface)
|
gitHandler := router.ProvideGitHandler(config, provider, repoStore, authenticator, authorizer, gitrpcInterface)
|
||||||
webHandler := router.ProvideWebHandler(config)
|
webHandler := router.ProvideWebHandler(config)
|
||||||
routerRouter := router.ProvideRouter(config, apiHandler, gitHandler, webHandler)
|
routerRouter := router.ProvideRouter(config, apiHandler, gitHandler, webHandler)
|
||||||
serverServer := server.ProvideServer(config, routerRouter)
|
serverServer := server2.ProvideServer(config, routerRouter)
|
||||||
serverConfig, err := ProvideGitRPCServerConfig()
|
serverConfig, err := server.ProvideGitRPCServerConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
server3, err := server2.ProvideServer(serverConfig)
|
server4, err := server3.ProvideServer(serverConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -156,6 +162,6 @@ func initSystem(ctx context.Context, config *types.Config) (*system, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
servicesServices := services.ProvideServices(webhookService, pullreqService)
|
servicesServices := services.ProvideServices(webhookService, pullreqService)
|
||||||
serverSystem := newSystem(bootstrapBootstrap, serverServer, server3, manager, servicesServices)
|
serverSystem := server.NewSystem(bootstrapBootstrap, serverServer, server4, manager, servicesServices)
|
||||||
return serverSystem, nil
|
return serverSystem, nil
|
||||||
}
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
echo "Updating cli/server/harness.wire_gen.go"
|
|
||||||
go run github.com/google/wire/cmd/wire gen -tags=harness -output_file_prefix="harness." github.com/harness/gitness/cli/server
|
|
||||||
perl -ni -e 'print unless /go:generate/' cli/server/harness.wire_gen.go
|
|
||||||
perl -i -pe's/\+build !wireinject/\+build !wireinject,harness/g' cli/server/harness.wire_gen.go
|
|
||||||
perl -i -pe's/go:build !wireinject/go:build !wireinject && harness/g' cli/server/harness.wire_gen.go
|
|
|
@ -1,7 +1,4 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
echo "Updating cli/server/standalone.wire_gen.go"
|
echo "Updating cmd/gitness/wire_gen.go"
|
||||||
go run github.com/google/wire/cmd/wire gen -tags= -output_file_prefix="standalone." github.com/harness/gitness/cli/server
|
go run github.com/google/wire/cmd/wire gen github.com/harness/gitness/cmd/gitness
|
||||||
perl -ni -e 'print unless /go:generate/' cli/server/standalone.wire_gen.go
|
|
||||||
perl -i -pe's/\+build !wireinject/\+build !wireinject,!harness/g' cli/server/standalone.wire_gen.go
|
|
||||||
perl -i -pe's/go:build !wireinject/go:build !wireinject && !harness/g' cli/server/standalone.wire_gen.go
|
|
Loading…
Reference in New Issue