Tentacles displays all the pull requests from your repositories, and the organizations you belong to, curated into a single interface.
This project, while quite stable, is still in a early phase. Until it reaches version 1.0, some things are expected to be broken, refactored, or pulled entirely.
- Ruby 2.7
- Node 14
- Yarn 1.22
- PostgreSQL 11.5
- Sign In with your Github account, no need to create an account and remember a password!
- Select the repositories you want to track pull requests with, and save your preferences.
- Display the dashboard of pull requests to review, it's automatically sorted from oldest to newest, and an empahsys is made to those that are superior than 6 month/3 month/1 month/15 days old.
- Pull request's CI status is updating every 15 minutes.
- Supports the user's system preferences by displaying a Dark mode (whith compatible browsers).
This application is storing the configuration of the environment in a .env
file, it uses the principles behind a twelve-factor app.
You can find an example of this file in the .env.example.
You will first need need to create a GitHub app. Instructions are described in the Creating a GitHub App documentation page.
Copy the GitHub client Id and secrets into the .env
.
GITHUB_CLIENT_ID=your_app_client_id
GITHUB_CLIENT_SECRET=your_app_client_secret
Generate a random secret for the database password and put them in the .env
.
# Test and Dev
TENTACLES_DEV_DATABASE_PASSWORD=random_string_secret
# Production
TENTACLES_DATABASE_PASSWORD=random_string_secret
You will also need to add the needded PostgreSQL env variables for athtentication:
PGHOST=localhost
PGUSER=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=same_as_TENTACLES_DEV_DATABASE_PASSWORD
This project uses GitHub's GraphQL API. To (re)generate the GraphQL schema, you will need to create a personal access token on GitHub. Instruction are described in the Creating a personal access token for the command line documentation page.
Add this personnal token named GITHUB_ACCESS_TOKEN
into the .env
. This is solely used to update the schema locally,
no need to add this token on your production server configuration.
You can request a newer version of the schema using rails:
bundle exec rails schema:update
Then push the db/schema.json
into the repository.
yarn install
bundle install
bundle exec rails db:create
bundle exec rails db:migrate
The server is available by default on the port 3000.
bundle exec rails s -p 3000 -b '0.0.0.0'
To access the app in your local browser, go to http://localhost:3000
.
In development mode, you also need to launch the webpack dev server:
./bin/webpack-dev-server
The webpack dev server will run on the 3035 port.
In development, you can use Docker and docker-compose
to bootstrap the project. The Dockerfile
contains everything
needed to install and launched Tentacles.
The docker-compose.yml
contains all the configuration:
- A web container (the Web App).
- A Redis conainer (for cache).
- A PostgreSQL container (for storing mostly the users and preferences).
- A Webpack Dev Server (to use webpack with hot reloading).
docker-compose build
docker-compose up
To access the app in your local browser, go to http://localhost:3000
.
The webpack dev server will run on the 3035 port.
bundle exec rspec
Thank you for thinking about contributing! Contributors are always welcome! 👍
There is no wrong way to contribute, and there are many ways you can participate:
- Writing documentation
- Squashing bugs
- Implementing new features
- Adding or updating tests
- Suggesting new features or things to improve
If you find bugs, first go to the issues page and search if a related issue isn't already listed there. Otherwise, feel free to create new ones 😎.
Create a new issue and include any informations that can help to reproduce the observed behavior:
- Stack trace
- Expected bahevior
- Current behavior
- OS / Browser
Consider adding the bug label on your ticket.
Create a new issue on the issues page and add a clear description of what the new feature should look like.
Consider adding the feature request label on your ticket.
- Fork tentacles-dashboard
https://github.com/jveillet/tentacles-dashboard/fork
- Clone your fork
git clone https://github.com/$YOUR_USERNAME/tentacles-dashboard && cd tentacles-dashboard
- Create new branch
git checkout -b new-branch
- Make your changes, and commit
git commit -am "your message"
- Push your changes to origin!