feat: list no collaborator/commit repos
This commit is contained in:
parent
5741675f10
commit
7fa19c3cb9
|
@ -32,7 +32,7 @@ def create_teams_and_repos_by_canvas_groups() -> None:
|
|||
teapot.create_teams_and_repos_by_canvas_groups()
|
||||
|
||||
|
||||
@app.command("get-public-keys", help="get all public keys on gitea")
|
||||
@app.command("get-public-keys", help="list all public keys on gitea")
|
||||
def get_public_key_of_all_canvas_students() -> None:
|
||||
echo("\n".join(teapot.get_public_key_of_all_canvas_students()))
|
||||
|
||||
|
@ -53,7 +53,7 @@ def check_exist_issue_by_title(repo_names: List[str], title: str) -> None:
|
|||
|
||||
|
||||
@app.command(
|
||||
"get-releases",
|
||||
"checkout-releases",
|
||||
help="checkout git repo to git tag fetched from gitea by release name, with due date",
|
||||
)
|
||||
def checkout_to_repos_by_release_name(
|
||||
|
@ -74,6 +74,16 @@ def archieve_all_repos() -> None:
|
|||
teapot.archieve_all_repos()
|
||||
|
||||
|
||||
@app.command("get-no-collaborator-repos", help="list all repos with no collaborators")
|
||||
def get_no_collaborator_repos() -> None:
|
||||
teapot.get_no_collaborator_repos()
|
||||
|
||||
|
||||
@app.command("get-no-commit-repos", help="list all repos with no commit")
|
||||
def get_no_commit_repos() -> None:
|
||||
teapot.get_no_commit_repos()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
app()
|
||||
|
|
|
@ -122,6 +122,12 @@ class Teapot:
|
|||
def archieve_all_repos(self) -> None:
|
||||
self.gitea.archieve_all_repos()
|
||||
|
||||
def get_no_collaborator_repos(self) -> None:
|
||||
self.gitea.get_no_collaborator_repos()
|
||||
|
||||
def get_no_commit_repos(self) -> None:
|
||||
self.gitea.get_no_commit_repos()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
teapot = Teapot()
|
||||
|
|
|
@ -16,7 +16,7 @@ class Canvas:
|
|||
self.course = self.canvas.get_course(course_id)
|
||||
logger.info(f"Canvas course loaded. {self.course}")
|
||||
self.students = self.course.get_users(
|
||||
enrollment_type=["student"], include=["email"]
|
||||
enrollment_type=["student", "observer"], include=["email"]
|
||||
)
|
||||
for attr in ["sis_login_id", "sortable_name", "name"]:
|
||||
if not hasattr(self.students[0], attr):
|
||||
|
|
|
@ -124,11 +124,13 @@ class Gitea:
|
|||
repo = self.organization_api.create_org_repo(
|
||||
self.org_name, body=body
|
||||
)
|
||||
logger.info(f"Personal repo {repo_name} for {student} created")
|
||||
logger.info(
|
||||
f"Personal repo {self.org_name}/{repo_name} for {student} created"
|
||||
)
|
||||
except ApiException as e:
|
||||
if e.status == 409:
|
||||
logger.warning(
|
||||
f"Personal repo {repo_name} for {student} already exists"
|
||||
f"Personal repo {self.org_name}/{repo_name} for {student} already exists"
|
||||
)
|
||||
else:
|
||||
raise (e)
|
||||
|
@ -230,6 +232,33 @@ class Gitea:
|
|||
for data in list_all(self.organization_api.org_list_repos, self.org_name)
|
||||
]
|
||||
|
||||
def get_no_collaborator_repos(self) -> List[str]:
|
||||
res = []
|
||||
for data in list_all(self.organization_api.org_list_repos, self.org_name):
|
||||
collaborators = self.repository_api.repo_list_collaborators(
|
||||
self.org_name, data.name
|
||||
)
|
||||
if collaborators:
|
||||
continue
|
||||
logger.info(f"{self.org_name}/{data.name} has no collaborators")
|
||||
res.append(data.name)
|
||||
return res
|
||||
|
||||
def get_no_commit_repos(self) -> List[str]:
|
||||
res = []
|
||||
for data in list_all(self.organization_api.org_list_repos, self.org_name):
|
||||
try:
|
||||
commits = self.repository_api.repo_get_all_commits(
|
||||
self.org_name, data.name
|
||||
)
|
||||
except ApiException as e:
|
||||
if e.status == 409:
|
||||
logger.info(f"{self.org_name}/{data.name} has no commits")
|
||||
res.append(data.name)
|
||||
else:
|
||||
raise (e)
|
||||
return res
|
||||
|
||||
def create_issue(
|
||||
self,
|
||||
repo_name: str,
|
||||
|
@ -280,5 +309,4 @@ class Gitea:
|
|||
|
||||
if __name__ == "__main__":
|
||||
gitea = Gitea()
|
||||
res = gitea.get_all_repo_names()
|
||||
print("\n".join(res))
|
||||
res = gitea.get_no_commit_repos()
|
||||
|
|
Loading…
Reference in New Issue
Block a user