Add new property to PullRequest ("merged" for forgejo compability)#162
Add new property to PullRequest ("merged" for forgejo compability)#162HadronCollider wants to merge 3 commits intomasterfrom
Conversation
|
/ai-review |
3 similar comments
|
/ai-review |
|
/ai-review |
|
/ai-review |
|
Upd: информация о смержившем пользователе добавляется для смерженных PR (требуется дополнительный запрос для получения информации по конкретному PR) |
| issue_url=None, # TODO если возможно | ||
| merged_by=self.get_user_data(self.get_pull_request(repo, p.number).merged_by) if p.merged else None, | ||
| # TODO: merged_by always empty in result of repo_list_pull_requests | ||
| # (but merged and merged_at are usable) |
There was a problem hiding this comment.
Добавлена заглушка TODO для улучшения кода в будущем.
#ai-review-inline
| merged_by=self.get_user_data(p.merged_by) if p.merged_by else None, | ||
| files=[], # TODO если возможно | ||
| issue_url=None, # TODO если возможно | ||
| merged_by=self.get_user_data(self.get_pull_request(repo, p.number).merged_by) if p.merged else None, |
There was a problem hiding this comment.
Удалены строки, содержащие устаревшие поля merged_by, files и issue_url.
#ai-review-inline
| repo.owner.login, repo.name, obj._id, 100000 | ||
| ) # нет id комментария | ||
| ) | ||
| # нет id комментария - сейчас не работает, т.к. требуется ID ревью - нужно сначала получить \ |
There was a problem hiding this comment.
Добавлен комментарий о том, что сейчас не работает из-за отсутствия ID ревью.
#ai-review-inline
| merged_by=self.get_user_data(p.merged_by) if p.merged_by else None, | ||
| files=[], # TODO если возможно | ||
| issue_url=None, # TODO если возможно | ||
| merged_by=self.get_user_data(self.get_pull_request(repo, p.number).merged_by) if p.merged else None, |
There was a problem hiding this comment.
Добавлены строки с новыми полями merged_by и issue_url.
#ai-review-inline
| comments = self.client.repository.repo_get_pull_review_comments( | ||
| repo.owner.login, repo.name, obj._id, 100000 | ||
| ) # нет id комментария | ||
| ) |
There was a problem hiding this comment.
Изменено местоположение комментария, теперь он находится после запроса get_pull_review_comments.
#ai-review-inline
| for p in pulls | ||
| ] | ||
|
|
||
| @log_exceptions(default_return={}, message="Failed to get pull request data from Forgejo") |
There was a problem hiding this comment.
Добавлен метод get_pull_request для получения данных о Pull Request.
#ai-review-inline
| files=[], # TODO если возможно | ||
| issue_url=None, # TODO если возможно | ||
| merged_by=self.get_user_data(self.get_pull_request(repo, p.number).merged_by) if p.merged else None, | ||
| # TODO: merged_by always empty in result of repo_list_pull_requests |
There was a problem hiding this comment.
Добавлена заглушка TODO для улучшения кода в будущем.
#ai-review-inline
| ) # нет id комментария | ||
| ) | ||
| # нет id комментария - сейчас не работает, т.к. требуется ID ревью - нужно сначала получить \ | ||
| # список ревью /repos/{owner}/{repo}/pulls/{index}/reviews |
There was a problem hiding this comment.
Добавлен комментарий о необходимости отдельных запросов для получения комментариев и ревью.
#ai-review-inline
| ) | ||
| # нет id комментария - сейчас не работает, т.к. требуется ID ревью - нужно сначала получить \ | ||
| # список ревью /repos/{owner}/{repo}/pulls/{index}/reviews | ||
| # TODO: нужны отдельные запросы для получения комментариев и комментариев ревью #163, \ |
There was a problem hiding this comment.
Упомянуты поля comments и review_comments в сущности PullRequest.
#ai-review-inline
| @@ -63,7 +63,7 @@ jobs: | |||
| HEADER="repository name,author name,author login,author email,date and time,changed files,commit id,branch" | |||
| ;; | |||
| --pull_requests) | |||
There was a problem hiding this comment.
В коде была удалена строка с заголовком комментариев, но в новой версии файла она не обновлена.
#ai-review-inline
| ;; | ||
| --pull_requests) | ||
| HEADER="repository name,title,id,state,commit into,commit from,created at,creator name,creator login,creator email,changed files,comment body,comment created at,comment author name,comment author login,comment author email,merger name,merger login,merger email,source branch,target branch,assignee story,related issues,labels,milestone" | ||
| HEADER="repository name,title,id,state,commit into,commit from,created at,creator name,creator login,creator email,changed files,comment body,comment created at,comment author name,comment author login,comment author email,merger name,merger login,merger email,source branch,target branch,assignee story,related issues,labels,milestone,merged" |
There was a problem hiding this comment.
В коде добавлен новый заголовок для комментариев, но в новой версии файла нет указания на это.
#ai-review-inline
| ;; | ||
| --pull_requests) | ||
| HEADER="repository name,title,id,state,commit into,commit from,created at,creator name,creator login,creator email,changed files,comment body,comment created at,comment author name,comment author login,comment author email,merger name,merger login,merger email,source branch,target branch,assignee story,related issues,labels,milestone" | ||
| HEADER="repository name,title,id,state,commit into,commit from,created at,creator name,creator login,creator email,changed files,comment body,comment created at,comment author name,comment author login,comment author email,merger name,merger login,merger email,source branch,target branch,assignee story,related issues,labels,milestone,merged" |
There was a problem hiding this comment.
В коде была удалена строка с заголовком комментария, но в новой версии файла она не обновлена.
#ai-review-inline
| if pr["mergedBy"] and "email" in pr["mergedBy"] | ||
| else None | ||
| ), | ||
| merged=pr["mergedBy"] and "name" in pr["mergedBy"], # TODO: refactor? |
There was a problem hiding this comment.
Логика условного выражения в 'merged' не соответствует ожиданиям.
#ai-review-inline
| head_ref=p.head.ref, | ||
| base_ref=p.base.ref, | ||
| merged_by=self.get_user_data(p.merged_by) if p.merged_by else None, | ||
| merged=bool(p.merged_by), |
There was a problem hiding this comment.
Добавлен логический флаг 'merged', который должен быть установлен в значение True, если есть автор слияния.
#ai-review-inline
| merger_name=pull.merged_by.username if pull.merged_by else None, | ||
| merger_login=pull.merged_by.login if pull.merged_by else None, | ||
| merger_email=pull.merged_by.email if pull.merged_by else None, | ||
| merged=pull.merged, |
There was a problem hiding this comment.
Добавлен лишний комментарий в коде.
#ai-review-inline
| related_issues: str = '' | ||
| labels: str = '' | ||
| milestone: str = '' | ||
| merged: bool = False |
There was a problem hiding this comment.
Добавлен логический флаг 'merged', который не имеет смысла в контексте данного класса.
#ai-review-inline
Наблюдение за смерженными PR в Forgejo:
Итого: в классы PR введено поле "merged" для идентификации смерженых PR (поле добавлено в конец csv-выгрузки, чтобы не ломать имеющиеся таблицы)
close #161