Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/antoinezanardi/werewolves-assistant-api-next
๐บ Werewolves Assistant API provides over HTTP requests a way of manage Werewolves games to help the game master.
https://github.com/antoinezanardi/werewolves-assistant-api-next
assistant nestjs nodejs typescript werewolves-of-millers-hollow
Last synced: about 2 months ago
JSON representation
๐บ Werewolves Assistant API provides over HTTP requests a way of manage Werewolves games to help the game master.
- Host: GitHub
- URL: https://github.com/antoinezanardi/werewolves-assistant-api-next
- Owner: antoinezanardi
- License: mit
- Created: 2023-02-27T11:38:19.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T18:01:06.000Z (about 2 months ago)
- Last Synced: 2024-10-29T18:43:36.226Z (about 2 months ago)
- Topics: assistant, nestjs, nodejs, typescript, werewolves-of-millers-hollow
- Language: TypeScript
- Homepage: https://werewolves-assistant.com
- Size: 32.8 MB
- Stars: 39
- Watchers: 3
- Forks: 11
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- fucking-awesome-readme - antoinezanardi/werewolves-assistant-api-next - Project logo. Badges. Concise description. TOC for easy navigation. Simple install instructions and various sections. Clean project with code coverage, CI, and many other features. (Examples)
- awesome-readme - antoinezanardi/werewolves-assistant-api-next - Project logo. Badges. Concise description. TOC for easy navigation. Simple install instructions and various sections. Clean project with code coverage, CI, and many other features. (Examples)
README
---
![TypeScript](https://img.shields.io/badge/-TypeScript-black?style=for-the-badge&logoColor=white&logo=typescript&color=2F73BF)
![Nest](https://img.shields.io/badge/-NestJs-black?style=for-the-badge&logo=nestjs&color=E0234D)
![Mongoose](https://img.shields.io/badge/-MongoDB-black?style=for-the-badge&logoColor=white&logo=mongodb&color=127237)[![โ๏ธ Build Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml)
[![๐ Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml)[![GitHub release](https://img.shields.io/github/release/antoinezanardi/werewolves-assistant-api-next.svg)](https://GitHub.com/antoinezanardi/werewolves-assistant-api-next/releases/)
[![semantic-release: conventional commits](https://img.shields.io/badge/semantic--release-conventional%20commits-ร1A7DBD?logo=semantic-release&color=1E7FBF)](https://github.com/semantic-release/semantic-release)
[![GitHub license](https://img.shields.io/github/license/antoinezanardi/werewolves-assistant-api-next.svg)](https://github.com/antoinezanardi/https://img.shields.io/github/license/werewolves-assistant-api-next.svg/blob/main/LICENSE)
![Dependencies](https://img.shields.io/badge/-dependencies-black?style=flat-square&logoColor=white&logo=pnpm&color=B76507)[![Known Vulnerabilities](https://snyk.io/test/github/antoinezanardi/werewolves-assistant-api-next/badge.svg?targetFile=package.json&style=flat-square)](https://snyk.io/test/github/antoinezanardi/werewolves-assistant-api-next?targetFile=package.json)[![Tests count](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)
[![Scenarios](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)
[![Mutation testing badge](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fantoinezanardi%2Fwerewolves-assistant-api-next%2Fmain)](https://dashboard.stryker-mutator.io/reports/github.com/antoinezanardi/werewolves-assistant-api-next/main)[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)## ๐ Table of Contents
1. ๐บ [What is this API ?](#what-is-this-api)
2. โจ [Production and development links](#production-and-development-links)
3. ๐ [Available roles](#available-roles)
4. ๐จ [Installation](#installation)
5. ๐ [Build](#build)
6. ๐ณ [Docker](#docker)
7. ๐ฏ [Tests](#tests)
8. ๐ฟ [Env variables](#env-variables)
9. โ๏ธ [Code analysis and consistency](#code-analysis-and-consistency)
10. ๐ [Releases & Changelog](#versions)
11. ๐ [GitHub Actions](#github-actions)
12. โจ [Misc commands](#misc-commands)
13. ยฉ๏ธ [License](#license)
14. โค๏ธ [Contributors](#contributors)## ๐บ What is this API ?
Werewolves Assistant API provides over HTTP requests a way of manage Werewolves games to help the game master.This is the **next** version of the deprecated **[Werewolves Assistant API](https://github.com/antoinezanardi/werewolves-assistant-api)**.
This API is used by the **[Werewolves Assistant Web App](https://github.com/antoinezanardi/werewolves-assistant-web-next)**.
#### ๐ค Want to know more about this awesome project ? **Check out the dedicated about page**.
## โจ Production and development links
### ๐ Production
The production version of this API is available at **[api.werewolves-assistant.com](https://api.werewolves-assistant.com/docs)**.
This API is used by the **[Werewolves Assistant Web App](https://werewolves-assistant.com)**.
The production server is updated automatically with the latest version of the API when a new release is created. (When a new tag is pushed on the `main` branch)
### ๐ ๏ธ Development
The development version of this API is available at **[preprod.api.werewolves-assistant.com](https://preprod.api.werewolves-assistant.com/docs)**.
This API is used by the **[Werewolves Assistant Web App](https://preprod.werewolves-assistant.com)**.
The development server is updated automatically when a commit is pushed on the `develop` branch.
**30 different official roles** are available to play :
|
**Werewolf** |
**Big Bad Wolf** |
**Accursed Wolf-Father** |
**White Werewolf** |
|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
**Villager** |
**Villager-Villager** |
**Seer** |
**Cupid** |
|
**Witch** |
**Hunter** |
**Little Girl** |
**Defender** |
|
**Elder** |
**Scapegoat** |
**Idiot** |
**Two Sisters** |
|
**Three Brothers** |
**Fox** |
**Bear Tamer** |
**Stuttering Judge** |
|
**Rusty Sword Knight** |
**Wild Child** |
**Wolf-Hound** |
**Thief** |
|
**Angel** |
**Pied Piper** |
**Scandalmonger** |
**Prejudiced Manipulator** |
|
**Actor** |
**Devoted Servant** | | |To install this project, you will need to have on your machine :
![Node](https://img.shields.io/badge/-nodejs-black?style=for-the-badge&logoColor=white&logo=node.js&color=366A31)
![PNPM](https://img.shields.io/badge/-pnpm-black?style=for-the-badge&logoColor=white&logo=pnpm&color=B76507)
![Docker](https://img.shields.io/badge/-Docker-black?style=for-the-badge&logoColor=white&logo=docker&color=004EA2)We recommend to use the node version specified in the `.nvmrc` file.
**If you don't have `pnpm` installed, you can still use `npm` for all commands below, but we recommend to use `pnpm` for faster and more reliable installs.**
Then, run the following commands :
```bash
# Install dependencies and Husky hooks
pnpm install# Run the app in dev mode
pnpm run start:dev
```The above command will start the app in development mode and watch for changes on local.
You can also run the app in development mode with Docker, more information in the **[Docker section](#docker)**.
## ๐ Build
In order to build the app for production, run the following command :
```bash
# Build the app
pnpm run build# Run the app in production mode
pnpm run start:prod
```You can also run the app in production mode with Docker, more information in the **[Docker section](#docker)**.
## ๐ณ Docker
This app is Docker ready !
The Dockerfile is available at the root of the project. It uses a multi-stage build to optimize the image size and distroless image to reduce the attack surface.
### ๐จ Development mode
To run the app in development mode with Docker, multiple commands are available :
```bash
# Run the app in development mode with Docker
pnpm run docker:dev:start# Stop the app in development mode with Docker
pnpm run docker:dev:stop# Reset the app in development mode with Docker (stop, remove image, containers and volumes, then start)
pnpm run docker:dev:reset
```When starting the app in development mode with Docker, a container for the API and a container for the MongoDB database are created.
Docker compose will use the `development` step of the Dockerfile to build the image.
For more information, please check the **[docker-compose.yml file](https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/main/docker/werewolves-assistant-api-dev/docker-compose.yml)**.
### ๐ Production mode
To run the app in production mode with Docker, multiple commands are available :
```bash
# Run the app in production mode with Docker
pnpm run docker:production:start# Stop the app in production mode with Docker
pnpm run docker:production:stop# Reset the app in production mode with Docker (stop, remove image, containers and volumes, then start)
pnpm run docker:production:reset
```When starting the app in production mode with Docker, a container for the API and a container for the MongoDB database are created.
Docker compose will use the `production` step of the Dockerfile to build the image.
For more information, please check the **[docker-compose.yml file](https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/main/docker/werewolves-assistant-api-production/docker-compose.yml)**.
### ๐งช Test mode
To run the tests available in this project thanks to Docker, multiple commands are available :
```bash
# Deploy test containers (4 databases are created to parallelize tests)
pnpm run docker:test:start# Stop test containers
pnpm run docker:test:stop# Reset test containers (stop, remove image, containers and volumes, then start)
pnpm run docker:test:reset
```For more information, please check the **[docker-compose.yml file](https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/main/docker/werewolves-assistant-api-test/docker-compose.yml)**.
## ๐ฏ Tests
### ๐งช Unit and E2E tests
![Jest](https://img.shields.io/badge/-Jest-black?style=for-the-badge&logoColor=white&logo=jest&color=BF3B14)
[![Tests count](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)
[![Covered Statements](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-statements)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-statements)
[![Covered Branches](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-branches)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-branches)
[![Covered Functions](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-functions)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-functions)
[![Covered Lines](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-lines)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-lines)
### ๐ฅ Acceptance tests
![Cucumber](https://img.shields.io/badge/-Cucumber-black?style=for-the-badge&logoColor=white&logo=cucumber&color=169652)
[![Scenarios](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)
Click on the badge below ๐ to see the **[reports](https://reports.cucumber.io/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18)**.
[![ScenariosReports](https://messages.cucumber.io/api/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18/badge)](https://reports.cucumber.io/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18)
### ๐ฝ Mutant testing
![Stryker](https://img.shields.io/badge/-Stryker-black?style=for-the-badge&logoColor=white&logo=stryker&color=7F1B10)
[![Mutation testing badge](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fantoinezanardi%2Fwerewolves-assistant-api-next%2Fmain)](https://dashboard.stryker-mutator.io/reports/github.com/antoinezanardi/werewolves-assistant-api-next/main)
You can also check the **[mutation testing report](https://dashboard.stryker-mutator.io/reports/github.com/antoinezanardi/werewolves-assistant-api-next/main#mutant)**.
### โถ๏ธ Commands
Before testing, you must follow the **[installation steps](#installation)**.
Then, run one of the following commands :
```bash
# Assure you started test Docker containers (4 databases are created to parallelize tests)
pnpm run docker:test:start# Run unit tests with coverage
pnpm run test:unit:cov# Run e2e tests with coverage
pnpm run test:e2e:cov# Run both unit and e2e tests with coverage
pnpm run test:cov# Run both unit and e2e tests only on staged files (run on pre-commit)
pnpm run test:staged# Run acceptance tests
pnpm run test:cucumber# Run acceptance tests and publish the report
pnpm run test:cucumber:publish# Run mutant tests with coverage
pnpm run test:stryker# Run mutant tests with coverage from scratch (without using the incremental file)
pnpm run test:stryker:force
```Environnement files are available in the **[env directory](https://github.com/antoinezanardi/werewolves-assistant-api-next/tree/main/env)**.
You can create a `.env` file in this directory to override the default values when starting the API locally with `pnpm run start` command.
Environment variables are :
| Name | Description | Required | Default value | Limitations |
|:-------------------:|:---------------------------------------:|:--------:|:-------------:|:------------------------------------------------:|
| `HOST` | Host on which the API will be available | โ | `127.0.0.1` | If set, can't be empty string |
| `PORT` | Port on which the API will be available | โ | `8080` | If set, must be a number between `0` and `65535` |
| `ENVIRONNEMENT` | Environment in which the API will run | โ | โ | Must be `development`, `production` or `test` |
| `DATABASE_HOST` | MongoDB database host URL | โ | โ | Can't be empty string |
| `DATABASE_PORT` | MongoDB database port | โ | `undefined` | If set, must be a number between `0` and `65535` |
| `DATABASE_NAME` | MongoDB database name | โ | โ | Can't be empty string |
| `DATABASE_USERNAME` | MongoDB database user | โ | โ | Can't be empty string |
| `DATABASE_PASSWORD` | MongoDB database password | โ | โ | Can't be empty string |
| `CORS_ORIGIN` | CORS allowed origin | โ | `*` | If set, can't be empty string |## โ๏ธ Code analysis and consistency
### ๐ Code linting & formatting
![ESLint](https://img.shields.io/badge/-ESLint-black?style=for-the-badge&logoColor=white&logo=eslint&color=341BAB)
In order to keep the code clean, consistent and free of bad TS practices, more than **300 ESLint rules are activated** !
Complete list of all enabled rules is available in the **[.eslintrc.js file](https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/master/.eslintrc.js)**.
### โถ๏ธ Commands
Before linting, you must follow the [installation steps](#installation).
Then, run one of the following commands :
```bash
# Lint
pnpm run lint# Lint and fix
pnpm run lint:fix# Lint and fix only on staged files (runs on pre-commit)
pnpm run lint:staged:fix# Display all configs and rules used in browser using @eslint/config-inspector
pnpm run lint:inspect-config
```### ๐ฅ Project quality scanner
Multiple tools are set up to maintain the best code quality and to prevent vulnerabilities :
![CodeQL](https://img.shields.io/badge/-CodeQL-black?style=for-the-badge&logoColor=white&logo=github&color=2781FE)
You can check the **[CodeQL analysis report here](https://github.com/antoinezanardi/werewolves-assistant-api-next/security/code-scanning)**.
![SonarCloud](https://img.shields.io/badge/-SonarCloud-black?style=for-the-badge&logoColor=white&logo=sonarcloud&color=F37A3A)
SonarCloud summary is available **[here](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)**.
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=coverage)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=bugs)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)Releases on **main** branch are generated and published automatically by :
![Semantic Release](https://img.shields.io/badge/-Semantic%20Release-black?style=for-the-badge&logoColor=white&logo=semantic-release&color=000000)
It uses the **[conventional commit](https://www.conventionalcommits.org/en/v1.0.0/)** strategy.
Each change when a new release comes up is listed in the **CHANGELOG.md file**.
Also, you can keep up with changes by watching releases via the **Watch GitHub button** at the top of this page.
#### ๐ท๏ธ All releases for this project are available here.
This project uses **GitHub Actions** to automate some boring tasks.
You can find all the workflows in the **[.github/workflows directory](https://github.com/antoinezanardi/werewolves-assistant-api-next/tree/main/.github/workflows).**
### ๐ข Workflows
| Name | Description & Status | Triggered on |
|:------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------:|
| **[โ๏ธ Build](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml)** | Various checks for app health, code quality and tests coverage
[![โ๏ธ Build Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml) | `push` on `develop` and all pull requests to `develop` |
| **[๐ Lint PR Name Into Develop Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml)** | Checks if pull request name respects `conventionnal-commit` rules
[![๐ Lint PR Name Into Develop Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml) | `pull-request` `created` or `updated` |
| **[โต๏ธ Push On Develop Branch Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml)** | Uploads app with `develop` version to `Docker Hub`
[![โต๏ธ Push On Develop Branch Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml) | `push` on `develop` |
| **[๐๏ธ Upsert PR Release Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml)** | Creates or updates pull request to `main` depending on commits on `develop` since last release
[![๐๏ธ Upsert PR Release Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml) | `push` on `develop` |
| **[๐ท๏ธ Release Creation Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml)** | Creates a new release using `semantic-release` with tag and updated changelog
[![๐ท๏ธ Release Creation Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml) | `push` on `main` |
| **[๐ Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml)** | Deploys app with last tag version to `Docker Hub` and `GCP`
[![๐ Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml) | `tag-creation` |### ๐ณ Animated tree visualisation of the project's evolution with **[Gource](https://gource.io/)**
```shell
# Please ensure that `gource` is installed on your system.
pnpm run gource
```### ๐ Create git branch with a conventional name
```shell
pnpm run script:create-branch
```### โคด๏ธ Create pull request against the `develop` branch from current branch
```shell
pnpm run script:create-pull-request
```### ๐ฃ To all IntelliJ IDEs users (IntelliJ, Webstorm, PHPStorm, etc.)
All the above commands are available in the **.run directory** at the root of the project.
You can add them as **run configurations** in your IDE.
This project is licensed under the [MIT License](http://opensource.org/licenses/MIT).
There is no contributor yet. Want to be the first ?
If you want to contribute to this project, please read the [**contribution guide**](https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/master/CONTRIBUTING.md).