def create_merge_request()

in devai-api/app/gitlab_utils.py [0:0]


def create_merge_request(prompt: str) -> str:
    """Creates a new GitLab merge request.

    Args:
        prompt (str): The prompt describing the changes to be made.

    Returns:
        str: The implementation details returned by the LLM.

    Raises:
        MergeRequestError: If an error occurs during the merge request creation.
    """
    _, repo_name = get_repo_details()
    try:
        delete_folder(repo_name)    
        _clone_repo(repo_name)
        codebase = load_codebase(repo_name, prompt)

        instructions = _generate_llm_instructions(prompt, codebase)
        implementation_details = _get_llm_response(instructions, repo_name)

        new_gitlab_branch = _create_branch()
        agent = _init_agent(new_gitlab_branch)
        
        _create_gitlab_merge_request(implementation_details, agent)
        
        return implementation_details
    except Exception as e:
         raise MergeRequestError(f"Failed to create merge request: {e}") from e
    finally:
        delete_folder(repo_name)