Jak vypsat všechny štítky vzdáleného repozitáře git pomocí Pythonu

list_remote_tags.py
import subprocess

def list_all_tags_for_remote_git_repo(url):
    """
    Zadaná URL repozitáře, vypíše všechny tagy pro daný repozitář
    bez jeho klonování.

    Tato funkce používá "git ls-remote", takže
    program "git" musí být dostupný.
    """
    # Spustit příkaz 'git' pro stažení a výpis vzdálených tagů
    result = subprocess.run([
        "git", "ls-remote", "--tags", repo_url
    ], stdout=subprocess.PIPE, text=True)

    # Zpracovat výstup pro extrakci názvů tagů
    output_lines = result.stdout.splitlines()
    tags = [
        line.split("refs/tags/")[-1] for line in output_lines
        if "refs/tags/" in line and "^{}" not in line
    ]

    return tags

Příklad použití:

usage_example.py
list_all_tags_for_remote_git_repo("https://github.com/EmbeddedRPC/erpc.git")

Výsledek:

tags_output.txt
['1.10.0',
 '1.11.0',
 '1.4.0',
 '1.4.1',
 '1.5.0',
 '1.6.0',
 '1.7.0',
 '1.7.1',
 '1.7.2',
 '1.7.3',
 '1.7.4',
 '1.8.0',
 '1.8.1',
 '1.9.0',
 '1.9.1']

Podívejte se na podobné články podle kategorie: Git Python