我将合并我的发布分支到master,我想知道是否应该在合并到master时将提交从开发转换为单个合并提交.
关于git flow的一般文档包含Atlassian页面中的这类数据:
在这些图中,只有单个提交出现在master上,而不是所有提交的提交.
实际上,我喜欢有一个只发布提交的主分支的想法.
合并成主人时,我应该保留所有提交的提交吗?或者在关注Gitflow时,在合并到master之前压缩提交?
使用 Django REST 框架,我使用此视图和权限仅允许项目所有者获取他们的项目。
查看.py
class ProjectViewSet(viewsets.ModelViewSet):
permission_classes = (
IsProjectOwner,
permissions.IsAuthenticated,
)
def get_queryset(self):
return Project.objects.filter(owner=self.request.user)
Run Code Online (Sandbox Code Playgroud)
权限.py
class IsProjectOwner(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
return obj.owner == request.user
Run Code Online (Sandbox Code Playgroud)
当用户尝试获取不属于他的项目时,会出现 HTTP 404。但是,我想获得 HTTP 403_Forbidden。这是我使用的测试
def test_auth_get(self):
self.client.credentials(
HTTP_AUTHORIZATION=self.authenticated_user_token
)
response = self.client.get(
'/-/projects/%s/' % self.project_owner_project_id
)
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Run Code Online (Sandbox Code Playgroud)
我试图使用 get_object() 方法解决这个问题,比如在 REST 文档http://www.django-rest-framework.org/api-guide/permissions/#object-level-permissions 中。但我不确定如何在知道实际对象之前检查权限。