Skip to content
GitHub

Contributing

Thank you for investing your time in contributing to our project!

In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.

Our project uses Devbox to manage its development environment.

Using Devbox will get your dev environment up and running easily and make sure we’re all using the same tools with the same versions.

  • Clone this repo
Terminal window
git clone git@github.com:dlvhdr/gh-dash.git && cd gh-dash
  • Install devbox
Terminal window
curl -fsSL https://get.jetpack.io/devbox | bash
  • Start the devbox shell and run the setup (will take a while on first time)
Terminal window
devbox shell

This will create a shell where all required tools are installed.

Set up direnv so devbox shell runs automatically

  • Install with your package manager e.g. brew install direnv
  • Add the following line at the end of the ~/.bashrc file: eval "$(direnv hook bash)"
  • Enable direnv by running direnv allow

If using VSCode, Install the extension:

  • Follow this guide to set up VSCode to automatically run devbox shell.
  • delete the .devbox dir at the project’s root

To navigate our codebase with confidence, familiar yourself with:

  • ui/ - this is the code that’s responsible on rendering the different parts of the TUI
  • data/ - the code that fetches data from GitHub’s GraphQL API
  • config/ - code to parse the user’s config.yml file
  • utils/ - various utilities

If you spot a problem, first search if an issue already exists.

If a related issue doesn’t exist, you can open a new issue using a relevant issue form.

Scan through our existing issues to find one that interests you.

When you’re finished with the changes, create a pull request.

  • Fill the “Ready for review” template so that we can review your PR. This template helps reviewers understand your changes as well as the purpose of your pull request.
  • Don’t forget to link PR to issue if you are solving one.
  • Pass the debug flag: go run gh-dash.go --debug
  • Write to the log using Go’s builtin log package
  • View the log by running tail -f debug.log
import "github.com/charmbracelet/log"
// more code...
log.Debug("Some message", "someVariable", someVariable)

Congratulations 🎉🎉