fix: checkout to single repo

This commit is contained in:
张泊明518370910136 2021-10-13 02:54:35 +08:00
parent 9ce50c6964
commit 3de4dccb79
No known key found for this signature in database
GPG Key ID: FBEF5DE8B9F4C629
3 changed files with 20 additions and 21 deletions

View File

@ -1,4 +1,6 @@
from joint_teapot.__main__ import app from joint_teapot.__main__ import app
from joint_teapot.teapot import Teapot as Teapot
from joint_teapot.utils.logger import logger as logger
def main() -> None: def main() -> None:

View File

@ -76,9 +76,11 @@ def check_exist_issue_by_title(repo_names: List[str], title: str) -> None:
def checkout_to_repos_by_release_name( def checkout_to_repos_by_release_name(
repo_names: List[str], release_name: str, due: datetime = Argument("3000-01-01") repo_names: List[str], release_name: str, due: datetime = Argument("3000-01-01")
) -> None: ) -> None:
failed_repos = tea.pot.checkout_to_repos_by_release_name( failed_repos = []
repo_names, release_name, due for repo_name in repo_names:
) succeed = tea.pot.checkout_to_repo_by_release_name(repo_name, release_name, due)
if not succeed:
failed_repos.append(repo_name)
echo(f"failed repos: {failed_repos}") echo(f"failed repos: {failed_repos}")

View File

@ -111,24 +111,19 @@ class Teapot:
res.append(repo_name) res.append(repo_name)
return res return res
def checkout_to_repos_by_release_name( def checkout_to_repo_by_release_name(
self, self, repo_name: str, release_name: str, due: datetime = datetime(3000, 1, 1)
repo_names: List[str], ) -> bool:
release_name: str, repo_releases = self.gitea.get_repo_releases(repo_name)
due: datetime = datetime(3000, 1, 1), release = first(repo_releases, lambda item: item.name == release_name)
) -> List[str]: if release is None or release.created_at.replace(tzinfo=None) >= due:
failed_repos = [] return False
for repo_name in repo_names: self.git.repo_clean_and_checkout(repo_name, f"tags/{release.tag_name}")
repo_releases = self.gitea.get_repo_releases(repo_name) logger.info(
release = first(repo_releases, lambda item: item.name == release_name) f"{self.gitea.org_name}/{repo_name} checkout to "
if release is None or release.created_at.replace(tzinfo=None) >= due: f"tags/{release.tag_name} succeed"
failed_repos.append(repo_name) )
continue return True
self.git.repo_clean_and_checkout(repo_name, f"tags/{release.tag_name}")
logger.info(
f"{self.gitea.org_name}/{repo_name} checkout to tags/{release.tag_name} succeed"
)
return failed_repos
def get_repos_status(self, commit_lt: int, issue_lt: int) -> None: def get_repos_status(self, commit_lt: int, issue_lt: int) -> None:
for repo_name, commit_count, issue_count in self.gitea.get_repos_status(): for repo_name, commit_count, issue_count in self.gitea.get_repos_status():