diff options
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py index 5eff2dd..86136f2 100644 --- a/app/models.py +++ b/app/models.py @@ -126,6 +126,9 @@ class User(db.Model, UserMixin): github_username = db.Column(db.String(50, collation="NOCASE"), nullable=True, unique=True) forums_username = db.Column(db.String(50, collation="NOCASE"), nullable=True, unique=True) + # Access token for webhook setup + github_access_token = db.Column(db.String(50), nullable=True, server_default=None) + # User email information email = db.Column(db.String(255), nullable=True, unique=True) email_confirmed_at = db.Column(db.DateTime()) @@ -461,6 +464,31 @@ class Package(db.Model): def getIsFOSS(self): return self.license.is_foss and self.media_license.is_foss + def getIsOnGitHub(self): + if self.repo is None: + return False + + url = urlparse(self.repo) + return url.netloc == "github.com" + + def getGitHubFullName(self): + if self.repo is None: + return None + + url = urlparse(self.repo) + if url.netloc != "github.com": + return None + + import re + m = re.search(r"^\/([^\/]+)\/([^\/]+)\/?$", url.path) + if m is None: + return + + user = m.group(1) + repo = m.group(2).replace(".git", "") + + return (user,repo) + def getSortedDependencies(self, is_hard=None): query = self.dependencies if is_hard is not None: |