mirror of
https://github.com/status-im/sourcecred.git
synced 2025-01-25 20:09:18 +00:00
ccfaa25e7b
At present, the Git commit node type lives in a strange state of shared responsibility between GitHub and Git. The Git plugin is nominally responsible for it, but its render method tries to show a hyperlink to GitHub -- which is awkward for many reasons, including that the same Git commit could have multiple hyperlinks on GitHub. This commit resolves that issue by separating the existing commit type into two: the Git Commit type, which is owned by the Git plugin and doesn't have hyperlinks or any fancy GitHub metadata, and the GitHub Commit, which is owned by the GitHub plugin, corresponds to a unique database id in GitHub, and has a corresponding GitHub url. The two commits are connected by a CorrespondsToCommit edge type, which links from the GitHub commit to the corresponding Git commit. This is necessary for #1136, as if we want to make descriptions a part of the graph payload, we need for descriptions to be unique for a given address--and descriptions are only unique if we identifiy each GitHub commit pointer as a separate address. Test plan: The unit testing in this part of the codebase is light, so I verified that the frontend work as expected for `sourcecred/sourcecred` and `sourcecred/research`. The new node type and edge type appear properly in the UI, the GitHub commits are connected to their Git counterparts, etc.