Git Product home page Git Product logo

tentacles-dashboard's Introduction

โš ๏ธ This project is now Archived, it will no longer receive updates.

Tentacles

Tentacles

Pull requests dashboard

Actions Status Dependabot Status

Tentacles displays all the pull requests from your repositories, and the organizations you belong to, curated into a single interface.

Light theme

Tentacles

Dark theme

Tentacles

Disclaimer

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.

Prerequisites

  • Ruby 2.7
  • Node 14
  • Yarn 1.22
  • PostgreSQL 11.5

Features

  • 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).

Configuration

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.

GitHub App

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

Database

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

GraphQL Schema

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.

Installing

yarn install
bundle install

Database initialisation

bundle exec rails db:create
bundle exec rails db:migrate

Usage

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.

Docker

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).

Install

docker-compose build

Usage

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.

Tests

bundle exec rspec

Contributing

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

Bugs

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.

Feature requests

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.

Pull Requests

  1. Fork tentacles-dashboard https://github.com/jveillet/tentacles-dashboard/fork
  2. Clone your fork git clone https://github.com/$YOUR_USERNAME/tentacles-dashboard && cd tentacles-dashboard
  3. Create new branch git checkout -b new-branch
  4. Make your changes, and commit git commit -am "your message"
  5. Push your changes to origin!

tentacles-dashboard's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar jveillet avatar luchiago avatar snyk-bot avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

johan--

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.