refactor: move moss-all-repos to teapot.py

This commit is contained in:
张泊明518370910136 2025-03-26 21:28:51 -04:00
parent 55ad49d199
commit 691c8a4adc
GPG Key ID: CA088E6D9284F870
2 changed files with 19 additions and 14 deletions

View File

@ -1,4 +1,3 @@
import glob
import json
import os
import re
@ -7,7 +6,6 @@ from pathlib import Path
from time import sleep
from typing import TYPE_CHECKING, List
import mosspy
from filelock import FileLock
from git import Repo
from typer import Argument, Exit, Option, Typer, echo
@ -77,18 +75,7 @@ def clone_all_repos() -> None:
@app.command("moss-all-repos", help="moss all gitea repos")
def moss_all_repos(language: str = "cc", wildcards: List[str] = ["*.*"]) -> None:
m = mosspy.Moss(settings.moss_user_id, language)
for repo_name in tea.pot.gitea.get_all_repo_names():
base_dir = os.path.join(settings.repos_dir, repo_name)
for wildcard in wildcards:
full_wildcard = os.path.join(base_dir, wildcard)
for file in glob.glob(full_wildcard, recursive=True):
if not os.path.isfile(file):
continue
logger.info(f"Adding file {file}")
m.files.append((file, os.path.relpath(file, settings.repos_dir)))
logger.info("Sending files")
url = m.send()
url = tea.pot.moss_all_repos(language, wildcards)
echo("Report Url: " + url)

View File

@ -1,8 +1,12 @@
import functools
import glob
import os
import re
from datetime import datetime
from typing import Any, Callable, Dict, List, Optional, TypeVar
import mosspy
from joint_teapot.config import settings
from joint_teapot.utils.logger import logger
from joint_teapot.utils.main import default_repo_name_convertor, first
@ -116,6 +120,20 @@ class Teapot:
logger.info(f"{i}, {self.gitea.org_name}/{repo_name} cloning...")
self.git.repo_clean_and_checkout(repo_name, settings.default_branch)
def moss_all_repos(self, language: str, wildcards: List[str]) -> str:
m = mosspy.Moss(settings.moss_user_id, language)
for repo_name in self.gitea.get_all_repo_names():
base_dir = os.path.join(settings.repos_dir, repo_name)
for wildcard in wildcards:
full_wildcard = os.path.join(base_dir, wildcard)
for file in glob.glob(full_wildcard, recursive=True):
if not os.path.isfile(file):
continue
logger.info(f"Adding file {file}")
m.files.append((file, os.path.relpath(file, settings.repos_dir)))
logger.info("Sending files")
return m.send()
def create_issue_for_repos(
self,
repo_names: List[str],