diff --git a/gittensor/utils/mirror/models.py b/gittensor/utils/mirror/models.py index 1894dbf2..d9966deb 100644 --- a/gittensor/utils/mirror/models.py +++ b/gittensor/utils/mirror/models.py @@ -86,6 +86,7 @@ class MirrorLinkedIssue: updated_at: Optional[datetime] is_transferred: bool solved_by_pr: Optional[int] + repository_full_name: Optional[str] = None labels: List[MirrorLabel] = field(default_factory=list) @classmethod @@ -106,6 +107,7 @@ def from_dict(cls, data: dict) -> 'MirrorLinkedIssue': updated_at=parse_optional_github_iso_to_utc(data.get('updated_at')), is_transferred=bool(data.get('is_transferred', False)), solved_by_pr=data.get('solved_by_pr'), + repository_full_name=data.get('repository_full_name'), labels=[MirrorLabel.from_dict(label) for label in data.get('labels') or []], ) diff --git a/gittensor/validator/oss_contributions/mirror/scoring.py b/gittensor/validator/oss_contributions/mirror/scoring.py index bda651e0..d367357d 100644 --- a/gittensor/validator/oss_contributions/mirror/scoring.py +++ b/gittensor/validator/oss_contributions/mirror/scoring.py @@ -444,6 +444,13 @@ def _is_valid_linked_issue(li: MirrorLinkedIssue, pr: MirrorPullRequest) -> bool bt.logging.warning(f'Skipping linked issue #{li.number} - transferred') return False + if li.repository_full_name and li.repository_full_name.lower() != pr.repo_full_name.lower(): + bt.logging.warning( + f'Skipping linked issue #{li.number} - cross-repo reference ' + f'({li.repository_full_name} != {pr.repo_full_name})' + ) + return False + if li.author_github_id is None: bt.logging.warning(f'Skipping linked issue #{li.number} - missing author_github_id') return False