Skip to content

Contributing to the project

Thank you for your interest in contributing into the project! While the codebase is currently maintained by a single person (like any project at Recap Time Squad)

Preflight Checklist

More ways to contribute

If writing TypeScript code or documentation is not your thing or can't donate your time for the project, you can still contribute in other ways:

  • Donate to Recap Time Squad or Hack Club Nest. While we run the bot on Nest and use Nest Postgres, donating to Recap Time Squad will help us pay biils such as domain renewals and support the team and infrastructure behind projects like these.
  • Report bugs and submit feature requests in the issue tracker. You can also suggest and report bugs in the meta channel, but using GitLab issues is preferred so we can track work in the same place as commits and deployments happen.
  • Keep finding for leeks in the Slack. Simply use the bot (or forward to the leeks channel in case of downtime) as usual.

Setting up Development Environment

In general, we use the latest Node.js LTS (currently 22.x at the time of writing) for the runtime and documentation site (via npm) and Postgres for data presistence.

With Nix

WARNING

You need to be inside a devenv shell for Prisma Client to work properly on NixOS.

We use devenv via Nix flakes using the direnv integration. If you do use VS Code, install its integration after installing direnv via your NixOS/home-manager configuration or nix-env -iA nixpkgs.direnv / nix profile install nixpkgs#direnv (if you have flakes experimental feature enabled).

You may be prompted to run direnv allow once in order to initialize the dev environment.

Secrets

Secrets are managed via dotenvx, with both Doppler and 1Password for safely storing the private keys. If you want to run the dev instance yourself, ask @ajhalili2006 for the value of DOTENV_PRIVATE_KEY in Hack Club Slack (or via email at [email protected]).

Via Doppler

If you have access to our Doppler workspace (directly or via a service account token), here are the project and config names you must use when interacting with the Doppler CLI:

Via 1Password CLi

If you have access to our 1Password team account, authenicate yourself against the CLI (by manually signing you with op account add or with desktop app integration) and run the following to extract the decryption keys from 1Password:

bash
op inject -i .env.keys.tmpl -o .env.keys

If the CLI says that you don't have access to either the vault or the item itself, try these troubleshooting steps:

  • Sign into RecapTime.dev 1Password team first on your 1Password CLI or desktop app.
  • Select your Recap Time Squad crew account on 1Password when prompted at op signin. You may need to reauthenicate or enable CLI integration in developer settings to do so.
  • Check if you can access CI/CD Secrets and InfraOps vault. If you don't have access, you can ask Andrei Jiroh for a invite to the team as community contributor or provision you a temporary service account auth token.
    • If you have provisioned a temporary read-only service account auth token, set its value to the OP_SERVICE_ACCOUNT_TOKEN variable on your shell session. Keep it in a safe place and do not share with anyone.

Commit message style

We use Conventional Commits to write and format our

Sending patches

The easy way to send us patches is through GitLab's merge requests web interface (if your patch is on a seperate branch for those with developer access as contributor or on your own personal fork) or glab mr CLI comamnd.

If you prefer to use GitHub instead, we also maintain a mirror at https://github.com/recaptime-dev/hackclub-leeksbot and submit your patches there via gh pr.

Alternatively, you can send patches over email at sourcehut or via Email a new merge request to this project link on GitLab SaaS

Released under the MPL-2.0 license for the code and CC-BY-SA-4.0 for the docs.