mirror of
https://github.com/harness/drone.git
synced 2025-05-06 06:29:39 +08:00
140 lines
3.4 KiB
Markdown
140 lines
3.4 KiB
Markdown
[](https://github.com/harness/gitness/actions/workflows/ci-lint.yml)
|
|
[](#)
|
|
# Pre-Requisites
|
|
|
|
Install the latest stable version of Node and Go version 1.19 or higher, and then install the below Go programs. Ensure the GOPATH [bin directory](https://go.dev/doc/gopath_code#GOPATH) is added to your PATH.
|
|
|
|
```bash
|
|
$ make all
|
|
```
|
|
|
|
Setup github access token required for UI dependencies:
|
|
```bash
|
|
$ yarn setup-github-registry
|
|
```
|
|
|
|
# Build
|
|
|
|
Build the user interface:
|
|
|
|
```bash
|
|
$ pushd web
|
|
$ yarn install
|
|
$ yarn run build
|
|
$ popd
|
|
```
|
|
|
|
Build the server and command line tools:
|
|
|
|
```bash
|
|
# STANDALONE
|
|
$ make build
|
|
```
|
|
|
|
# Test
|
|
|
|
Execute the unit tests:
|
|
|
|
```bash
|
|
$ make test
|
|
```
|
|
|
|
# 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.
|
|
|
|
Start the server at `localhost:3000`
|
|
|
|
```bash
|
|
# STANDALONE
|
|
./gitness server .local.env
|
|
```
|
|
|
|
# User Interface
|
|
|
|
This project includes a simple 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.
|
|
|
|
# Swagger
|
|
|
|
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`).
|
|
|
|
|
|
## 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:
|
|
- Run local gitness instance with latest changes
|
|
- Get latest OpenAPI specs from `http://localhost:3000/openapi.yaml` and store it in `web/src/services/code/swagger.yaml`
|
|
> Simply copy the whole content of the web response and store it in the `swagger.yaml` file
|
|
- Regenerate client code by running `yarn services` in the `web` directory
|
|
|
|
The latest API changes should now be reflected in `web/src/services/code/index.tsx`
|
|
|
|
# CLI
|
|
This project includes simple command line tools for interacting with the system. Please remember that you must start the server before you can execute commands.
|
|
|
|
Register a new user:
|
|
|
|
```bash
|
|
$ ./gitness register
|
|
```
|
|
|
|
> NOTE: A user `admin` (pw: `changeit`) gets created by default.
|
|
|
|
|
|
Login to the application:
|
|
|
|
```bash
|
|
$ ./gitness login
|
|
```
|
|
|
|
Logout from the application:
|
|
|
|
```bash
|
|
$ ./gitness logout
|
|
```
|
|
|
|
View your account details:
|
|
|
|
```bash
|
|
$ ./gitness user self
|
|
```
|
|
|
|
Generate a personal access token:
|
|
|
|
```bash
|
|
$ ./gitness user pat $UID $LIFETIME_IN_S
|
|
```
|
|
|
|
Debug and output http responses from the server:
|
|
|
|
```bash
|
|
$ DEBUG=true ./gitness user self
|
|
```
|
|
|
|
View all commands:
|
|
|
|
```bash
|
|
$ ./gitness --help
|
|
```
|
|
|
|
# REST API
|
|
Please refer to the swagger for the specification of our rest API.
|
|
|
|
For testing, it's simplest to execute operations as the default user `admin` using a PAT:
|
|
```bash
|
|
# LOGIN (user: admin, pw: changeit)
|
|
$ ./gitness login
|
|
|
|
# GENERATE PAT (1 YEAR VALIDITY)
|
|
$ ./gitness user pat mypat 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:
|
|
|
|
```bash
|
|
$ curl http://localhost:3000/api/v1/user \
|
|
-H "Authorization: Bearer $TOKEN"
|
|
```
|