Explore the docs »
Report Bug
·
Request Feature
·
Join Our Discord
·
Roadmap
·
X
Momentum is an open-source tool designed to generate and understand powerful insights into your codebase. It helps you understand changes and their impacts, generate test behaviours and integration test code and much more.
momentum analyses your codebase and understands intended code behavior and tests it at every git push to ensure the code is ready for production. It generates visualisation and precise context for test plans and test cases for all entry points detected in the system.
A behavior is defined as a task or functionality you were trying to create using your code. Examples could be deleting a document using a deleting API or creating a new user in the database. Behaviors can also be more complex sometimes where third-party dependencies are associated for example fetching data from a payment API to check the status. Behaviours must be independently executable tasks.
Code generation to test functionality: Generate code to test all behaviors identified and run it in your local environment through momentum
Run code in local dev environment: No need for yet another yaml, our cli works with your existing dev environment to run code.
Debug code: Based on the stacktrace of the run, momentum can diagnose and propose a solution
To get started with Momentum, follow these steps:
Clone the repository:
git clone https://github.com/getmomentum/momentum-core.git
cd momentum-core
Set up the database via Docker:
docker-compose up
Set up environment:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Run migrations:
Create a .env inside /server
based on .env.template
alembic upgrade head
Setup keys: You will have to setup keys for services like firebase auth, github app, Open AI, portkey among others. Follow the detailed instructions here
Start the application:
uvicorn server.main:app --host 0.0.0.0 --port 8001
Set Up the Environment:
Configure your environment variables by creating a .env
file based on the .env.template
provided in the repository.
This file should include all necessary configuration settings for the application.
Google Cloud Authentication: Log in to your Google Cloud account and set up Application Default Credentials (ADC). You can find detailed instructions here.
Build Docker Image: Build the Docker image using the following command:
docker build -t momentum .
Bring the required infrastructure up:
docker-compose up
Run migrations: Ensure .env is correctly setup
alembic upgrade head
Run Momentum
./run-momentum.sh
Note: (a) Read the shell script to modify google cloud credentials if needed (b) You might need to make it an executable, do it by running chmod +x run-momentum.sh
After installation, you can access Momentum at http://localhost:8001
. Key functionalities include:
For detailed usage instructions, visit the Momentum Documentation.
We welcome contributions from the community. Contributions can be of the form:
To contribute:
git checkout -b feature-branch
).git commit -am 'Add new feature'
).git push origin feature-branch
).Refer to the Contributing Guide for more details.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Thanks a lot for spending your time helping build momentum. Keep rocking 🥂