Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/expandorg/requester-service
Backend service for requesters
https://github.com/expandorg/requester-service
expandorg golang microservice
Last synced: about 7 hours ago
JSON representation
Backend service for requesters
- Host: GitHub
- URL: https://github.com/expandorg/requester-service
- Owner: expandorg
- License: mpl-2.0
- Created: 2020-03-02T16:47:14.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-03-03T18:04:38.000Z (over 4 years ago)
- Last Synced: 2023-02-28T05:32:36.289Z (over 1 year ago)
- Topics: expandorg, golang, microservice
- Language: Go
- Homepage:
- Size: 4.3 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Requester Service
The requester service
For full [API documentation](https://documenter.getpostman.com/view/7517177/S1a358nj)
## Getting started
### Prerequisities:
- Install Go (On OS X with Homebrew you can just run `brew install go`.)
- [optional to debug] Postman### Setup the project
Clone the repository with:
`go get -u github.com/expandorg/requester-service`
OR
create a directory `$GOPATH/src/github/expandorg` and execute: git clone [email protected]:expandorg/requester-service.git
Run the project dependencies (db, etc.) with `make up`
Run the latest migration with `make migrate-latest`
Run the project with `make run`
### Dependencies
We use `dep` to manage our dependencies.
To add a new vendor, use:
`deps ensure -add DEPENDENCY`
To update vendors for built project, run:
`make update-deps`
## Database
### Add a new migration
```make add-migration name="migration_name"```
For migration names be descriptive and start with verbs: `create_`, `drop_`, `add_`, etc.
This will look at the latest migrated version (1, 2, 3) and creates 2 files with new version:
`2_migration_name.up.sql` and `2_migration_name.down.sql`
### Migrate
You can migrate to latest:
```make migrate-latest```
OR
You can migrate up and migrate down a version:
```make run-migrations action="goto" version="1"```
When you migrate up, you can see in the `schema_migrations` the last migrated version. When you migrate down, it updates the the version column in `schema_migrations`.
## Tests
```make run-tests```### Unit tests
We keep all unit tests close to the code and withing the same package. For example, if you want to test the service package, then you would add the tests in that folder marked `package service`.### Functional
We keep all functional tests in `tests/` folder. Create a new test file for every function.
## CI / CD
We use Google Cloud for CI/CD:*note: please don't modify the following files unless you know what you're doing :)*
**cloudbuild.yaml:** this effectively our CI, it run tests on every PR and will ✓ or x.
**cloudbuild.cd.yaml:** this effectively our CD, it run tests, builds and pushes the image to the container registry and deploys to production on every Master commit, so master has to be always clean.
**k8s.yaml:** this is the kubernetes setup, including workload and service setup. cloudbuild.cd uses this file to deploy.
## How to Contribute
If you're interested in contributing to the requester service:
* Start by reading the [Contributing guide](CONTRIBUTING.md).
## License
Requester service is licensed under the [MPL-2](license) license