Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
setup-pr-wrapperโ€ข5.62 kB
#!/bin/bash # Setup script for GitFlow PR wrapper # This creates an alias that intercepts gh pr create commands # Colors GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' REPO_ROOT=$(git rev-parse --show-toplevel) WRAPPER_PATH="$REPO_ROOT/.githooks/gh-pr-create-wrapper" echo -e "${BLUE}โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—${NC}" echo -e "${BLUE}โ•‘ ๐Ÿ›ก๏ธ GitFlow PR Protection Setup โ•‘${NC}" echo -e "${BLUE}โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ${NC}" echo -e "${BLUE}โ•‘ โ•‘${NC}" echo -e "${BLUE}โ•‘ This will set up protection against creating PRs โ•‘${NC}" echo -e "${BLUE}โ•‘ to the wrong branch (e.g., feature โ†’ main) โ•‘${NC}" echo -e "${BLUE}โ•‘ โ•‘${NC}" echo -e "${BLUE}โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" echo "" # Check if wrapper exists if [[ ! -f "$WRAPPER_PATH" ]]; then echo -e "${YELLOW}โŒ Error: Wrapper script not found at $WRAPPER_PATH${NC}" exit 1 fi # Create git alias for pr command that uses our wrapper echo -e "${GREEN}โ†’ Creating Git alias for 'gh pr create' protection...${NC}" # Create a git alias that intercepts pr commands git config alias.pr "!f() { if [[ \"\$1\" == \"create\" ]]; then $WRAPPER_PATH \"\$@\" else command gh pr \"\$@\" fi }; f" # Also create a shell alias for the current session echo -e "${GREEN}โ†’ Creating shell alias for current session...${NC}" # Detect shell type and add appropriate alias if [[ "$SHELL" == *"zsh"* ]]; then SHELL_RC="$HOME/.zshrc" elif [[ "$SHELL" == *"bash"* ]]; then SHELL_RC="$HOME/.bashrc" else SHELL_RC="$HOME/.profile" fi # Create the alias command ALIAS_CMD="alias gh='_gh_wrapper() { if [[ \"\$1\" == \"pr\" ]] && [[ \"\$2\" == \"create\" ]]; then $WRAPPER_PATH \"\$@\"; else command gh \"\$@\"; fi }; _gh_wrapper'" # Check if alias already exists if ! grep -q "_gh_wrapper" "$SHELL_RC" 2>/dev/null; then echo "" >> "$SHELL_RC" echo "# GitFlow PR Protection" >> "$SHELL_RC" echo "$ALIAS_CMD" >> "$SHELL_RC" echo -e "${GREEN}โœ… Added alias to $SHELL_RC${NC}" else echo -e "${YELLOW}โ„น๏ธ Alias already exists in $SHELL_RC${NC}" fi # Apply alias to current session eval "$ALIAS_CMD" echo "" echo -e "${GREEN}โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—${NC}" echo -e "${GREEN}โ•‘ โœ… Setup Complete! โ•‘${NC}" echo -e "${GREEN}โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ${NC}" echo -e "${GREEN}โ•‘ โ•‘${NC}" echo -e "${GREEN}โ•‘ GitFlow PR Protection is now active! โ•‘${NC}" echo -e "${GREEN}โ•‘ โ•‘${NC}" echo -e "${GREEN}โ•‘ When you run 'gh pr create', it will: โ•‘${NC}" echo -e "${GREEN}โ•‘ โ€ข Check if you're creating a PR to the right branch โ•‘${NC}" echo -e "${GREEN}โ•‘ โ€ข Block PRs from feature/fix branches to main โ•‘${NC}" echo -e "${GREEN}โ•‘ โ€ข Guide you to submit to develop instead โ•‘${NC}" echo -e "${GREEN}โ•‘ โ•‘${NC}" echo -e "${GREEN}โ•‘ ${CYAN}Test it:${GREEN} โ•‘${NC}" echo -e "${GREEN}โ•‘ gh pr create --base main ${YELLOW}# Will be blocked${GREEN} โ•‘${NC}" echo -e "${GREEN}โ•‘ gh pr create --base develop ${GREEN}# Will be allowed${GREEN} โ•‘${NC}" echo -e "${GREEN}โ•‘ โ•‘${NC}" echo -e "${GREEN}โ•‘ ${CYAN}To bypass (emergency only):${GREEN} โ•‘${NC}" echo -e "${GREEN}โ•‘ GH_FORCE_PR=1 gh pr create --base main โ•‘${NC}" echo -e "${GREEN}โ•‘ โ•‘${NC}" echo -e "${GREEN}โ•‘ ${CYAN}To disable:${GREEN} โ•‘${NC}" echo -e "${GREEN}โ•‘ unalias gh โ•‘${NC}" echo -e "${GREEN}โ•‘ โ•‘${NC}" echo -e "${GREEN}โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" echo "" echo -e "${YELLOW}Note: Restart your terminal or run 'source $SHELL_RC'${NC}" echo -e "${YELLOW} to ensure the alias is loaded in new sessions.${NC}"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DollhouseMCP/DollhouseMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server