def METHOD_NAME(proj_name: str) -> List:
    """
    :return: a list of target branch candidates, from highest priority to lowest priority.
    """
    candidates = [
        # branch name (or tag name) of current IDF
        os.getenv('CI_COMMIT_REF_NAME'),
        # CI_MERGE_REQUEST_TARGET_BRANCH_NAME
        os.getenv('CI_MERGE_REQUEST_TARGET_BRANCH_NAME'),
    ]
    customized_candidate = get_customized_project_revision(proj_name)
    if customized_candidate:
        # highest priority, insert to head of list
        candidates.insert(0, customized_candidate)
    # branch name read from IDF
    major_revision, minor_revision = _idf_version_from_cmake()
    # release branch
    candidates.append('release/v{}.{}'.format(major_revision, minor_revision))
    # branch to match all major branches, like v3.x or v3
    candidates.append('release/v{}.x'.format(major_revision))
    candidates.append('release/v{}'.format(major_revision))
    return [c for c in candidates if c]  # filter out null value