Files
Krow-workspace/CONTRIBUTING.md
bwnyasse 0f9ca9eb15 feat: add git pre-push hook to prevent direct pushes to protected branches
This commit introduces a pre-push Git hook that prevents direct
pushes to the `main` and `dev` branches. This enforces the use of
pull requests for merging changes into these protected branches,
promoting code review and maintaining branch stability.

The changes include:
- Adding a `install-git-hooks` target to the Makefile to symlink
 the pre-push script into the `.git/hooks/` directory.
- Creating the `scripts/git-hooks/pre-push` script that checks the
 target branch and aborts the push if it matches a protected branch.
- Updating the `CONTRIBUTING.md` file to instruct developers to
 install the Git hooks after setting up their development
 environment.
2025-11-13 11:44:01 -05:00

3.4 KiB

Contributing to KROW Workforce Platform

Welcome to the KROW Workforce development team! This guide will help you get set up and understand our development practices.


🚀 Getting Started & Setup Checklist

Follow these steps to set up your development environment and gain access to all necessary resources.

  1. Access Google Chat Space:

    • Ensure you have been invited to and joined our main Google Chat space for daily communication and quick questions.
  2. GitHub Access & SSH Key:

    • Confirm you have read/write access to this GitHub repository.
    • Configure your SSH key for GitHub. Ensure your commits are verified (GPG signing is recommended).
  3. Install & Configure Gemini CLI:

    • Install the Gemini CLI on your local machine.
    • Familiarize yourself with its usage, especially for documentation updates (refer to docs/06-maintenance-guide.md).
  4. Install & Configure Enpass:

    • Install Enpass (our team's shared password manager).
    • Ensure you have access to the shared KROW vault for all project credentials (API keys, service accounts, etc.).
  5. Install Recommended Development Tools:

    • IDE: We recommend VS Code or Vim/Neovim for development.
    • Diagramming: Use MermaidChart.com for creating and editing diagrams (Mermaid syntax).
  6. Local Development Environment Setup:

    • Clone the monorepo: git clone git@github.com:Oloodi/krow-workforce.git
    • Navigate to the project root: cd krow-workforce
    • Install web frontend dependencies: make install
    • (Mobile app dependencies will be installed within their respective directories later.)
  • Install Git Hooks:
    • Run make install-git-hooks to set up local safeguards that prevent direct pushes to protected branches (main and dev). This is a mandatory step.
  1. Firebase Project Access Validation (CTO will provide access):

    • Confirm you have access to the dev Firebase/GCP project.
    • Verify you can run firebase login and gcloud auth login successfully.
  2. Understand the Monorepo Structure:

    • Familiarize yourself with the project layout as described in the main README.md.

💡 Development Guidelines

  1. Branching Strategy:

    • We adopt a feature branch workflow. All code modifications must be done on a new branch, linked to a GitHub Issue.
    • The main and dev branches are protected.
  2. Commit Messages:

    • Use Open Commit for intelligent and standardized Git commit messages.
  3. Code Standards:

    • Adhere to existing code style, formatting, and architectural patterns found in the codebase.
    • Run linters and formatters before committing.
  4. Documentation:

  5. Diagrams:

    • All diagrams should be created using Mermaid syntax and stored in Markdown files.