• Stars
    star
    30,878
  • Rank 529 (Top 0.02 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 10 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery.

Gitness

Gitness is an open source development platform packed with the power of code hosting and automated DevOps pipelines.

Overview

Gitness is an open source development platform packed with the power of code hosting and automated continuous integration pipelines.

Running Gitness locally

The latest publicly released docker image can be found on harness/gitness.

To install Gitness yourself, simply run the command below. Once the container is up, you can visit http://localhost:3000 in your browser.

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

The Gitness image uses a volume to store the database and repositories. It is highly recommended to use a bind mount or named volume as otherwise all data will be lost once the container is stopped.

See docs.gitness.com to learn how to get the most out of Gitness.

Where is Drone?

Gitness represents a massive investment in the next generation of Drone. Where Drone focused on continuous integration, Gitness adds source code hosting, bringing code management and pipelines closer together.

The goal is for Gitness to eventually be at full parity with Drone in terms of pipeline capabilities, allowing users to seemlessly migrate from Drone to Gitness.

But, we expect this to take some time, which is why we took a snapshot of Drone as a feature branch drone (README) so it can continue development.

As for Gitness, the development is taking place on the main branch.

For more information on Gitness, please visit gitness.com.

For more information on Drone, please visit drone.io.

Gitness Development

Pre-Requisites

Install the latest stable version of Node and Go version 1.20 or higher, and then install the below Go programs. Ensure the GOPATH bin directory is added to your PATH.

Install protobuf

  • Check if you've already installed protobuf protoc --version
  • If your version is different than v3.21.11, run brew unlink protobuf
  • Get v3.21.11 curl -s https://raw.githubusercontent.com/Homebrew/homebrew-core/9de8de7a533609ebfded833480c1f7c05a3448cb/Formula/protobuf.rb > /tmp/protobuf.rb
  • Install it brew install /tmp/protobuf.rb
  • Check out your version protoc --version

Install protoc-gen-go and protoc-gen-go-rpc:

  • Install protoc-gen-go v1.28.1 go install google.golang.org/protobuf/cmd/[email protected] (Note that this will install a binary in $GOBIN so make sure $GOBIN is in your $PATH)

  • Install protoc-gen-go-grpc v1.2.0 go install google.golang.org/grpc/cmd/[email protected]

$ make dep
$ make tools

Build

First step is to build the user interface artifacts:

$ pushd web
$ yarn install
$ yarn build
$ popd

After that, you can build the gitness binary:

$ make build

Run

This project supports all operating systems and architectures supported by Go. This means you can build and run the system on your machine; docker containers are not required for local development and testing.

To start the server at localhost:3000, simply run the following command:

./gitness server .local.env

Auto-Generate Gitness API Client used by UI using Swagger

Please make sure to update the autogenerated client code used by the UI when adding new rest APIs.

To regenerate the code, please execute the following steps:

  • Regenerate swagger with latest gitness binary ./gitness swagger > web/src/services/code/swagger.yaml
  • navigate to the web folder and run yarn services

The latest API changes should now be reflected in web/src/services/code/index.tsx

User Interface

This project includes a full user interface for interacting with the system. When you run the application, you can access the user interface by navigating to http://localhost:3000 in your browser.

REST API

This project includes a swagger specification. When you run the application, you can access the swagger specification by navigating to http://localhost:3000/swagger in your browser (for raw yaml see http://localhost:3000/openapi.yaml).

For testing, it's simplest to just use the cli to create a token (this requires gitness server to run):

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

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

The command outputs a valid PAT that has been granted full access as the user. The token can then be send as part of the Authorization header with Postman or curl:

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

CLI

This project includes VERY basic command line tools for development and running the service. Please remember that you must start the server before you can execute commands.

For a full list of supported operations, please see

$ ./gitness --help

Contributing

Refer to CONTRIBUTING.md

License

Apache License 2.0, see LICENSE.

More Repositories

1

drone-cli

Command Line Tools for Drone CI
Go
395
star
2

harness-cd-community

Retired: Harness CD Community Edition is a modern self-service continuous delivery solution that allows developers to deploy, verify and automatically rollback Kubernetes and other cloud-native applications on any public or private cloud infrastructure of their choice.
Shell
209
star
3

harness-core

Java
96
star
4

harness-core-ui

Next Gen UI
TypeScript
44
star
5

developer-hub

Harness Developer Hub
JavaScript
40
star
6

terraform-provider-harness

Terraform provider for provisioning Harness resources
Go
39
star
7

backstage-plugins

Backstage Plugins for Harness Modules
TypeScript
25
star
8

drone-ci-docker-extension

A Docker desktop extension to run the https://drone.io pipelines using Docker for Desktop
Go
14
star
9

helm-charts

Shell
12
star
10

harness-go-sdk

An SDK written in Go for interacting with the Harness API's
Go
11
star
11

lite-engine

lite-engine
Go
11
star
12

harness-cli

Harness CLI for managing Harness resources, from the command line using YAMLs as input [LIMITED GA]
Go
11
star
13

migrator

CLI tool to assist upgrade from Harness First Gen to Next Gen.
Go
11
star
14

uicore

TypeScript
10
star
15

terraform-demo

This project is used to demonstrate how to use the terraform provider for Harness
HCL
10
star
16

drone-kubernetes-secrets

Drone plugin for integrating with the Kubernetes secret manager
Go
9
star
17

ff-javascript-client-sdk

TypeScript
9
star
18

ff-proxy

ff-proxy
Go
8
star
19

harness-migrate

Harness CI migration utility
Go
8
star
20

ff-golang-server-sdk

Go
8
star
21

ff-nodejs-server-sdk

ff-nodejs-server-sdk
TypeScript
7
star
22

harness-auth-ui

NextGen SignIn/SignUp UI Micro-frontend
TypeScript
6
star
23

harness-docker-runner

Harness Docker Runner
Go
5
star
24

delegate-helm-chart

Smarty
5
star
25

ff-java-server-sdk

Java Server SDK for integrating with Harness Feature Flag service.
Java
5
star
26

ff-react-client-sdk

Client Feature Flags SDK for use with ReactJS
TypeScript
5
star
27

ff-python-server-sdk

Python
5
star
28

harness-schema

Python
5
star
29

ff-dotnet-server-sdk

.net Server SDK for integrating with Harness Feature Flag service.
C#
4
star
30

helm-sto-manager

Smarty
4
star
31

terraform-kubernetes-harness-delegate

Terraform module for installing a Harness Delegate into a Kubernetes cluster
HCL
4
star
32

helm-timescaledb

Mustache
3
star
33

helm-ci-manager

helm chart for ci-manager
Smarty
3
star
34

ff-react-native-client-sdk

Java
3
star
35

cie-vm-delegate

Easy installation of docker delegate for CIE AWS VM feature
Go
3
star
36

helm-looker

Smarty
3
star
37

ff-ios-client-sdk

iOS Client SDK to integrate with Harness FF service
Swift
3
star
38

jarvis

Tooling for UI repos
TypeScript
3
star
39

drone-artifactory

Drone plugin for publishing artifacts to Artifactory
Go
3
star
40

helm-harness-manager

Smarty
2
star
41

helm-ff-pushpin-service

Smarty
2
star
42

helm-ng-manager

Smarty
2
star
43

helm-mongo

Smarty
2
star
44

tp-guna-test

Dockerfile
2
star
45

helm-common

Common templates for Harness helm charts
Smarty
2
star
46

ff-flutter-client-sdk

Dart
2
star
47

ff-ruby-server-sdk

Ruby Server SDK for integrating with Harness Feature Flag service.
Ruby
2
star
48

helm-cv-nextgen

Smarty
2
star
49

delegate-dockerfile

Shell
2
star
50

community

The starting point for joining and contributing to the Harness Community!
2
star
51

helm-access-control

Smarty
2
star
52

ff-android-client-sdk

Android SDK to integrate with Harness Feature Flag service
Java
2
star
53

harness-performance-tool

Python
2
star
54

harness-dashboards

Starlark
2
star
55

helm-gateway

Smarty
1
star
56

ff-mock-server

Feature Flag mock server
Go
1
star
57

ff-apex-server-sdk

Feature Flag APEX server side SDK
Apex
1
star
58

helm-ccm

Smarty
1
star
59

helm-log-service

Smarty
1
star
60

helm-ng-auth-ui

Smarty
1
star
61

helm-platform

Helm charts for platform
Smarty
1
star
62

helm-ti-service

Smarty
1
star
63

helm-harness-secrets

Smarty
1
star
64

helm-ng-custom-dashboards

Smarty
1
star
65

helm-et-receiver

Smarty
1
star
66

helm-platform-service

Smarty
1
star
67

helm-template-service

Smarty
1
star
68

ff-erlang-server-sdk

Erlang
1
star
69

helm-sto-core

Smarty
1
star
70

flag_cleanup

Python
1
star
71

dlite

Golang client to interact and accept tasks from the Harness manager
Go
1
star
72

ff-apex-server-sample

Harness Feature Flag APEX sample
1
star
73

helm-pipeline-service

Smarty
1
star
74

helm-ff-service

Smarty
1
star
75

drone-vscode

Visual Studio Code Drone Plugin allows you to manage and execute Drone pipelines on your machine without moving out of the editor.
TypeScript
1
star
76

connectivity-checker

Checks basic connectivity to a list of URLs from inside customer delegate machines
Go
1
star
77

ff-xamarin-client-sdk

Xamarin SDK to integrate with Harness Feature Flag service
C#
1
star
78

helm-change-data-capture

helm chart for change-data-capture
Smarty
1
star
79

plg-utilities

Go
1
star
80

Telemetry

Shell
1
star
81

oats

TypeScript
1
star
82

ng-tooltip

TypeScript
1
star