This is an automated email from the ASF dual-hosted git repository. gcruz pushed a commit to branch gc/8463 in repository https://gitbox.apache.org/repos/asf/allura.git
commit 383f6e17d7fbf79173892eae1da413800485458b Author: Guillermo Cruz <[email protected]> AuthorDate: Tue Sep 13 13:09:54 2022 -0600 [#8463] added basic resp endpoint to store commit statuses --- Allura/allura/controllers/repository.py | 7 +++++++ Allura/allura/model/__init__.py | 4 ++-- Allura/allura/model/repository.py | 18 +++++++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py index ab98ec1ef..96d0232fe 100644 --- a/Allura/allura/controllers/repository.py +++ b/Allura/allura/controllers/repository.py @@ -361,6 +361,13 @@ class RepoRestController(RepoRootController, AppRestControllerMixin): } for commit in revisions ]} + @expose('json:') + def commit_status(self, rev=None, **kwargs): + params = {x : kwargs.get(x, '').strip() for x in + ['state', 'target_url', 'description', 'context']} + M.CommitStatus(params) + return {"status": "success"} + class MergeRequestsController: diff --git a/Allura/allura/model/__init__.py b/Allura/allura/model/__init__.py index b7b1fdbfd..ef5adad30 100644 --- a/Allura/allura/model/__init__.py +++ b/Allura/allura/model/__init__.py @@ -28,7 +28,7 @@ from .auth import AuthGlobals, User, ProjectRole, EmailAddress from .auth import AuditLog, AlluraUserProperty, UserLoginDetails from .filesystem import File from .notification import Notification, Mailbox, SiteNotification -from .repository import Repository, RepositoryImplementation +from .repository import Repository, RepositoryImplementation, CommitStatus from .repository import MergeRequest, GitLikeTree from .stats import Stats from .oauth import OAuthToken, OAuthConsumerToken, OAuthRequestToken, OAuthAccessToken @@ -55,7 +55,7 @@ __all__ = [ 'AwardFile', 'Award', 'AwardGrant', 'VotableArtifact', 'Discussion', 'Thread', 'PostHistory', 'Post', 'DiscussionAttachment', 'BaseAttachment', 'AuthGlobals', 'User', 'ProjectRole', 'EmailAddress', 'AuditLog', 'AlluraUserProperty', 'File', 'Notification', 'Mailbox', 'Repository', - 'RepositoryImplementation', 'MergeRequest', 'GitLikeTree', 'Stats', 'OAuthToken', 'OAuthConsumerToken', + 'RepositoryImplementation', 'CommitStatus', 'MergeRequest', 'GitLikeTree', 'Stats', 'OAuthToken', 'OAuthConsumerToken', 'OAuthRequestToken', 'OAuthAccessToken', 'MonQTask', 'Webhook', 'ACE', 'ACL', 'EVERYONE', 'ALL_PERMISSIONS', 'DENY_ALL', 'MarkdownCache', 'main_doc_session', 'main_orm_session', 'project_doc_session', 'project_orm_session', 'artifact_orm_session', 'repository_orm_session', 'task_orm_session', 'ArtifactSessionExtension', 'repository', diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py index 7ebbffdb7..99a5be417 100644 --- a/Allura/allura/model/repository.py +++ b/Allura/allura/model/repository.py @@ -47,7 +47,7 @@ import six from ming import schema as S from ming import Field, collection, Index from ming.utils import LazyProperty -from ming.odm import FieldProperty, session, Mapper, mapper, MappedClass +from ming.odm import FieldProperty, session, Mapper, mapper, MappedClass, RelationProperty from ming.base import Object from allura.lib import helpers as h @@ -1042,6 +1042,21 @@ CommitDoc = collection( Field('child_ids', [str], index=True), Field('repo_ids', [S.ObjectId()], index=True)) +class CommitStatus(MappedClass): + class __mongometa__: + session = repository_orm_session + name = 'commit_status' + indexes = ['commit_id'] + + query: 'Query[CommitStatus]' + + state = FieldProperty(str) + target_url = FieldProperty(str) + description = FieldProperty(str) + context = FieldProperty(str) + commit_id = FieldProperty(str) + commit = RelationProperty('Commit') + class Commit(MappedClass, RepoObject, ActivityObject): # Basic commit information @@ -1066,6 +1081,7 @@ class Commit(MappedClass, RepoObject, ActivityObject): parent_ids = FieldProperty([str]) child_ids = FieldProperty([str]) repo_ids = FieldProperty([S.ObjectId()]) + statuses = RelationProperty('CommitStatus', via="commit_id") type_s = 'Commit' # Ephemeral attrs
