37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
"""Bot/daemons for doing stuff with GitLab."""
|
|
|
|
import logging
|
|
|
|
from django.db import models
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
class GitlabConfig(models.Model):
|
|
|
|
"""Maintain bot-wide settings (URL, auth key, etc.)."""
|
|
|
|
url = models.URLField()
|
|
token = models.CharField(max_length=64)
|
|
|
|
def __str__(self):
|
|
"""String representation."""
|
|
return "bot @ {0:s}".format(self.url)
|
|
|
|
|
|
class GitlabProjectConfig(models.Model):
|
|
|
|
"""Maintain settings for a particular project in GitLab."""
|
|
|
|
gitlab_config = models.ForeignKey('GitlabConfig', null=True, on_delete=models.CASCADE)
|
|
project_id = models.CharField(max_length=64, unique=True)
|
|
|
|
manage_merge_request_code_reviews = models.BooleanField(default=False)
|
|
code_reviews_necessary = models.PositiveSmallIntegerField(default=0)
|
|
code_reviewers = models.TextField(default='', blank=True)
|
|
code_review_final_merge_assignees = models.TextField(default='', blank=True)
|
|
|
|
def __str__(self):
|
|
"""String representation."""
|
|
return "configuration for {0:s} @ {1:s}".format(self.project_id, self.gitlab_config.url)
|