ag

package
v0.0.0-...-35a0bdf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 3, 2022 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InfoRepo          = "info"
	AssignmentRepo    = "assignments"
	TestsRepo         = "tests"
	StudentRepoSuffix = "-labs"
)

Default repository names.

View Source
const MaxWait = 2 * time.Minute

MaxWait is the maximum time a request is allowed to stay open before aborting.

View Source
const (
	TimeLayout = "2006-01-02T15:04:05"
)

Variables

View Source
var (
	Group_GroupStatus_name = map[int32]string{
		0: "PENDING",
		1: "APPROVED",
	}
	Group_GroupStatus_value = map[string]int32{
		"PENDING":  0,
		"APPROVED": 1,
	}
)

Enum value maps for Group_GroupStatus.

View Source
var (
	Repository_Type_name = map[int32]string{
		0: "NONE",
		1: "COURSEINFO",
		2: "ASSIGNMENTS",
		3: "TESTS",
		4: "USER",
		5: "GROUP",
	}
	Repository_Type_value = map[string]int32{
		"NONE":        0,
		"COURSEINFO":  1,
		"ASSIGNMENTS": 2,
		"TESTS":       3,
		"USER":        4,
		"GROUP":       5,
	}
)

Enum value maps for Repository_Type.

View Source
var (
	Enrollment_UserStatus_name = map[int32]string{
		0: "NONE",
		1: "PENDING",
		2: "STUDENT",
		3: "TEACHER",
	}
	Enrollment_UserStatus_value = map[string]int32{
		"NONE":    0,
		"PENDING": 1,
		"STUDENT": 2,
		"TEACHER": 3,
	}
)

Enum value maps for Enrollment_UserStatus.

View Source
var (
	Enrollment_DisplayState_name = map[int32]string{
		0: "UNSET",
		1: "HIDDEN",
		2: "VISIBLE",
		3: "FAVORITE",
	}
	Enrollment_DisplayState_value = map[string]int32{
		"UNSET":    0,
		"HIDDEN":   1,
		"VISIBLE":  2,
		"FAVORITE": 3,
	}
)

Enum value maps for Enrollment_DisplayState.

View Source
var (
	PullRequest_Stage_name = map[int32]string{
		0: "NONE",
		1: "DRAFT",
		2: "REVIEW",
		3: "APPROVED",
	}
	PullRequest_Stage_value = map[string]int32{
		"NONE":     0,
		"DRAFT":    1,
		"REVIEW":   2,
		"APPROVED": 3,
	}
)

Enum value maps for PullRequest_Stage.

View Source
var (
	Submission_Status_name = map[int32]string{
		0: "NONE",
		1: "APPROVED",
		2: "REJECTED",
		3: "REVISION",
	}
	Submission_Status_value = map[string]int32{
		"NONE":     0,
		"APPROVED": 1,
		"REJECTED": 2,
		"REVISION": 3,
	}
)

Enum value maps for Submission_Status.

View Source
var (
	GradingCriterion_Grade_name = map[int32]string{
		0: "NONE",
		1: "FAILED",
		2: "PASSED",
	}
	GradingCriterion_Grade_value = map[string]int32{
		"NONE":   0,
		"FAILED": 1,
		"PASSED": 2,
	}
)

Enum value maps for GradingCriterion_Grade.

View Source
var (
	SubmissionsForCourseRequest_Type_name = map[int32]string{
		0: "ALL",
		1: "INDIVIDUAL",
		2: "GROUP",
	}
	SubmissionsForCourseRequest_Type_value = map[string]int32{
		"ALL":        0,
		"INDIVIDUAL": 1,
		"GROUP":      2,
	}
)

Enum value maps for SubmissionsForCourseRequest_Type.

View Source
var (
	// AgResponseTimeByMethodsMetric records response time by method name
	AgResponseTimeByMethodsMetric = prometheus.NewGaugeVec(prometheus.GaugeOpts{
		Name: "ag_response_time",
	}, []string{"method"})

	// AgFailedMethodsMetric counts amount of times every method resulted in error
	AgFailedMethodsMetric = prometheus.NewCounterVec(prometheus.CounterOpts{
		Name: "ag_methods_failed",
	}, []string{"method"})

	// AgMethodSuccessRateMetric counts the amount of calls for every method, allows
	// grouping by method name and by result ("total", "success", "error")
	AgMethodSuccessRateMetric = prometheus.NewCounterVec(prometheus.CounterOpts{
		Name: "ag_success_rate",
	}, []string{"method", "result"})
)
View Source
var AutograderService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "ag.AutograderService",
	HandlerType: (*AutograderServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetUser",
			Handler:    _AutograderService_GetUser_Handler,
		},
		{
			MethodName: "GetUsers",
			Handler:    _AutograderService_GetUsers_Handler,
		},
		{
			MethodName: "GetUserByCourse",
			Handler:    _AutograderService_GetUserByCourse_Handler,
		},
		{
			MethodName: "UpdateUser",
			Handler:    _AutograderService_UpdateUser_Handler,
		},
		{
			MethodName: "IsAuthorizedTeacher",
			Handler:    _AutograderService_IsAuthorizedTeacher_Handler,
		},
		{
			MethodName: "GetGroup",
			Handler:    _AutograderService_GetGroup_Handler,
		},
		{
			MethodName: "GetGroupByUserAndCourse",
			Handler:    _AutograderService_GetGroupByUserAndCourse_Handler,
		},
		{
			MethodName: "GetGroupsByCourse",
			Handler:    _AutograderService_GetGroupsByCourse_Handler,
		},
		{
			MethodName: "CreateGroup",
			Handler:    _AutograderService_CreateGroup_Handler,
		},
		{
			MethodName: "UpdateGroup",
			Handler:    _AutograderService_UpdateGroup_Handler,
		},
		{
			MethodName: "DeleteGroup",
			Handler:    _AutograderService_DeleteGroup_Handler,
		},
		{
			MethodName: "GetCourse",
			Handler:    _AutograderService_GetCourse_Handler,
		},
		{
			MethodName: "GetCourses",
			Handler:    _AutograderService_GetCourses_Handler,
		},
		{
			MethodName: "GetCoursesByUser",
			Handler:    _AutograderService_GetCoursesByUser_Handler,
		},
		{
			MethodName: "CreateCourse",
			Handler:    _AutograderService_CreateCourse_Handler,
		},
		{
			MethodName: "UpdateCourse",
			Handler:    _AutograderService_UpdateCourse_Handler,
		},
		{
			MethodName: "UpdateCourseVisibility",
			Handler:    _AutograderService_UpdateCourseVisibility_Handler,
		},
		{
			MethodName: "GetAssignments",
			Handler:    _AutograderService_GetAssignments_Handler,
		},
		{
			MethodName: "UpdateAssignments",
			Handler:    _AutograderService_UpdateAssignments_Handler,
		},
		{
			MethodName: "GetEnrollmentsByUser",
			Handler:    _AutograderService_GetEnrollmentsByUser_Handler,
		},
		{
			MethodName: "GetEnrollmentsByCourse",
			Handler:    _AutograderService_GetEnrollmentsByCourse_Handler,
		},
		{
			MethodName: "CreateEnrollment",
			Handler:    _AutograderService_CreateEnrollment_Handler,
		},
		{
			MethodName: "UpdateEnrollments",
			Handler:    _AutograderService_UpdateEnrollments_Handler,
		},
		{
			MethodName: "GetSubmissions",
			Handler:    _AutograderService_GetSubmissions_Handler,
		},
		{
			MethodName: "GetSubmissionsByCourse",
			Handler:    _AutograderService_GetSubmissionsByCourse_Handler,
		},
		{
			MethodName: "UpdateSubmission",
			Handler:    _AutograderService_UpdateSubmission_Handler,
		},
		{
			MethodName: "UpdateSubmissions",
			Handler:    _AutograderService_UpdateSubmissions_Handler,
		},
		{
			MethodName: "RebuildSubmissions",
			Handler:    _AutograderService_RebuildSubmissions_Handler,
		},
		{
			MethodName: "CreateBenchmark",
			Handler:    _AutograderService_CreateBenchmark_Handler,
		},
		{
			MethodName: "UpdateBenchmark",
			Handler:    _AutograderService_UpdateBenchmark_Handler,
		},
		{
			MethodName: "DeleteBenchmark",
			Handler:    _AutograderService_DeleteBenchmark_Handler,
		},
		{
			MethodName: "CreateCriterion",
			Handler:    _AutograderService_CreateCriterion_Handler,
		},
		{
			MethodName: "UpdateCriterion",
			Handler:    _AutograderService_UpdateCriterion_Handler,
		},
		{
			MethodName: "DeleteCriterion",
			Handler:    _AutograderService_DeleteCriterion_Handler,
		},
		{
			MethodName: "CreateReview",
			Handler:    _AutograderService_CreateReview_Handler,
		},
		{
			MethodName: "UpdateReview",
			Handler:    _AutograderService_UpdateReview_Handler,
		},
		{
			MethodName: "GetReviewers",
			Handler:    _AutograderService_GetReviewers_Handler,
		},
		{
			MethodName: "GetProviders",
			Handler:    _AutograderService_GetProviders_Handler,
		},
		{
			MethodName: "GetOrganization",
			Handler:    _AutograderService_GetOrganization_Handler,
		},
		{
			MethodName: "GetRepositories",
			Handler:    _AutograderService_GetRepositories_Handler,
		},
		{
			MethodName: "IsEmptyRepo",
			Handler:    _AutograderService_IsEmptyRepo_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "ag/ag.proto",
}

AutograderService_ServiceDesc is the grpc.ServiceDesc for AutograderService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var ErrMissingBuildInfo = errors.New("submission missing build information")
View Source
var File_ag_ag_proto protoreflect.FileDescriptor

Functions

func Interceptor

func Interceptor(logger *zap.Logger) grpc.UnaryServerInterceptor

Interceptor returns a new unary server interceptor that validates requests that implements the validator interface. Invalid requests are rejected without logging and before it reaches any user-level code and returns an illegal argument to the client. In addition, the interceptor also implements a cancel mechanism.

func RegisterAutograderServiceServer

func RegisterAutograderServiceServer(s grpc.ServiceRegistrar, srv AutograderServiceServer)

func SetAccessToken

func SetAccessToken(courseID uint64, accessToken string)

SetAccessToken for the given course.

func StudentRepoName

func StudentRepoName(userName string) string

StudentRepoName returns the name of the given student's repository.

Types

type Assignment

type Assignment struct {
	ID                uint64              `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CourseID          uint64              `protobuf:"varint,2,opt,name=CourseID,proto3" json:"CourseID,omitempty"` // foreign key
	Name              string              `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	ScriptFile        string              `protobuf:"bytes,4,opt,name=scriptFile,proto3" json:"scriptFile,omitempty"`
	Deadline          string              `protobuf:"bytes,5,opt,name=deadline,proto3" json:"deadline,omitempty"`
	AutoApprove       bool                `protobuf:"varint,6,opt,name=autoApprove,proto3" json:"autoApprove,omitempty"`
	Order             uint32              `protobuf:"varint,7,opt,name=order,proto3" json:"order,omitempty"`
	IsGroupLab        bool                `protobuf:"varint,8,opt,name=isGroupLab,proto3" json:"isGroupLab,omitempty"`
	ScoreLimit        uint32              `protobuf:"varint,9,opt,name=scoreLimit,proto3" json:"scoreLimit,omitempty"`               // minimal score limit for auto approval
	Reviewers         uint32              `protobuf:"varint,10,opt,name=reviewers,proto3" json:"reviewers,omitempty"`                // number of reviewers that will review submissions for this assignment
	ContainerTimeout  uint32              `protobuf:"varint,11,opt,name=containerTimeout,proto3" json:"containerTimeout,omitempty"`  // container timeout for this assignment
	Submissions       []*Submission       `protobuf:"bytes,12,rep,name=submissions,proto3" json:"submissions,omitempty"`             // submissions produced for this assignment
	Tasks             []*Task             `protobuf:"bytes,13,rep,name=tasks,proto3" json:"tasks,omitempty"`                         // tasks associated with this assignment
	GradingBenchmarks []*GradingBenchmark `protobuf:"bytes,14,rep,name=gradingBenchmarks,proto3" json:"gradingBenchmarks,omitempty"` // grading benchmarks for this assignment
	// contains filtered or unexported fields
}

func (*Assignment) CloneWithoutSubmissions

func (a *Assignment) CloneWithoutSubmissions() *Assignment

CloneWithoutSubmissions returns a deep copy of the assignment without submissions.

func (*Assignment) Descriptor deprecated

func (*Assignment) Descriptor() ([]byte, []int)

Deprecated: Use Assignment.ProtoReflect.Descriptor instead.

func (*Assignment) GetAutoApprove

func (x *Assignment) GetAutoApprove() bool

func (*Assignment) GetContainerTimeout

func (x *Assignment) GetContainerTimeout() uint32

func (*Assignment) GetCourseID

func (x *Assignment) GetCourseID() uint64

func (*Assignment) GetDeadline

func (x *Assignment) GetDeadline() string

func (*Assignment) GetGradingBenchmarks

func (x *Assignment) GetGradingBenchmarks() []*GradingBenchmark

func (*Assignment) GetID

func (x *Assignment) GetID() uint64

func (*Assignment) GetIsGroupLab

func (x *Assignment) GetIsGroupLab() bool

func (*Assignment) GetName

func (x *Assignment) GetName() string

func (*Assignment) GetOrder

func (x *Assignment) GetOrder() uint32

func (*Assignment) GetReviewers

func (x *Assignment) GetReviewers() uint32

func (*Assignment) GetScoreLimit

func (x *Assignment) GetScoreLimit() uint32

func (*Assignment) GetScriptFile

func (x *Assignment) GetScriptFile() string

func (*Assignment) GetSubmissions

func (x *Assignment) GetSubmissions() []*Submission

func (*Assignment) GetTasks

func (x *Assignment) GetTasks() []*Task

func (*Assignment) GradedManually

func (a *Assignment) GradedManually() bool

GradedManually returns true if the assignment will be graded manually.

func (*Assignment) IsApproved

func (a *Assignment) IsApproved(latest *Submission, score uint32) Submission_Status

IsApproved returns an approved submission status if this assignment is already approved for the latest submission, or if the score of the latest submission is sufficient to autoapprove the assignment.

func (*Assignment) ProtoMessage

func (*Assignment) ProtoMessage()

func (*Assignment) ProtoReflect

func (x *Assignment) ProtoReflect() protoreflect.Message

func (*Assignment) Reset

func (x *Assignment) Reset()

func (*Assignment) SinceDeadline

func (a *Assignment) SinceDeadline(now time.Time) (time.Duration, error)

SinceDeadline returns the duration since the deadline. A positive duration means the deadline has passed, whereas a negative duration means the deadline has not yet passed.

func (*Assignment) String

func (x *Assignment) String() string

func (*Assignment) WithTimeout

func (a *Assignment) WithTimeout(timeout time.Duration) (context.Context, context.CancelFunc)

WithTimeout returns a context with an execution timeout set to the assignment's specified container timeout. If the assignment has no container timeout, the provided timeout value is used instead.

type Assignments

type Assignments struct {
	Assignments []*Assignment `protobuf:"bytes,1,rep,name=assignments,proto3" json:"assignments,omitempty"`
	// contains filtered or unexported fields
}

func (*Assignments) Descriptor deprecated

func (*Assignments) Descriptor() ([]byte, []int)

Deprecated: Use Assignments.ProtoReflect.Descriptor instead.

func (*Assignments) GetAssignments

func (x *Assignments) GetAssignments() []*Assignment

func (*Assignments) ProtoMessage

func (*Assignments) ProtoMessage()

func (*Assignments) ProtoReflect

func (x *Assignments) ProtoReflect() protoreflect.Message

func (*Assignments) Reset

func (x *Assignments) Reset()

func (*Assignments) String

func (x *Assignments) String() string

type AuthorizationResponse

type AuthorizationResponse struct {
	IsAuthorized bool `protobuf:"varint,1,opt,name=IsAuthorized,proto3" json:"IsAuthorized,omitempty"`
	// contains filtered or unexported fields
}

func (*AuthorizationResponse) Descriptor deprecated

func (*AuthorizationResponse) Descriptor() ([]byte, []int)

Deprecated: Use AuthorizationResponse.ProtoReflect.Descriptor instead.

func (*AuthorizationResponse) GetIsAuthorized

func (x *AuthorizationResponse) GetIsAuthorized() bool

func (*AuthorizationResponse) ProtoMessage

func (*AuthorizationResponse) ProtoMessage()

func (*AuthorizationResponse) ProtoReflect

func (x *AuthorizationResponse) ProtoReflect() protoreflect.Message

func (*AuthorizationResponse) Reset

func (x *AuthorizationResponse) Reset()

func (*AuthorizationResponse) String

func (x *AuthorizationResponse) String() string

type AutograderServiceClient

type AutograderServiceClient interface {
	GetUser(ctx context.Context, in *Void, opts ...grpc.CallOption) (*User, error)
	GetUsers(ctx context.Context, in *Void, opts ...grpc.CallOption) (*Users, error)
	GetUserByCourse(ctx context.Context, in *CourseUserRequest, opts ...grpc.CallOption) (*User, error)
	UpdateUser(ctx context.Context, in *User, opts ...grpc.CallOption) (*Void, error)
	IsAuthorizedTeacher(ctx context.Context, in *Void, opts ...grpc.CallOption) (*AuthorizationResponse, error)
	GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*Group, error)
	GetGroupByUserAndCourse(ctx context.Context, in *GroupRequest, opts ...grpc.CallOption) (*Group, error)
	GetGroupsByCourse(ctx context.Context, in *CourseRequest, opts ...grpc.CallOption) (*Groups, error)
	CreateGroup(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Group, error)
	UpdateGroup(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Group, error)
	DeleteGroup(ctx context.Context, in *GroupRequest, opts ...grpc.CallOption) (*Void, error)
	GetCourse(ctx context.Context, in *CourseRequest, opts ...grpc.CallOption) (*Course, error)
	GetCourses(ctx context.Context, in *Void, opts ...grpc.CallOption) (*Courses, error)
	GetCoursesByUser(ctx context.Context, in *EnrollmentStatusRequest, opts ...grpc.CallOption) (*Courses, error)
	CreateCourse(ctx context.Context, in *Course, opts ...grpc.CallOption) (*Course, error)
	UpdateCourse(ctx context.Context, in *Course, opts ...grpc.CallOption) (*Void, error)
	UpdateCourseVisibility(ctx context.Context, in *Enrollment, opts ...grpc.CallOption) (*Void, error)
	GetAssignments(ctx context.Context, in *CourseRequest, opts ...grpc.CallOption) (*Assignments, error)
	UpdateAssignments(ctx context.Context, in *CourseRequest, opts ...grpc.CallOption) (*Void, error)
	GetEnrollmentsByUser(ctx context.Context, in *EnrollmentStatusRequest, opts ...grpc.CallOption) (*Enrollments, error)
	GetEnrollmentsByCourse(ctx context.Context, in *EnrollmentRequest, opts ...grpc.CallOption) (*Enrollments, error)
	CreateEnrollment(ctx context.Context, in *Enrollment, opts ...grpc.CallOption) (*Void, error)
	UpdateEnrollments(ctx context.Context, in *Enrollments, opts ...grpc.CallOption) (*Void, error)
	// Get latest submissions for all course assignments for a user or a group.
	GetSubmissions(ctx context.Context, in *SubmissionRequest, opts ...grpc.CallOption) (*Submissions, error)
	// Get lab submissions for every course user or every course group
	GetSubmissionsByCourse(ctx context.Context, in *SubmissionsForCourseRequest, opts ...grpc.CallOption) (*CourseSubmissions, error)
	UpdateSubmission(ctx context.Context, in *UpdateSubmissionRequest, opts ...grpc.CallOption) (*Void, error)
	UpdateSubmissions(ctx context.Context, in *UpdateSubmissionsRequest, opts ...grpc.CallOption) (*Void, error)
	RebuildSubmissions(ctx context.Context, in *RebuildRequest, opts ...grpc.CallOption) (*Void, error)
	CreateBenchmark(ctx context.Context, in *GradingBenchmark, opts ...grpc.CallOption) (*GradingBenchmark, error)
	UpdateBenchmark(ctx context.Context, in *GradingBenchmark, opts ...grpc.CallOption) (*Void, error)
	DeleteBenchmark(ctx context.Context, in *GradingBenchmark, opts ...grpc.CallOption) (*Void, error)
	CreateCriterion(ctx context.Context, in *GradingCriterion, opts ...grpc.CallOption) (*GradingCriterion, error)
	UpdateCriterion(ctx context.Context, in *GradingCriterion, opts ...grpc.CallOption) (*Void, error)
	DeleteCriterion(ctx context.Context, in *GradingCriterion, opts ...grpc.CallOption) (*Void, error)
	CreateReview(ctx context.Context, in *ReviewRequest, opts ...grpc.CallOption) (*Review, error)
	UpdateReview(ctx context.Context, in *ReviewRequest, opts ...grpc.CallOption) (*Review, error)
	GetReviewers(ctx context.Context, in *SubmissionReviewersRequest, opts ...grpc.CallOption) (*Reviewers, error)
	GetProviders(ctx context.Context, in *Void, opts ...grpc.CallOption) (*Providers, error)
	GetOrganization(ctx context.Context, in *OrgRequest, opts ...grpc.CallOption) (*Organization, error)
	GetRepositories(ctx context.Context, in *URLRequest, opts ...grpc.CallOption) (*Repositories, error)
	IsEmptyRepo(ctx context.Context, in *RepositoryRequest, opts ...grpc.CallOption) (*Void, error)
}

AutograderServiceClient is the client API for AutograderService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type AutograderServiceServer

type AutograderServiceServer interface {
	GetUser(context.Context, *Void) (*User, error)
	GetUsers(context.Context, *Void) (*Users, error)
	GetUserByCourse(context.Context, *CourseUserRequest) (*User, error)
	UpdateUser(context.Context, *User) (*Void, error)
	IsAuthorizedTeacher(context.Context, *Void) (*AuthorizationResponse, error)
	GetGroup(context.Context, *GetGroupRequest) (*Group, error)
	GetGroupByUserAndCourse(context.Context, *GroupRequest) (*Group, error)
	GetGroupsByCourse(context.Context, *CourseRequest) (*Groups, error)
	CreateGroup(context.Context, *Group) (*Group, error)
	UpdateGroup(context.Context, *Group) (*Group, error)
	DeleteGroup(context.Context, *GroupRequest) (*Void, error)
	GetCourse(context.Context, *CourseRequest) (*Course, error)
	GetCourses(context.Context, *Void) (*Courses, error)
	GetCoursesByUser(context.Context, *EnrollmentStatusRequest) (*Courses, error)
	CreateCourse(context.Context, *Course) (*Course, error)
	UpdateCourse(context.Context, *Course) (*Void, error)
	UpdateCourseVisibility(context.Context, *Enrollment) (*Void, error)
	GetAssignments(context.Context, *CourseRequest) (*Assignments, error)
	UpdateAssignments(context.Context, *CourseRequest) (*Void, error)
	GetEnrollmentsByUser(context.Context, *EnrollmentStatusRequest) (*Enrollments, error)
	GetEnrollmentsByCourse(context.Context, *EnrollmentRequest) (*Enrollments, error)
	CreateEnrollment(context.Context, *Enrollment) (*Void, error)
	UpdateEnrollments(context.Context, *Enrollments) (*Void, error)
	// Get latest submissions for all course assignments for a user or a group.
	GetSubmissions(context.Context, *SubmissionRequest) (*Submissions, error)
	// Get lab submissions for every course user or every course group
	GetSubmissionsByCourse(context.Context, *SubmissionsForCourseRequest) (*CourseSubmissions, error)
	UpdateSubmission(context.Context, *UpdateSubmissionRequest) (*Void, error)
	UpdateSubmissions(context.Context, *UpdateSubmissionsRequest) (*Void, error)
	RebuildSubmissions(context.Context, *RebuildRequest) (*Void, error)
	CreateBenchmark(context.Context, *GradingBenchmark) (*GradingBenchmark, error)
	UpdateBenchmark(context.Context, *GradingBenchmark) (*Void, error)
	DeleteBenchmark(context.Context, *GradingBenchmark) (*Void, error)
	CreateCriterion(context.Context, *GradingCriterion) (*GradingCriterion, error)
	UpdateCriterion(context.Context, *GradingCriterion) (*Void, error)
	DeleteCriterion(context.Context, *GradingCriterion) (*Void, error)
	CreateReview(context.Context, *ReviewRequest) (*Review, error)
	UpdateReview(context.Context, *ReviewRequest) (*Review, error)
	GetReviewers(context.Context, *SubmissionReviewersRequest) (*Reviewers, error)
	GetProviders(context.Context, *Void) (*Providers, error)
	GetOrganization(context.Context, *OrgRequest) (*Organization, error)
	GetRepositories(context.Context, *URLRequest) (*Repositories, error)
	IsEmptyRepo(context.Context, *RepositoryRequest) (*Void, error)
	// contains filtered or unexported methods
}

AutograderServiceServer is the server API for AutograderService service. All implementations must embed UnimplementedAutograderServiceServer for forward compatibility

type Benchmarks

type Benchmarks struct {
	Benchmarks []*GradingBenchmark `protobuf:"bytes,1,rep,name=benchmarks,proto3" json:"benchmarks,omitempty"`
	// contains filtered or unexported fields
}

func (*Benchmarks) Descriptor deprecated

func (*Benchmarks) Descriptor() ([]byte, []int)

Deprecated: Use Benchmarks.ProtoReflect.Descriptor instead.

func (*Benchmarks) GetBenchmarks

func (x *Benchmarks) GetBenchmarks() []*GradingBenchmark

func (*Benchmarks) ProtoMessage

func (*Benchmarks) ProtoMessage()

func (*Benchmarks) ProtoReflect

func (x *Benchmarks) ProtoReflect() protoreflect.Message

func (*Benchmarks) Reset

func (x *Benchmarks) Reset()

func (*Benchmarks) String

func (x *Benchmarks) String() string

type Course

type Course struct {
	ID               uint64                `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CourseCreatorID  uint64                `protobuf:"varint,2,opt,name=courseCreatorID,proto3" json:"courseCreatorID,omitempty"`
	Name             string                `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Code             string                `protobuf:"bytes,4,opt,name=code,proto3" json:"code,omitempty" gorm:"uniqueIndex:idx_unique_course"`
	Year             uint32                `protobuf:"varint,5,opt,name=year,proto3" json:"year,omitempty" gorm:"uniqueIndex:idx_unique_course"`
	Tag              string                `protobuf:"bytes,6,opt,name=tag,proto3" json:"tag,omitempty"`
	Provider         string                `protobuf:"bytes,7,opt,name=provider,proto3" json:"provider,omitempty"`
	OrganizationID   uint64                `protobuf:"varint,8,opt,name=organizationID,proto3" json:"organizationID,omitempty"`
	OrganizationPath string                `protobuf:"bytes,9,opt,name=organizationPath,proto3" json:"organizationPath,omitempty"` // The organization's SCM name, e.g. uis-dat520-2020.
	SlipDays         uint32                `protobuf:"varint,10,opt,name=slipDays,proto3" json:"slipDays,omitempty"`
	Dockerfile       string                `protobuf:"bytes,11,opt,name=dockerfile,proto3" json:"dockerfile,omitempty"`
	Enrolled         Enrollment_UserStatus `protobuf:"varint,12,opt,name=enrolled,proto3,enum=ag.Enrollment_UserStatus" json:"enrolled,omitempty" gorm:"-"`
	Enrollments      []*Enrollment         `protobuf:"bytes,13,rep,name=enrollments,proto3" json:"enrollments,omitempty"`
	Assignments      []*Assignment         `protobuf:"bytes,14,rep,name=assignments,proto3" json:"assignments,omitempty"`
	Groups           []*Group              `protobuf:"bytes,15,rep,name=groups,proto3" json:"groups,omitempty"`
	// contains filtered or unexported fields
}

func (*Course) Descriptor deprecated

func (*Course) Descriptor() ([]byte, []int)

Deprecated: Use Course.ProtoReflect.Descriptor instead.

func (*Course) GetAccessToken

func (course *Course) GetAccessToken() string

GetAccessToken returns the access token for the course.

func (*Course) GetAssignments

func (x *Course) GetAssignments() []*Assignment

func (*Course) GetCode

func (x *Course) GetCode() string

func (*Course) GetCourseCreatorID

func (x *Course) GetCourseCreatorID() uint64

func (*Course) GetDockerfile

func (x *Course) GetDockerfile() string

func (*Course) GetEnrolled

func (x *Course) GetEnrolled() Enrollment_UserStatus

func (*Course) GetEnrollments

func (x *Course) GetEnrollments() []*Enrollment

func (*Course) GetGroups

func (x *Course) GetGroups() []*Group

func (*Course) GetID

func (x *Course) GetID() uint64

func (*Course) GetName

func (x *Course) GetName() string

func (*Course) GetOrganizationID

func (x *Course) GetOrganizationID() uint64

func (*Course) GetOrganizationPath

func (x *Course) GetOrganizationPath() string

func (*Course) GetProvider

func (x *Course) GetProvider() string

func (*Course) GetSlipDays

func (x *Course) GetSlipDays() uint32

func (*Course) GetTag

func (x *Course) GetTag() string

func (*Course) GetYear

func (x *Course) GetYear() uint32

func (*Course) IsValid

func (c *Course) IsValid() bool

IsValid checks required fields of a course request

func (*Course) ProtoMessage

func (*Course) ProtoMessage()

func (*Course) ProtoReflect

func (x *Course) ProtoReflect() protoreflect.Message

func (*Course) RemoveRemoteID

func (c *Course) RemoveRemoteID()

RemoveRemoteID removes remote identities for all course groups and enrollments

func (*Course) Reset

func (x *Course) Reset()

func (*Course) SetSlipDays

func (course *Course) SetSlipDays()

SetSlipDays sets number of remaining slip days for each course enrollment

func (*Course) String

func (x *Course) String() string

func (*Course) TeacherEnrollments

func (course *Course) TeacherEnrollments() []*Enrollment

type CourseRequest

type CourseRequest struct {
	CourseID uint64 `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	// contains filtered or unexported fields
}

func (*CourseRequest) Descriptor deprecated

func (*CourseRequest) Descriptor() ([]byte, []int)

Deprecated: Use CourseRequest.ProtoReflect.Descriptor instead.

func (*CourseRequest) GetCourseID

func (x *CourseRequest) GetCourseID() uint64

func (*CourseRequest) IsValid

func (req *CourseRequest) IsValid() bool

IsValid ensures that course ID is set

func (*CourseRequest) ProtoMessage

func (*CourseRequest) ProtoMessage()

func (*CourseRequest) ProtoReflect

func (x *CourseRequest) ProtoReflect() protoreflect.Message

func (*CourseRequest) Reset

func (x *CourseRequest) Reset()

func (*CourseRequest) String

func (x *CourseRequest) String() string

type CourseSubmissions

type CourseSubmissions struct {
	Course *Course           `protobuf:"bytes,1,opt,name=course,proto3" json:"course,omitempty"` // preloaded assignments
	Links  []*EnrollmentLink `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
	// contains filtered or unexported fields
}

func (*CourseSubmissions) Descriptor deprecated

func (*CourseSubmissions) Descriptor() ([]byte, []int)

Deprecated: Use CourseSubmissions.ProtoReflect.Descriptor instead.

func (*CourseSubmissions) GetCourse

func (x *CourseSubmissions) GetCourse() *Course
func (x *CourseSubmissions) GetLinks() []*EnrollmentLink

func (*CourseSubmissions) ProtoMessage

func (*CourseSubmissions) ProtoMessage()

func (*CourseSubmissions) ProtoReflect

func (x *CourseSubmissions) ProtoReflect() protoreflect.Message

func (*CourseSubmissions) RemoveRemoteID

func (l *CourseSubmissions) RemoveRemoteID()

RemoveRemoteID removes remote identities for all lab links

func (*CourseSubmissions) Reset

func (x *CourseSubmissions) Reset()

func (*CourseSubmissions) String

func (x *CourseSubmissions) String() string

type CourseUserRequest

type CourseUserRequest struct {
	CourseCode string `protobuf:"bytes,1,opt,name=courseCode,proto3" json:"courseCode,omitempty"`
	CourseYear uint32 `protobuf:"varint,2,opt,name=courseYear,proto3" json:"courseYear,omitempty"`
	UserLogin  string `protobuf:"bytes,3,opt,name=userLogin,proto3" json:"userLogin,omitempty"`
	// contains filtered or unexported fields
}

func (*CourseUserRequest) Descriptor deprecated

func (*CourseUserRequest) Descriptor() ([]byte, []int)

Deprecated: Use CourseUserRequest.ProtoReflect.Descriptor instead.

func (*CourseUserRequest) GetCourseCode

func (x *CourseUserRequest) GetCourseCode() string

func (*CourseUserRequest) GetCourseYear

func (x *CourseUserRequest) GetCourseYear() uint32

func (*CourseUserRequest) GetUserLogin

func (x *CourseUserRequest) GetUserLogin() string

func (*CourseUserRequest) IsValid

func (r *CourseUserRequest) IsValid() bool

IsValid ensures that course code, year, and student login are set

func (*CourseUserRequest) ProtoMessage

func (*CourseUserRequest) ProtoMessage()

func (*CourseUserRequest) ProtoReflect

func (x *CourseUserRequest) ProtoReflect() protoreflect.Message

func (*CourseUserRequest) Reset

func (x *CourseUserRequest) Reset()

func (*CourseUserRequest) String

func (x *CourseUserRequest) String() string

type Courses

type Courses struct {
	Courses []*Course `protobuf:"bytes,1,rep,name=courses,proto3" json:"courses,omitempty"`
	// contains filtered or unexported fields
}

func (*Courses) Descriptor deprecated

func (*Courses) Descriptor() ([]byte, []int)

Deprecated: Use Courses.ProtoReflect.Descriptor instead.

func (*Courses) GetCourses

func (x *Courses) GetCourses() []*Course

func (*Courses) ProtoMessage

func (*Courses) ProtoMessage()

func (*Courses) ProtoReflect

func (x *Courses) ProtoReflect() protoreflect.Message

func (*Courses) RemoveRemoteID

func (c *Courses) RemoveRemoteID()

RemoveRemoteID removes remote identities for groups and enrollments in every course

func (*Courses) Reset

func (x *Courses) Reset()

func (*Courses) String

func (x *Courses) String() string

type Enrollment

type Enrollment struct {
	ID                uint64                  `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CourseID          uint64                  `protobuf:"varint,2,opt,name=courseID,proto3" json:"courseID,omitempty" gorm:"uniqueIndex:idx_unique_enrollment"`
	UserID            uint64                  `protobuf:"varint,3,opt,name=userID,proto3" json:"userID,omitempty" gorm:"uniqueIndex:idx_unique_enrollment"`
	GroupID           uint64                  `protobuf:"varint,4,opt,name=groupID,proto3" json:"groupID,omitempty"`
	HasTeacherScopes  bool                    `protobuf:"varint,5,opt,name=hasTeacherScopes,proto3" json:"hasTeacherScopes,omitempty"`
	User              *User                   `protobuf:"bytes,6,opt,name=user,proto3" json:"user,omitempty"`
	Course            *Course                 `protobuf:"bytes,7,opt,name=course,proto3" json:"course,omitempty"`
	Group             *Group                  `protobuf:"bytes,8,opt,name=group,proto3" json:"group,omitempty"`
	Status            Enrollment_UserStatus   `protobuf:"varint,9,opt,name=status,proto3,enum=ag.Enrollment_UserStatus" json:"status,omitempty"`
	State             Enrollment_DisplayState `protobuf:"varint,10,opt,name=state,proto3,enum=ag.Enrollment_DisplayState" json:"state,omitempty"`
	SlipDaysRemaining uint32                  `protobuf:"varint,11,opt,name=slipDaysRemaining,proto3" json:"slipDaysRemaining,omitempty" gorm:"-"`
	LastActivityDate  string                  `protobuf:"bytes,12,opt,name=lastActivityDate,proto3" json:"lastActivityDate,omitempty"`
	TotalApproved     uint64                  `protobuf:"varint,13,opt,name=totalApproved,proto3" json:"totalApproved,omitempty"`
	UsedSlipDays      []*UsedSlipDays         `protobuf:"bytes,14,rep,name=usedSlipDays,proto3" json:"usedSlipDays,omitempty"`
	// contains filtered or unexported fields
}

func (*Enrollment) Descriptor deprecated

func (*Enrollment) Descriptor() ([]byte, []int)

Deprecated: Use Enrollment.ProtoReflect.Descriptor instead.

func (*Enrollment) GetCourse

func (x *Enrollment) GetCourse() *Course

func (*Enrollment) GetCourseID

func (x *Enrollment) GetCourseID() uint64

func (*Enrollment) GetGroup

func (x *Enrollment) GetGroup() *Group

func (*Enrollment) GetGroupID

func (x *Enrollment) GetGroupID() uint64

func (*Enrollment) GetHasTeacherScopes

func (x *Enrollment) GetHasTeacherScopes() bool

func (*Enrollment) GetID

func (x *Enrollment) GetID() uint64

func (*Enrollment) GetLastActivityDate

func (x *Enrollment) GetLastActivityDate() string

func (*Enrollment) GetSlipDaysRemaining

func (x *Enrollment) GetSlipDaysRemaining() uint32

func (*Enrollment) GetState

func (x *Enrollment) GetState() Enrollment_DisplayState

func (*Enrollment) GetStatus

func (x *Enrollment) GetStatus() Enrollment_UserStatus

func (*Enrollment) GetTotalApproved

func (x *Enrollment) GetTotalApproved() uint64

func (*Enrollment) GetUsedSlipDays

func (x *Enrollment) GetUsedSlipDays() []*UsedSlipDays

func (*Enrollment) GetUser

func (x *Enrollment) GetUser() *User

func (*Enrollment) GetUserID

func (x *Enrollment) GetUserID() uint64

func (*Enrollment) IsNone

func (m *Enrollment) IsNone() bool

func (*Enrollment) IsPending

func (m *Enrollment) IsPending() bool

func (*Enrollment) IsStudent

func (m *Enrollment) IsStudent() bool

func (*Enrollment) IsTeacher

func (m *Enrollment) IsTeacher() bool

func (*Enrollment) IsValid

func (req *Enrollment) IsValid() bool

IsValid checks required fields of an enrollment request.

func (*Enrollment) ProtoMessage

func (*Enrollment) ProtoMessage()

func (*Enrollment) ProtoReflect

func (x *Enrollment) ProtoReflect() protoreflect.Message

func (*Enrollment) RemainingSlipDays

func (m *Enrollment) RemainingSlipDays(c *Course) int32

RemainingSlipDays returns the remaining number of slip days for this user/course enrollment. Note that if the returned amount is negative, the user has used up all slip days.

func (*Enrollment) RemoveRemoteID

func (e *Enrollment) RemoveRemoteID()

RemoveRemoteID removes remote identity of the enrolled user

func (*Enrollment) Reset

func (x *Enrollment) Reset()

func (*Enrollment) SetSlipDays

func (m *Enrollment) SetSlipDays(c *Course)

SetSlipDays updates SlipDaysRemaining field of an enrollment.

func (*Enrollment) String

func (x *Enrollment) String() string

func (*Enrollment) UpdateSlipDays

func (m *Enrollment) UpdateSlipDays(start time.Time, assignment *Assignment, submission *Submission) error

UpdateSlipDays updates the number of slipdays for the given assignment/submission.

type EnrollmentLink struct {
	Enrollment  *Enrollment       `protobuf:"bytes,2,opt,name=enrollment,proto3" json:"enrollment,omitempty"` // must have course and user/group preloaded
	Submissions []*SubmissionLink `protobuf:"bytes,3,rep,name=submissions,proto3" json:"submissions,omitempty"`
	// contains filtered or unexported fields
}

func (*EnrollmentLink) Descriptor deprecated

func (*EnrollmentLink) Descriptor() ([]byte, []int)

Deprecated: Use EnrollmentLink.ProtoReflect.Descriptor instead.

func (*EnrollmentLink) GetEnrollment

func (x *EnrollmentLink) GetEnrollment() *Enrollment

func (*EnrollmentLink) GetSubmissions

func (x *EnrollmentLink) GetSubmissions() []*SubmissionLink

func (*EnrollmentLink) ProtoMessage

func (*EnrollmentLink) ProtoMessage()

func (*EnrollmentLink) ProtoReflect

func (x *EnrollmentLink) ProtoReflect() protoreflect.Message

func (*EnrollmentLink) RemoveRemoteID

func (l *EnrollmentLink) RemoveRemoteID()

RemoveRemoteID removes remote identities for enrollment in lab link

func (*EnrollmentLink) Reset

func (x *EnrollmentLink) Reset()

func (*EnrollmentLink) String

func (x *EnrollmentLink) String() string

type EnrollmentRequest

type EnrollmentRequest struct {
	CourseID           uint64                  `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	IgnoreGroupMembers bool                    `protobuf:"varint,2,opt,name=ignoreGroupMembers,proto3" json:"ignoreGroupMembers,omitempty"`
	WithActivity       bool                    `protobuf:"varint,3,opt,name=withActivity,proto3" json:"withActivity,omitempty"`
	Statuses           []Enrollment_UserStatus `protobuf:"varint,4,rep,packed,name=statuses,proto3,enum=ag.Enrollment_UserStatus" json:"statuses,omitempty"`
	// contains filtered or unexported fields
}

EnrollmentRequest is a request for enrolled users of a given course, whose enrollment status match those provided in the request. To ignore group members that otherwise match the enrollment request, set ignoreGroupMembers to true.

func (*EnrollmentRequest) Descriptor deprecated

func (*EnrollmentRequest) Descriptor() ([]byte, []int)

Deprecated: Use EnrollmentRequest.ProtoReflect.Descriptor instead.

func (*EnrollmentRequest) GetCourseID

func (x *EnrollmentRequest) GetCourseID() uint64

func (*EnrollmentRequest) GetIgnoreGroupMembers

func (x *EnrollmentRequest) GetIgnoreGroupMembers() bool

func (*EnrollmentRequest) GetStatuses

func (x *EnrollmentRequest) GetStatuses() []Enrollment_UserStatus

func (*EnrollmentRequest) GetWithActivity

func (x *EnrollmentRequest) GetWithActivity() bool

func (*EnrollmentRequest) IsValid

func (req *EnrollmentRequest) IsValid() bool

IsValid checks that course ID is positive.

func (*EnrollmentRequest) ProtoMessage

func (*EnrollmentRequest) ProtoMessage()

func (*EnrollmentRequest) ProtoReflect

func (x *EnrollmentRequest) ProtoReflect() protoreflect.Message

func (*EnrollmentRequest) Reset

func (x *EnrollmentRequest) Reset()

func (*EnrollmentRequest) String

func (x *EnrollmentRequest) String() string

type EnrollmentStatusRequest

type EnrollmentStatusRequest struct {
	UserID   uint64                  `protobuf:"varint,1,opt,name=userID,proto3" json:"userID,omitempty"`
	Statuses []Enrollment_UserStatus `protobuf:"varint,2,rep,packed,name=statuses,proto3,enum=ag.Enrollment_UserStatus" json:"statuses,omitempty"`
	// contains filtered or unexported fields
}

EnrollmentStatusRequest is a request for a given user, with a specific enrollment status.

func (*EnrollmentStatusRequest) Descriptor deprecated

func (*EnrollmentStatusRequest) Descriptor() ([]byte, []int)

Deprecated: Use EnrollmentStatusRequest.ProtoReflect.Descriptor instead.

func (*EnrollmentStatusRequest) GetStatuses

func (*EnrollmentStatusRequest) GetUserID

func (x *EnrollmentStatusRequest) GetUserID() uint64

func (*EnrollmentStatusRequest) IsValid

func (req *EnrollmentStatusRequest) IsValid() bool

IsValid ensures that user ID is set

func (*EnrollmentStatusRequest) ProtoMessage

func (*EnrollmentStatusRequest) ProtoMessage()

func (*EnrollmentStatusRequest) ProtoReflect

func (x *EnrollmentStatusRequest) ProtoReflect() protoreflect.Message

func (*EnrollmentStatusRequest) Reset

func (x *EnrollmentStatusRequest) Reset()

func (*EnrollmentStatusRequest) String

func (x *EnrollmentStatusRequest) String() string

type Enrollment_DisplayState

type Enrollment_DisplayState int32
const (
	Enrollment_UNSET    Enrollment_DisplayState = 0
	Enrollment_HIDDEN   Enrollment_DisplayState = 1
	Enrollment_VISIBLE  Enrollment_DisplayState = 2
	Enrollment_FAVORITE Enrollment_DisplayState = 3
)

func (Enrollment_DisplayState) Descriptor

func (Enrollment_DisplayState) Enum

func (Enrollment_DisplayState) EnumDescriptor deprecated

func (Enrollment_DisplayState) EnumDescriptor() ([]byte, []int)

Deprecated: Use Enrollment_DisplayState.Descriptor instead.

func (Enrollment_DisplayState) Number

func (Enrollment_DisplayState) String

func (x Enrollment_DisplayState) String() string

func (Enrollment_DisplayState) Type

type Enrollment_UserStatus

type Enrollment_UserStatus int32
const (
	Enrollment_NONE    Enrollment_UserStatus = 0
	Enrollment_PENDING Enrollment_UserStatus = 1
	Enrollment_STUDENT Enrollment_UserStatus = 2
	Enrollment_TEACHER Enrollment_UserStatus = 3
)

func (Enrollment_UserStatus) Descriptor

func (Enrollment_UserStatus) Enum

func (Enrollment_UserStatus) EnumDescriptor deprecated

func (Enrollment_UserStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use Enrollment_UserStatus.Descriptor instead.

func (Enrollment_UserStatus) Number

func (Enrollment_UserStatus) String

func (x Enrollment_UserStatus) String() string

func (Enrollment_UserStatus) Type

type Enrollments

type Enrollments struct {
	Enrollments []*Enrollment `protobuf:"bytes,1,rep,name=enrollments,proto3" json:"enrollments,omitempty"`
	// contains filtered or unexported fields
}

func (*Enrollments) Descriptor deprecated

func (*Enrollments) Descriptor() ([]byte, []int)

Deprecated: Use Enrollments.ProtoReflect.Descriptor instead.

func (*Enrollments) GetCourseID

func (m *Enrollments) GetCourseID() uint64

GetCourseID returns the course ID for a slice of enrollments

func (*Enrollments) GetEnrollments

func (x *Enrollments) GetEnrollments() []*Enrollment

func (*Enrollments) HasCourseID

func (m *Enrollments) HasCourseID() bool

HasCourseID checks all enrollments have the same Course ID

func (*Enrollments) IsValid

func (m *Enrollments) IsValid() bool

func (*Enrollments) ProtoMessage

func (*Enrollments) ProtoMessage()

func (*Enrollments) ProtoReflect

func (x *Enrollments) ProtoReflect() protoreflect.Message

func (*Enrollments) RemoveRemoteID

func (e *Enrollments) RemoveRemoteID()

RemoveRemoteID removes remote identities for every enrollment

func (*Enrollments) Reset

func (x *Enrollments) Reset()

func (*Enrollments) String

func (x *Enrollments) String() string

type GetGroupRequest

type GetGroupRequest struct {
	GroupID uint64 `protobuf:"varint,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	// contains filtered or unexported fields
}

func (*GetGroupRequest) Descriptor deprecated

func (*GetGroupRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetGroupRequest.ProtoReflect.Descriptor instead.

func (*GetGroupRequest) GetGroupID

func (x *GetGroupRequest) GetGroupID() uint64

func (*GetGroupRequest) IsValid

func (req *GetGroupRequest) IsValid() bool

IsValid ensures that group ID is provided

func (*GetGroupRequest) ProtoMessage

func (*GetGroupRequest) ProtoMessage()

func (*GetGroupRequest) ProtoReflect

func (x *GetGroupRequest) ProtoReflect() protoreflect.Message

func (*GetGroupRequest) Reset

func (x *GetGroupRequest) Reset()

func (*GetGroupRequest) String

func (x *GetGroupRequest) String() string

type GradingBenchmark

type GradingBenchmark struct {
	ID           uint64              `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	AssignmentID uint64              `protobuf:"varint,2,opt,name=AssignmentID,proto3" json:"AssignmentID,omitempty"` // foreign key
	ReviewID     uint64              `protobuf:"varint,3,opt,name=ReviewID,proto3" json:"ReviewID,omitempty"`         // foreign key
	Heading      string              `protobuf:"bytes,4,opt,name=heading,proto3" json:"heading,omitempty"`
	Comment      string              `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment,omitempty"`
	Criteria     []*GradingCriterion `protobuf:"bytes,6,rep,name=criteria,proto3" json:"criteria,omitempty" gorm:"foreignKey:BenchmarkID"`
	// contains filtered or unexported fields
}

func (*GradingBenchmark) Descriptor deprecated

func (*GradingBenchmark) Descriptor() ([]byte, []int)

Deprecated: Use GradingBenchmark.ProtoReflect.Descriptor instead.

func (*GradingBenchmark) GetAssignmentID

func (x *GradingBenchmark) GetAssignmentID() uint64

func (*GradingBenchmark) GetComment

func (x *GradingBenchmark) GetComment() string

func (*GradingBenchmark) GetCriteria

func (x *GradingBenchmark) GetCriteria() []*GradingCriterion

func (*GradingBenchmark) GetHeading

func (x *GradingBenchmark) GetHeading() string

func (*GradingBenchmark) GetID

func (x *GradingBenchmark) GetID() uint64

func (*GradingBenchmark) GetReviewID

func (x *GradingBenchmark) GetReviewID() uint64

func (*GradingBenchmark) IsValid

func (bm *GradingBenchmark) IsValid() bool

IsValid ensures that a grading benchmark always belongs to an assignment and is not empty.

func (*GradingBenchmark) ProtoMessage

func (*GradingBenchmark) ProtoMessage()

func (*GradingBenchmark) ProtoReflect

func (x *GradingBenchmark) ProtoReflect() protoreflect.Message

func (*GradingBenchmark) Reset

func (x *GradingBenchmark) Reset()

func (*GradingBenchmark) String

func (x *GradingBenchmark) String() string

type GradingCriterion

type GradingCriterion struct {
	ID          uint64                 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	BenchmarkID uint64                 `protobuf:"varint,2,opt,name=BenchmarkID,proto3" json:"BenchmarkID,omitempty"` // foreign key
	Points      uint64                 `protobuf:"varint,3,opt,name=points,proto3" json:"points,omitempty"`
	Description string                 `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	Grade       GradingCriterion_Grade `protobuf:"varint,5,opt,name=grade,proto3,enum=ag.GradingCriterion_Grade" json:"grade,omitempty"`
	Comment     string                 `protobuf:"bytes,6,opt,name=comment,proto3" json:"comment,omitempty"`
	// contains filtered or unexported fields
}

func (*GradingCriterion) Descriptor deprecated

func (*GradingCriterion) Descriptor() ([]byte, []int)

Deprecated: Use GradingCriterion.ProtoReflect.Descriptor instead.

func (*GradingCriterion) GetBenchmarkID

func (x *GradingCriterion) GetBenchmarkID() uint64

func (*GradingCriterion) GetComment

func (x *GradingCriterion) GetComment() string

func (*GradingCriterion) GetDescription

func (x *GradingCriterion) GetDescription() string

func (*GradingCriterion) GetGrade

func (*GradingCriterion) GetID

func (x *GradingCriterion) GetID() uint64

func (*GradingCriterion) GetPoints

func (x *GradingCriterion) GetPoints() uint64

func (*GradingCriterion) IsValid

func (c *GradingCriterion) IsValid() bool

IsValid ensures that a criterion always belongs to a grading benchmark and is not empty.

func (*GradingCriterion) ProtoMessage

func (*GradingCriterion) ProtoMessage()

func (*GradingCriterion) ProtoReflect

func (x *GradingCriterion) ProtoReflect() protoreflect.Message

func (*GradingCriterion) Reset

func (x *GradingCriterion) Reset()

func (*GradingCriterion) String

func (x *GradingCriterion) String() string

type GradingCriterion_Grade

type GradingCriterion_Grade int32
const (
	GradingCriterion_NONE   GradingCriterion_Grade = 0
	GradingCriterion_FAILED GradingCriterion_Grade = 1
	GradingCriterion_PASSED GradingCriterion_Grade = 2
)

func (GradingCriterion_Grade) Descriptor

func (GradingCriterion_Grade) Enum

func (GradingCriterion_Grade) EnumDescriptor deprecated

func (GradingCriterion_Grade) EnumDescriptor() ([]byte, []int)

Deprecated: Use GradingCriterion_Grade.Descriptor instead.

func (GradingCriterion_Grade) Number

func (GradingCriterion_Grade) String

func (x GradingCriterion_Grade) String() string

func (GradingCriterion_Grade) Type

type Group

type Group struct {
	ID          uint64            `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name        string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty" gorm:"uniqueIndex:idx_unique_group_name"`
	CourseID    uint64            `protobuf:"varint,3,opt,name=courseID,proto3" json:"courseID,omitempty" gorm:"uniqueIndex:idx_unique_group_name"`
	TeamID      uint64            `protobuf:"varint,4,opt,name=teamID,proto3" json:"teamID,omitempty"`
	Status      Group_GroupStatus `protobuf:"varint,5,opt,name=status,proto3,enum=ag.Group_GroupStatus" json:"status,omitempty"`
	Users       []*User           `protobuf:"bytes,6,rep,name=users,proto3" json:"users,omitempty" gorm:"many2many:group_users;"`
	Enrollments []*Enrollment     `protobuf:"bytes,7,rep,name=enrollments,proto3" json:"enrollments,omitempty"`
	// contains filtered or unexported fields
}

func (*Group) Contains

func (g *Group) Contains(user *User) bool

Contains returns true if the given user is in the group.

func (*Group) ContainsAll

func (g *Group) ContainsAll(group *Group) bool

ContainsAll compares group members

func (*Group) Descriptor deprecated

func (*Group) Descriptor() ([]byte, []int)

Deprecated: Use Group.ProtoReflect.Descriptor instead.

func (*Group) GetCourseID

func (x *Group) GetCourseID() uint64

func (*Group) GetEnrollments

func (x *Group) GetEnrollments() []*Enrollment

func (*Group) GetID

func (x *Group) GetID() uint64

func (*Group) GetName

func (x *Group) GetName() string

func (*Group) GetStatus

func (x *Group) GetStatus() Group_GroupStatus

func (*Group) GetTeamID

func (x *Group) GetTeamID() uint64

func (*Group) GetUsers

func (x *Group) GetUsers() []*User

func (*Group) GetUsersExcept

func (g *Group) GetUsersExcept(userID uint64) []*User

GetUsersExcept returns a list of all users in a group, except the one with the given userID.

func (*Group) IsValid

func (grp *Group) IsValid() bool

IsValid checks required fields of a group request

func (*Group) ProtoMessage

func (*Group) ProtoMessage()

func (*Group) ProtoReflect

func (x *Group) ProtoReflect() protoreflect.Message

func (*Group) RemoveRemoteID

func (g *Group) RemoveRemoteID()

RemoveRemoteID nullifies remote identities of all users in a group

func (*Group) Reset

func (x *Group) Reset()

func (*Group) SetSlipDays

func (g *Group) SetSlipDays(c *Course)

SetSlipDays sets number of remaining slip days for each enrollment

func (*Group) String

func (x *Group) String() string

func (*Group) UserNames

func (g *Group) UserNames() []string

UserNames returns the SCM user names of the group.

type GroupRequest

type GroupRequest struct {
	UserID   uint64 `protobuf:"varint,1,opt,name=userID,proto3" json:"userID,omitempty"`
	GroupID  uint64 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"`
	CourseID uint64 `protobuf:"varint,3,opt,name=courseID,proto3" json:"courseID,omitempty"`
	// contains filtered or unexported fields
}

func (*GroupRequest) Descriptor deprecated

func (*GroupRequest) Descriptor() ([]byte, []int)

Deprecated: Use GroupRequest.ProtoReflect.Descriptor instead.

func (*GroupRequest) GetCourseID

func (x *GroupRequest) GetCourseID() uint64

func (*GroupRequest) GetGroupID

func (x *GroupRequest) GetGroupID() uint64

func (*GroupRequest) GetUserID

func (x *GroupRequest) GetUserID() uint64

func (*GroupRequest) IsValid

func (req *GroupRequest) IsValid() bool

IsValid ensures that course ID and group or user IDs are set

func (*GroupRequest) ProtoMessage

func (*GroupRequest) ProtoMessage()

func (*GroupRequest) ProtoReflect

func (x *GroupRequest) ProtoReflect() protoreflect.Message

func (*GroupRequest) Reset

func (x *GroupRequest) Reset()

func (*GroupRequest) String

func (x *GroupRequest) String() string

type Group_GroupStatus

type Group_GroupStatus int32
const (
	Group_PENDING  Group_GroupStatus = 0
	Group_APPROVED Group_GroupStatus = 1
)

func (Group_GroupStatus) Descriptor

func (Group_GroupStatus) Enum

func (Group_GroupStatus) EnumDescriptor deprecated

func (Group_GroupStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use Group_GroupStatus.Descriptor instead.

func (Group_GroupStatus) Number

func (Group_GroupStatus) String

func (x Group_GroupStatus) String() string

func (Group_GroupStatus) Type

type Groups

type Groups struct {
	Groups []*Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
	// contains filtered or unexported fields
}

func (*Groups) Descriptor deprecated

func (*Groups) Descriptor() ([]byte, []int)

Deprecated: Use Groups.ProtoReflect.Descriptor instead.

func (*Groups) GetGroups

func (x *Groups) GetGroups() []*Group

func (*Groups) ProtoMessage

func (*Groups) ProtoMessage()

func (*Groups) ProtoReflect

func (x *Groups) ProtoReflect() protoreflect.Message

func (*Groups) RemoveRemoteID

func (g *Groups) RemoveRemoteID()

RemoveRemoteID nullifies remote identities of all users in every group

func (*Groups) Reset

func (x *Groups) Reset()

func (*Groups) String

func (x *Groups) String() string

type Issue

type Issue struct {
	ID           uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	RepositoryID uint64 `protobuf:"varint,2,opt,name=repositoryID,proto3" json:"repositoryID,omitempty"` // Represents the internal ID of a repository
	TaskID       uint64 `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`             // Task that this issue draws its content from
	IssueNumber  uint64 `protobuf:"varint,4,opt,name=issueNumber,proto3" json:"issueNumber,omitempty"`   // Issue number on scm. Needed for associating db issue with scm issue
	// contains filtered or unexported fields
}

func (*Issue) Descriptor deprecated

func (*Issue) Descriptor() ([]byte, []int)

Deprecated: Use Issue.ProtoReflect.Descriptor instead.

func (*Issue) GetID

func (x *Issue) GetID() uint64

func (*Issue) GetIssueNumber

func (x *Issue) GetIssueNumber() uint64

func (*Issue) GetRepositoryID

func (x *Issue) GetRepositoryID() uint64

func (*Issue) GetTaskID

func (x *Issue) GetTaskID() uint64

func (*Issue) ProtoMessage

func (*Issue) ProtoMessage()

func (*Issue) ProtoReflect

func (x *Issue) ProtoReflect() protoreflect.Message

func (*Issue) Reset

func (x *Issue) Reset()

func (*Issue) String

func (x *Issue) String() string

type OrgRequest

type OrgRequest struct {
	OrgName string `protobuf:"bytes,1,opt,name=orgName,proto3" json:"orgName,omitempty"`
	// contains filtered or unexported fields
}

func (*OrgRequest) Descriptor deprecated

func (*OrgRequest) Descriptor() ([]byte, []int)

Deprecated: Use OrgRequest.ProtoReflect.Descriptor instead.

func (*OrgRequest) GetOrgName

func (x *OrgRequest) GetOrgName() string

func (*OrgRequest) IsValid

func (req *OrgRequest) IsValid() bool

IsValid checks whether OrgRequest fields are valid

func (*OrgRequest) ProtoMessage

func (*OrgRequest) ProtoMessage()

func (*OrgRequest) ProtoReflect

func (x *OrgRequest) ProtoReflect() protoreflect.Message

func (*OrgRequest) Reset

func (x *OrgRequest) Reset()

func (*OrgRequest) String

func (x *OrgRequest) String() string

type Organization

type Organization struct {
	ID          uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Path        string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	Avatar      string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar,omitempty"`
	PaymentPlan string `protobuf:"bytes,4,opt,name=paymentPlan,proto3" json:"paymentPlan,omitempty"`
	// contains filtered or unexported fields
}

func (*Organization) Descriptor deprecated

func (*Organization) Descriptor() ([]byte, []int)

Deprecated: Use Organization.ProtoReflect.Descriptor instead.

func (*Organization) GetAvatar

func (x *Organization) GetAvatar() string

func (*Organization) GetID

func (x *Organization) GetID() uint64

func (*Organization) GetPath

func (x *Organization) GetPath() string

func (*Organization) GetPaymentPlan

func (x *Organization) GetPaymentPlan() string

func (*Organization) IsValid

func (org *Organization) IsValid() bool

IsValid checks that either ID or path field is set

func (*Organization) ProtoMessage

func (*Organization) ProtoMessage()

func (*Organization) ProtoReflect

func (x *Organization) ProtoReflect() protoreflect.Message

func (*Organization) Reset

func (x *Organization) Reset()

func (*Organization) String

func (x *Organization) String() string

type Organizations

type Organizations struct {
	Organizations []*Organization `protobuf:"bytes,1,rep,name=organizations,proto3" json:"organizations,omitempty"`
	// contains filtered or unexported fields
}

func (*Organizations) Descriptor deprecated

func (*Organizations) Descriptor() ([]byte, []int)

Deprecated: Use Organizations.ProtoReflect.Descriptor instead.

func (*Organizations) GetOrganizations

func (x *Organizations) GetOrganizations() []*Organization

func (*Organizations) ProtoMessage

func (*Organizations) ProtoMessage()

func (*Organizations) ProtoReflect

func (x *Organizations) ProtoReflect() protoreflect.Message

func (*Organizations) Reset

func (x *Organizations) Reset()

func (*Organizations) String

func (x *Organizations) String() string

type Provider

type Provider struct {
	Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	// contains filtered or unexported fields
}

func (*Provider) Descriptor deprecated

func (*Provider) Descriptor() ([]byte, []int)

Deprecated: Use Provider.ProtoReflect.Descriptor instead.

func (*Provider) GetProvider

func (x *Provider) GetProvider() string

func (*Provider) IsValid

func (req *Provider) IsValid() bool

IsValid ensures that provider string is one of implemented providers

func (*Provider) ProtoMessage

func (*Provider) ProtoMessage()

func (*Provider) ProtoReflect

func (x *Provider) ProtoReflect() protoreflect.Message

func (*Provider) Reset

func (x *Provider) Reset()

func (*Provider) String

func (x *Provider) String() string

type Providers

type Providers struct {
	Providers []string `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"`
	// contains filtered or unexported fields
}

func (*Providers) Descriptor deprecated

func (*Providers) Descriptor() ([]byte, []int)

Deprecated: Use Providers.ProtoReflect.Descriptor instead.

func (*Providers) GetProviders

func (x *Providers) GetProviders() []string

func (*Providers) IsValidProvider

func (l *Providers) IsValidProvider(provider string) bool

IsValidProvider validates provider string coming from front end

func (*Providers) ProtoMessage

func (*Providers) ProtoMessage()

func (*Providers) ProtoReflect

func (x *Providers) ProtoReflect() protoreflect.Message

func (*Providers) Reset

func (x *Providers) Reset()

func (*Providers) String

func (x *Providers) String() string

type PullRequest

type PullRequest struct {
	ID              uint64            `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	ScmRepositoryID uint64            `protobuf:"varint,2,opt,name=scmRepositoryID,proto3" json:"scmRepositoryID,omitempty"` // Represents the scm repository ID
	TaskID          uint64            `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`                   // Foreign key
	IssueID         uint64            `protobuf:"varint,4,opt,name=issueID,proto3" json:"issueID,omitempty"`                 // Foreign key
	UserID          uint64            `protobuf:"varint,5,opt,name=userID,proto3" json:"userID,omitempty"`                   // The user who owns this PR
	ScmCommentID    uint64            `protobuf:"varint,6,opt,name=scmCommentID,proto3" json:"scmCommentID,omitempty"`       // Scm ID of the comment used for automatic feedback
	SourceBranch    string            `protobuf:"bytes,7,opt,name=sourceBranch,proto3" json:"sourceBranch,omitempty"`        // The source branch for this pull request
	Number          uint64            `protobuf:"varint,8,opt,name=number,proto3" json:"number,omitempty"`                   // Pull request number
	Stage           PullRequest_Stage `protobuf:"varint,9,opt,name=stage,proto3,enum=ag.PullRequest_Stage" json:"stage,omitempty"`
	// contains filtered or unexported fields
}

func (*PullRequest) Descriptor deprecated

func (*PullRequest) Descriptor() ([]byte, []int)

Deprecated: Use PullRequest.ProtoReflect.Descriptor instead.

func (*PullRequest) GetID

func (x *PullRequest) GetID() uint64

func (*PullRequest) GetIssueID

func (x *PullRequest) GetIssueID() uint64

func (*PullRequest) GetNumber

func (x *PullRequest) GetNumber() uint64

func (*PullRequest) GetScmCommentID

func (x *PullRequest) GetScmCommentID() uint64

func (*PullRequest) GetScmRepositoryID

func (x *PullRequest) GetScmRepositoryID() uint64

func (*PullRequest) GetSourceBranch

func (x *PullRequest) GetSourceBranch() string

func (*PullRequest) GetStage

func (x *PullRequest) GetStage() PullRequest_Stage

func (*PullRequest) GetTaskID

func (x *PullRequest) GetTaskID() uint64

func (*PullRequest) GetUserID

func (x *PullRequest) GetUserID() uint64

func (*PullRequest) HasFeedbackComment

func (pr *PullRequest) HasFeedbackComment() bool

HasFeedbackComment returns true if the pull request has a comment associated with it.

func (*PullRequest) HasReviewers

func (pr *PullRequest) HasReviewers() bool

HasReviewers returns true if a pull request is in the approved or review stage. This implies that it should have had reviewers assigned to it.

func (*PullRequest) IsApproved

func (pr *PullRequest) IsApproved() bool

IsApproved returns true if a pull request is at the approved stage.

func (*PullRequest) ProtoMessage

func (*PullRequest) ProtoMessage()

func (*PullRequest) ProtoReflect

func (x *PullRequest) ProtoReflect() protoreflect.Message

func (*PullRequest) Reset

func (x *PullRequest) Reset()

func (*PullRequest) SetApproved

func (pr *PullRequest) SetApproved()

func (*PullRequest) SetDraft

func (pr *PullRequest) SetDraft()

func (*PullRequest) SetReview

func (pr *PullRequest) SetReview()

func (*PullRequest) String

func (x *PullRequest) String() string

func (*PullRequest) Valid

func (pr *PullRequest) Valid() bool

Checks if a pull request is valid for creation.

type PullRequest_Stage

type PullRequest_Stage int32
const (
	PullRequest_NONE     PullRequest_Stage = 0
	PullRequest_DRAFT    PullRequest_Stage = 1
	PullRequest_REVIEW   PullRequest_Stage = 2
	PullRequest_APPROVED PullRequest_Stage = 3
)

func (PullRequest_Stage) Descriptor

func (PullRequest_Stage) Enum

func (PullRequest_Stage) EnumDescriptor deprecated

func (PullRequest_Stage) EnumDescriptor() ([]byte, []int)

Deprecated: Use PullRequest_Stage.Descriptor instead.

func (PullRequest_Stage) Number

func (PullRequest_Stage) String

func (x PullRequest_Stage) String() string

func (PullRequest_Stage) Type

type RebuildRequest

type RebuildRequest struct {

	// Types that are assignable to RebuildType:
	//	*RebuildRequest_SubmissionID
	//	*RebuildRequest_CourseID
	RebuildType  isRebuildRequest_RebuildType `protobuf_oneof:"rebuildType"`
	AssignmentID uint64                       `protobuf:"varint,3,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"`
	// contains filtered or unexported fields
}

func (*RebuildRequest) Descriptor deprecated

func (*RebuildRequest) Descriptor() ([]byte, []int)

Deprecated: Use RebuildRequest.ProtoReflect.Descriptor instead.

func (*RebuildRequest) GetAssignmentID

func (x *RebuildRequest) GetAssignmentID() uint64

func (*RebuildRequest) GetCourseID

func (x *RebuildRequest) GetCourseID() uint64

func (*RebuildRequest) GetRebuildType

func (m *RebuildRequest) GetRebuildType() isRebuildRequest_RebuildType

func (*RebuildRequest) GetSubmissionID

func (x *RebuildRequest) GetSubmissionID() uint64

func (*RebuildRequest) IsValid

func (req *RebuildRequest) IsValid() bool

IsValid ensures that both course and submission IDs are set

func (*RebuildRequest) ProtoMessage

func (*RebuildRequest) ProtoMessage()

func (*RebuildRequest) ProtoReflect

func (x *RebuildRequest) ProtoReflect() protoreflect.Message

func (*RebuildRequest) Reset

func (x *RebuildRequest) Reset()

func (*RebuildRequest) SetCourseID

func (r *RebuildRequest) SetCourseID(id uint64)

SetCourseID sets the course ID to be rebuilt. Setting the course ID will clear the SubmissionID field.

func (*RebuildRequest) SetSubmissionID

func (r *RebuildRequest) SetSubmissionID(id uint64)

SetSubmissionID sets the submission ID to be rebuilt. Setting the submission ID will clear the CourseID field.

func (*RebuildRequest) String

func (x *RebuildRequest) String() string

type RebuildRequest_CourseID

type RebuildRequest_CourseID struct {
	CourseID uint64 `protobuf:"varint,2,opt,name=courseID,proto3,oneof"`
}

type RebuildRequest_SubmissionID

type RebuildRequest_SubmissionID struct {
	SubmissionID uint64 `protobuf:"varint,1,opt,name=submissionID,proto3,oneof"`
}

type RemoteIdentity

type RemoteIdentity struct {
	ID          uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Provider    string `protobuf:"bytes,2,opt,name=provider,proto3" json:"provider,omitempty" gorm:"uniqueIndex:uid_provider_remote_id"`
	RemoteID    uint64 `protobuf:"varint,3,opt,name=remoteID,proto3" json:"remoteID,omitempty" gorm:"uniqueIndex:uid_provider_remote_id"`
	AccessToken string `protobuf:"bytes,4,opt,name=accessToken,proto3" json:"accessToken,omitempty"`
	UserID      uint64 `protobuf:"varint,5,opt,name=userID,proto3" json:"userID,omitempty"`
	// contains filtered or unexported fields
}

func (*RemoteIdentity) Descriptor deprecated

func (*RemoteIdentity) Descriptor() ([]byte, []int)

Deprecated: Use RemoteIdentity.ProtoReflect.Descriptor instead.

func (*RemoteIdentity) GetAccessToken

func (x *RemoteIdentity) GetAccessToken() string

func (*RemoteIdentity) GetID

func (x *RemoteIdentity) GetID() uint64

func (*RemoteIdentity) GetProvider

func (x *RemoteIdentity) GetProvider() string

func (*RemoteIdentity) GetRemoteID

func (x *RemoteIdentity) GetRemoteID() uint64

func (*RemoteIdentity) GetUserID

func (x *RemoteIdentity) GetUserID() uint64

func (*RemoteIdentity) ProtoMessage

func (*RemoteIdentity) ProtoMessage()

func (*RemoteIdentity) ProtoReflect

func (x *RemoteIdentity) ProtoReflect() protoreflect.Message

func (*RemoteIdentity) Reset

func (x *RemoteIdentity) Reset()

func (*RemoteIdentity) String

func (x *RemoteIdentity) String() string

type RepoURL

type RepoURL struct {
	ProviderURL  string
	Organization string
}

func (RepoURL) AssignmentsRepoURL

func (r RepoURL) AssignmentsRepoURL() string

func (RepoURL) InfoRepoURL

func (r RepoURL) InfoRepoURL() string

func (RepoURL) StudentRepoURL

func (r RepoURL) StudentRepoURL(userName string) string

func (RepoURL) TestsRepoURL

func (r RepoURL) TestsRepoURL() string

type Repositories

type Repositories struct {
	URLs map[string]string `` /* 149-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Repositories) Descriptor deprecated

func (*Repositories) Descriptor() ([]byte, []int)

Deprecated: Use Repositories.ProtoReflect.Descriptor instead.

func (*Repositories) GetURLs

func (x *Repositories) GetURLs() map[string]string

func (*Repositories) ProtoMessage

func (*Repositories) ProtoMessage()

func (*Repositories) ProtoReflect

func (x *Repositories) ProtoReflect() protoreflect.Message

func (*Repositories) Reset

func (x *Repositories) Reset()

func (*Repositories) String

func (x *Repositories) String() string

type Repository

type Repository struct {
	ID             uint64          `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	OrganizationID uint64          `protobuf:"varint,2,opt,name=organizationID,proto3" json:"organizationID,omitempty" gorm:"uniqueIndex:uid_gid_org_type"`
	RepositoryID   uint64          `protobuf:"varint,3,opt,name=repositoryID,proto3" json:"repositoryID,omitempty"` // ID of a github repository
	UserID         uint64          `protobuf:"varint,4,opt,name=userID,proto3" json:"userID,omitempty" gorm:"uniqueIndex:uid_gid_org_type"`
	GroupID        uint64          `protobuf:"varint,5,opt,name=groupID,proto3" json:"groupID,omitempty" gorm:"uniqueIndex:uid_gid_org_type"`
	HTMLURL        string          `protobuf:"bytes,6,opt,name=HTMLURL,proto3" json:"HTMLURL,omitempty"`
	RepoType       Repository_Type ``                                                                  /* 130-byte string literal not displayed */
	Issues         []*Issue        `protobuf:"bytes,8,rep,name=issues,proto3" json:"issues,omitempty"` // Issues associated with this repository
	// contains filtered or unexported fields
}

func (*Repository) Descriptor deprecated

func (*Repository) Descriptor() ([]byte, []int)

Deprecated: Use Repository.ProtoReflect.Descriptor instead.

func (*Repository) GetGroupID

func (x *Repository) GetGroupID() uint64

func (*Repository) GetHTMLURL

func (x *Repository) GetHTMLURL() string

func (*Repository) GetID

func (x *Repository) GetID() uint64

func (*Repository) GetIssues

func (x *Repository) GetIssues() []*Issue

func (*Repository) GetOrganizationID

func (x *Repository) GetOrganizationID() uint64

func (*Repository) GetRepoType

func (x *Repository) GetRepoType() Repository_Type

func (*Repository) GetRepositoryID

func (x *Repository) GetRepositoryID() uint64

func (*Repository) GetTestURL

func (t *Repository) GetTestURL() string

GetTestURL returns the tests repository string for this repository. This repository can be any repository belonging to a course, e.g. a user or group repository. Using this method we can avoid a database lookup.

func (*Repository) GetUserID

func (x *Repository) GetUserID() uint64

func (*Repository) IsGroupRepo

func (t *Repository) IsGroupRepo() bool

IsGroupRepo returns true if the repository is a group repo type.

func (*Repository) IsStudentRepo

func (t *Repository) IsStudentRepo() bool

IsStudentRepo returns true if the repository is a user repo type.

func (*Repository) IsTestsRepo

func (t *Repository) IsTestsRepo() bool

IsTestsRepo returns true if the repository is a 'tests' type.

func (*Repository) IsUserRepo

func (t *Repository) IsUserRepo() bool

IsUserRepo returns true if the repository is a user repo type.

func (*Repository) Name

func (t *Repository) Name() string

Name returns the name of the repository.

func (*Repository) ProtoMessage

func (*Repository) ProtoMessage()

func (*Repository) ProtoReflect

func (x *Repository) ProtoReflect() protoreflect.Message

func (*Repository) Reset

func (x *Repository) Reset()

func (*Repository) String

func (x *Repository) String() string

func (*Repository) UserName

func (t *Repository) UserName() string

UserName returns the user name of the repository, without the -labs suffix.

type RepositoryRequest

type RepositoryRequest struct {
	UserID   uint64 `protobuf:"varint,1,opt,name=userID,proto3" json:"userID,omitempty"`
	GroupID  uint64 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"`
	CourseID uint64 `protobuf:"varint,3,opt,name=courseID,proto3" json:"courseID,omitempty"`
	// contains filtered or unexported fields
}

used to check whether student/group submission repo is empty

func (*RepositoryRequest) Descriptor deprecated

func (*RepositoryRequest) Descriptor() ([]byte, []int)

Deprecated: Use RepositoryRequest.ProtoReflect.Descriptor instead.

func (*RepositoryRequest) GetCourseID

func (x *RepositoryRequest) GetCourseID() uint64

func (*RepositoryRequest) GetGroupID

func (x *RepositoryRequest) GetGroupID() uint64

func (*RepositoryRequest) GetUserID

func (x *RepositoryRequest) GetUserID() uint64

func (*RepositoryRequest) IsValid

func (req *RepositoryRequest) IsValid() bool

IsValid checks that the request has positive course ID and either user ID or group ID is set

func (*RepositoryRequest) ProtoMessage

func (*RepositoryRequest) ProtoMessage()

func (*RepositoryRequest) ProtoReflect

func (x *RepositoryRequest) ProtoReflect() protoreflect.Message

func (*RepositoryRequest) Reset

func (x *RepositoryRequest) Reset()

func (*RepositoryRequest) String

func (x *RepositoryRequest) String() string

type Repository_Type

type Repository_Type int32
const (
	Repository_NONE        Repository_Type = 0
	Repository_COURSEINFO  Repository_Type = 1
	Repository_ASSIGNMENTS Repository_Type = 2
	Repository_TESTS       Repository_Type = 3
	Repository_USER        Repository_Type = 4
	Repository_GROUP       Repository_Type = 5
)

func RepoType

func RepoType(path string) (repoType Repository_Type)

RepoType returns the repository type for the given path name.

func (Repository_Type) Descriptor

func (Repository_Type) Enum

func (x Repository_Type) Enum() *Repository_Type

func (Repository_Type) EnumDescriptor deprecated

func (Repository_Type) EnumDescriptor() ([]byte, []int)

Deprecated: Use Repository_Type.Descriptor instead.

func (Repository_Type) IsCourseRepo

func (t Repository_Type) IsCourseRepo() bool

IsCourseRepo returns true if the repository is one of the course repo types.

func (Repository_Type) IsGroupRepo

func (t Repository_Type) IsGroupRepo() bool

IsGroupRepo returns true if the repository is a group repo.

func (Repository_Type) IsStudentRepo

func (t Repository_Type) IsStudentRepo() bool

IsStudentRepo returns true if the repository is a user repo type.

func (Repository_Type) IsUserRepo

func (t Repository_Type) IsUserRepo() bool

IsUserRepo returns true if the repository is a user repo.

func (Repository_Type) Number

func (Repository_Type) String

func (x Repository_Type) String() string

func (Repository_Type) Type

type Review

type Review struct {
	ID                uint64              `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	SubmissionID      uint64              `protobuf:"varint,2,opt,name=SubmissionID,proto3" json:"SubmissionID,omitempty"` // foreign key
	ReviewerID        uint64              `protobuf:"varint,3,opt,name=ReviewerID,proto3" json:"ReviewerID,omitempty"`     // UserID of the reviewer
	Feedback          string              `protobuf:"bytes,4,opt,name=feedback,proto3" json:"feedback,omitempty"`
	Ready             bool                `protobuf:"varint,5,opt,name=ready,proto3" json:"ready,omitempty"`
	Score             uint32              `protobuf:"varint,6,opt,name=score,proto3" json:"score,omitempty"`
	GradingBenchmarks []*GradingBenchmark `protobuf:"bytes,7,rep,name=gradingBenchmarks,proto3" json:"gradingBenchmarks,omitempty" gorm:"foreignKey:ReviewID"`
	Edited            string              `protobuf:"bytes,8,opt,name=edited,proto3" json:"edited,omitempty"`
	// contains filtered or unexported fields
}

func (*Review) ComputeScore

func (r *Review) ComputeScore()

ComputeScore computes the total score for the review and assigns it to r. If the grading criteria have predefined points, the score is the sum of these points. Otherwise, each criterion is given equal weight, such that the max score is 100.

func (*Review) Descriptor deprecated

func (*Review) Descriptor() ([]byte, []int)

Deprecated: Use Review.ProtoReflect.Descriptor instead.

func (*Review) GetEdited

func (x *Review) GetEdited() string

func (*Review) GetFeedback

func (x *Review) GetFeedback() string

func (*Review) GetGradingBenchmarks

func (x *Review) GetGradingBenchmarks() []*GradingBenchmark

func (*Review) GetID

func (x *Review) GetID() uint64

func (*Review) GetReady

func (x *Review) GetReady() bool

func (*Review) GetReviewerID

func (x *Review) GetReviewerID() uint64

func (*Review) GetScore

func (x *Review) GetScore() uint32

func (*Review) GetSubmissionID

func (x *Review) GetSubmissionID() uint64

func (*Review) IsValid

func (r *Review) IsValid() bool

IsValid ensures that a review always has a reviewer and a submission IDs.

func (*Review) ProtoMessage

func (*Review) ProtoMessage()

func (*Review) ProtoReflect

func (x *Review) ProtoReflect() protoreflect.Message

func (*Review) Reset

func (x *Review) Reset()

func (*Review) String

func (x *Review) String() string

type ReviewRequest

type ReviewRequest struct {
	CourseID uint64  `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	Review   *Review `protobuf:"bytes,2,opt,name=review,proto3" json:"review,omitempty"`
	// contains filtered or unexported fields
}

func (*ReviewRequest) Descriptor deprecated

func (*ReviewRequest) Descriptor() ([]byte, []int)

Deprecated: Use ReviewRequest.ProtoReflect.Descriptor instead.

func (*ReviewRequest) GetCourseID

func (x *ReviewRequest) GetCourseID() uint64

func (*ReviewRequest) GetReview

func (x *ReviewRequest) GetReview() *Review

func (*ReviewRequest) IsValid

func (r *ReviewRequest) IsValid() bool

IsValid ensures that course ID is provided and the review is valid.

func (*ReviewRequest) ProtoMessage

func (*ReviewRequest) ProtoMessage()

func (*ReviewRequest) ProtoReflect

func (x *ReviewRequest) ProtoReflect() protoreflect.Message

func (*ReviewRequest) Reset

func (x *ReviewRequest) Reset()

func (*ReviewRequest) String

func (x *ReviewRequest) String() string

type Reviewers

type Reviewers struct {
	Reviewers []*User `protobuf:"bytes,1,rep,name=reviewers,proto3" json:"reviewers,omitempty"`
	// contains filtered or unexported fields
}

func (*Reviewers) Descriptor deprecated

func (*Reviewers) Descriptor() ([]byte, []int)

Deprecated: Use Reviewers.ProtoReflect.Descriptor instead.

func (*Reviewers) GetReviewers

func (x *Reviewers) GetReviewers() []*User

func (*Reviewers) ProtoMessage

func (*Reviewers) ProtoMessage()

func (*Reviewers) ProtoReflect

func (x *Reviewers) ProtoReflect() protoreflect.Message

func (*Reviewers) RemoveRemoteID

func (r *Reviewers) RemoveRemoteID()

func (*Reviewers) Reset

func (x *Reviewers) Reset()

func (*Reviewers) String

func (x *Reviewers) String() string

type Status

type Status struct {
	Code  uint64 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"`
	Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"`
	// contains filtered or unexported fields
}

func (*Status) Descriptor deprecated

func (*Status) Descriptor() ([]byte, []int)

Deprecated: Use Status.ProtoReflect.Descriptor instead.

func (*Status) GetCode

func (x *Status) GetCode() uint64

func (*Status) GetError

func (x *Status) GetError() string

func (*Status) ProtoMessage

func (*Status) ProtoMessage()

func (*Status) ProtoReflect

func (x *Status) ProtoReflect() protoreflect.Message

func (*Status) Reset

func (x *Status) Reset()

func (*Status) String

func (x *Status) String() string

type Submission

type Submission struct {
	ID           uint64            `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	AssignmentID uint64            `protobuf:"varint,2,opt,name=AssignmentID,proto3" json:"AssignmentID,omitempty"` // foreign key
	UserID       uint64            `protobuf:"varint,3,opt,name=userID,proto3" json:"userID,omitempty"`
	GroupID      uint64            `protobuf:"varint,4,opt,name=groupID,proto3" json:"groupID,omitempty"`
	Score        uint32            `protobuf:"varint,5,opt,name=score,proto3" json:"score,omitempty"`
	CommitHash   string            `protobuf:"bytes,6,opt,name=commitHash,proto3" json:"commitHash,omitempty"`
	Released     bool              `protobuf:"varint,7,opt,name=released,proto3" json:"released,omitempty"` // true => feedback is visible to the student or group members
	Status       Submission_Status `protobuf:"varint,8,opt,name=status,proto3,enum=ag.Submission_Status" json:"status,omitempty"`
	ApprovedDate string            `protobuf:"bytes,9,opt,name=approvedDate,proto3" json:"approvedDate,omitempty"`
	Reviews      []*Review         `protobuf:"bytes,10,rep,name=reviews,proto3" json:"reviews,omitempty"`     // reviews produced for this submission
	BuildInfo    *score.BuildInfo  `protobuf:"bytes,11,opt,name=BuildInfo,proto3" json:"BuildInfo,omitempty"` // build info for tests
	Scores       []*score.Score    `protobuf:"bytes,12,rep,name=Scores,proto3" json:"Scores,omitempty"`       // list of scores for different tests
	// contains filtered or unexported fields
}

func (*Submission) ByGroup

func (s *Submission) ByGroup(groupID uint64) bool

func (*Submission) ByUser

func (s *Submission) ByUser(userID uint64) bool

func (*Submission) Descriptor deprecated

func (*Submission) Descriptor() ([]byte, []int)

Deprecated: Use Submission.ProtoReflect.Descriptor instead.

func (*Submission) GetApprovedDate

func (x *Submission) GetApprovedDate() string

func (*Submission) GetAssignmentID

func (x *Submission) GetAssignmentID() uint64

func (*Submission) GetBuildInfo

func (x *Submission) GetBuildInfo() *score.BuildInfo

func (*Submission) GetCommitHash

func (x *Submission) GetCommitHash() string

func (*Submission) GetGroupID

func (x *Submission) GetGroupID() uint64

func (*Submission) GetID

func (x *Submission) GetID() uint64

func (*Submission) GetReleased

func (x *Submission) GetReleased() bool

func (*Submission) GetReviews

func (x *Submission) GetReviews() []*Review

func (*Submission) GetScore

func (x *Submission) GetScore() uint32

func (*Submission) GetScores

func (x *Submission) GetScores() []*score.Score

func (*Submission) GetStatus

func (x *Submission) GetStatus() Submission_Status

func (*Submission) GetUserID

func (x *Submission) GetUserID() uint64

func (*Submission) IsApproved

func (s *Submission) IsApproved() bool

func (*Submission) NewestBuildDate

func (s *Submission) NewestBuildDate(submissionDate time.Time) (t time.Time, err error)

NewestBuildDate returns the submission's build date if newer than the provided submission date. Otherwise, the provided submission date is returned, i.e., if it is newer.

func (*Submission) ProtoMessage

func (*Submission) ProtoMessage()

func (*Submission) ProtoReflect

func (x *Submission) ProtoReflect() protoreflect.Message

func (*Submission) Reset

func (x *Submission) Reset()

func (*Submission) String

func (x *Submission) String() string
type SubmissionLink struct {
	Assignment *Assignment `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
	Submission *Submission `protobuf:"bytes,2,opt,name=submission,proto3" json:"submission,omitempty"`
	// contains filtered or unexported fields
}

func (*SubmissionLink) Descriptor deprecated

func (*SubmissionLink) Descriptor() ([]byte, []int)

Deprecated: Use SubmissionLink.ProtoReflect.Descriptor instead.

func (*SubmissionLink) GetAssignment

func (x *SubmissionLink) GetAssignment() *Assignment

func (*SubmissionLink) GetSubmission

func (x *SubmissionLink) GetSubmission() *Submission

func (*SubmissionLink) ProtoMessage

func (*SubmissionLink) ProtoMessage()

func (*SubmissionLink) ProtoReflect

func (x *SubmissionLink) ProtoReflect() protoreflect.Message

func (*SubmissionLink) Reset

func (x *SubmissionLink) Reset()

func (*SubmissionLink) String

func (x *SubmissionLink) String() string

type SubmissionRequest

type SubmissionRequest struct {
	UserID   uint64 `protobuf:"varint,1,opt,name=userID,proto3" json:"userID,omitempty"`
	GroupID  uint64 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"`
	CourseID uint64 `protobuf:"varint,3,opt,name=courseID,proto3" json:"courseID,omitempty"`
	// contains filtered or unexported fields
}

func (*SubmissionRequest) Descriptor deprecated

func (*SubmissionRequest) Descriptor() ([]byte, []int)

Deprecated: Use SubmissionRequest.ProtoReflect.Descriptor instead.

func (*SubmissionRequest) GetCourseID

func (x *SubmissionRequest) GetCourseID() uint64

func (*SubmissionRequest) GetGroupID

func (x *SubmissionRequest) GetGroupID() uint64

func (*SubmissionRequest) GetUserID

func (x *SubmissionRequest) GetUserID() uint64

func (*SubmissionRequest) IsValid

func (req *SubmissionRequest) IsValid() bool

IsValid checks required fields of an action request. It must have a positive course ID and a positive user ID or group ID but not both.

func (*SubmissionRequest) ProtoMessage

func (*SubmissionRequest) ProtoMessage()

func (*SubmissionRequest) ProtoReflect

func (x *SubmissionRequest) ProtoReflect() protoreflect.Message

func (*SubmissionRequest) Reset

func (x *SubmissionRequest) Reset()

func (*SubmissionRequest) String

func (x *SubmissionRequest) String() string

type SubmissionReviewersRequest

type SubmissionReviewersRequest struct {
	SubmissionID uint64 `protobuf:"varint,1,opt,name=submissionID,proto3" json:"submissionID,omitempty"`
	CourseID     uint64 `protobuf:"varint,2,opt,name=courseID,proto3" json:"courseID,omitempty"`
	// contains filtered or unexported fields
}

func (*SubmissionReviewersRequest) Descriptor deprecated

func (*SubmissionReviewersRequest) Descriptor() ([]byte, []int)

Deprecated: Use SubmissionReviewersRequest.ProtoReflect.Descriptor instead.

func (*SubmissionReviewersRequest) GetCourseID

func (x *SubmissionReviewersRequest) GetCourseID() uint64

func (*SubmissionReviewersRequest) GetSubmissionID

func (x *SubmissionReviewersRequest) GetSubmissionID() uint64

func (*SubmissionReviewersRequest) IsValid

func (req *SubmissionReviewersRequest) IsValid() bool

IsValid ensures that course ID and submission ID are present.

func (*SubmissionReviewersRequest) ProtoMessage

func (*SubmissionReviewersRequest) ProtoMessage()

func (*SubmissionReviewersRequest) ProtoReflect

func (*SubmissionReviewersRequest) Reset

func (x *SubmissionReviewersRequest) Reset()

func (*SubmissionReviewersRequest) String

func (x *SubmissionReviewersRequest) String() string

type Submission_Status

type Submission_Status int32
const (
	Submission_NONE     Submission_Status = 0
	Submission_APPROVED Submission_Status = 1
	Submission_REJECTED Submission_Status = 2
	Submission_REVISION Submission_Status = 3
)

func (Submission_Status) Descriptor

func (Submission_Status) Enum

func (Submission_Status) EnumDescriptor deprecated

func (Submission_Status) EnumDescriptor() ([]byte, []int)

Deprecated: Use Submission_Status.Descriptor instead.

func (Submission_Status) Number

func (Submission_Status) String

func (x Submission_Status) String() string

func (Submission_Status) Type

type Submissions

type Submissions struct {
	Submissions []*Submission `protobuf:"bytes,1,rep,name=submissions,proto3" json:"submissions,omitempty"`
	// contains filtered or unexported fields
}

func (*Submissions) Clean

func (s *Submissions) Clean()

Clean removes any score or reviews from the submission if it is not released. This is to prevent users from seeing the score or reviews of a submission that has not been released.

func (*Submissions) Descriptor deprecated

func (*Submissions) Descriptor() ([]byte, []int)

Deprecated: Use Submissions.ProtoReflect.Descriptor instead.

func (*Submissions) GetSubmissions

func (x *Submissions) GetSubmissions() []*Submission

func (*Submissions) ProtoMessage

func (*Submissions) ProtoMessage()

func (*Submissions) ProtoReflect

func (x *Submissions) ProtoReflect() protoreflect.Message

func (*Submissions) Reset

func (x *Submissions) Reset()

func (*Submissions) String

func (x *Submissions) String() string

type SubmissionsForCourseRequest

type SubmissionsForCourseRequest struct {
	CourseID      uint64                           `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	Type          SubmissionsForCourseRequest_Type `protobuf:"varint,2,opt,name=type,proto3,enum=ag.SubmissionsForCourseRequest_Type" json:"type,omitempty"`
	WithBuildInfo bool                             `protobuf:"varint,3,opt,name=withBuildInfo,proto3" json:"withBuildInfo,omitempty"`
	// contains filtered or unexported fields
}

func (*SubmissionsForCourseRequest) Descriptor deprecated

func (*SubmissionsForCourseRequest) Descriptor() ([]byte, []int)

Deprecated: Use SubmissionsForCourseRequest.ProtoReflect.Descriptor instead.

func (*SubmissionsForCourseRequest) GetCourseID

func (x *SubmissionsForCourseRequest) GetCourseID() uint64

func (*SubmissionsForCourseRequest) GetType

func (*SubmissionsForCourseRequest) GetWithBuildInfo

func (x *SubmissionsForCourseRequest) GetWithBuildInfo() bool

func (*SubmissionsForCourseRequest) IsValid

func (req *SubmissionsForCourseRequest) IsValid() bool

IsValid ensures that course ID is provided

func (*SubmissionsForCourseRequest) ProtoMessage

func (*SubmissionsForCourseRequest) ProtoMessage()

func (*SubmissionsForCourseRequest) ProtoReflect

func (*SubmissionsForCourseRequest) Reset

func (x *SubmissionsForCourseRequest) Reset()

func (*SubmissionsForCourseRequest) String

func (x *SubmissionsForCourseRequest) String() string

type SubmissionsForCourseRequest_Type

type SubmissionsForCourseRequest_Type int32
const (
	SubmissionsForCourseRequest_ALL        SubmissionsForCourseRequest_Type = 0
	SubmissionsForCourseRequest_INDIVIDUAL SubmissionsForCourseRequest_Type = 1
	SubmissionsForCourseRequest_GROUP      SubmissionsForCourseRequest_Type = 2
)

func (SubmissionsForCourseRequest_Type) Descriptor

func (SubmissionsForCourseRequest_Type) Enum

func (SubmissionsForCourseRequest_Type) EnumDescriptor deprecated

func (SubmissionsForCourseRequest_Type) EnumDescriptor() ([]byte, []int)

Deprecated: Use SubmissionsForCourseRequest_Type.Descriptor instead.

func (SubmissionsForCourseRequest_Type) Number

func (SubmissionsForCourseRequest_Type) String

func (SubmissionsForCourseRequest_Type) Type

type Task

type Task struct {
	ID              uint64   `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	AssignmentID    uint64   `protobuf:"varint,2,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"` // foreign key
	AssignmentOrder uint32   `protobuf:"varint,3,opt,name=assignmentOrder,proto3" json:"assignmentOrder,omitempty"`
	Title           string   `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
	Body            string   `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
	Name            string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
	Issues          []*Issue `protobuf:"bytes,7,rep,name=issues,proto3" json:"issues,omitempty"` // Issues that use this task as a benchmark
	// contains filtered or unexported fields
}

func (*Task) Descriptor deprecated

func (*Task) Descriptor() ([]byte, []int)

Deprecated: Use Task.ProtoReflect.Descriptor instead.

func (*Task) GetAssignmentID

func (x *Task) GetAssignmentID() uint64

func (*Task) GetAssignmentOrder

func (x *Task) GetAssignmentOrder() uint32

func (*Task) GetBody

func (x *Task) GetBody() string

func (*Task) GetID

func (x *Task) GetID() uint64

func (*Task) GetIssues

func (x *Task) GetIssues() []*Issue

func (*Task) GetName

func (x *Task) GetName() string

func (*Task) GetTitle

func (x *Task) GetTitle() string

func (*Task) HasChanged

func (t *Task) HasChanged(newTask *Task) bool

HasChanged returns true if task t has a different title or body than the new task.

func (*Task) IsDeleted

func (t *Task) IsDeleted() bool

func (*Task) MarkDeleted

func (t *Task) MarkDeleted()

func (*Task) ProtoMessage

func (*Task) ProtoMessage()

func (*Task) ProtoReflect

func (x *Task) ProtoReflect() protoreflect.Message

func (*Task) Reset

func (x *Task) Reset()

func (*Task) String

func (x *Task) String() string

type URLRequest

type URLRequest struct {
	CourseID  uint64            `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	RepoTypes []Repository_Type `protobuf:"varint,2,rep,packed,name=repoTypes,proto3,enum=ag.Repository_Type" json:"repoTypes,omitempty"`
	// contains filtered or unexported fields
}

func (*URLRequest) Descriptor deprecated

func (*URLRequest) Descriptor() ([]byte, []int)

Deprecated: Use URLRequest.ProtoReflect.Descriptor instead.

func (*URLRequest) GetCourseID

func (x *URLRequest) GetCourseID() uint64

func (*URLRequest) GetRepoTypes

func (x *URLRequest) GetRepoTypes() []Repository_Type

func (*URLRequest) IsValid

func (req *URLRequest) IsValid() bool

IsValid checks that all requested repo types are valid types and course ID field is set

func (*URLRequest) ProtoMessage

func (*URLRequest) ProtoMessage()

func (*URLRequest) ProtoReflect

func (x *URLRequest) ProtoReflect() protoreflect.Message

func (*URLRequest) Reset

func (x *URLRequest) Reset()

func (*URLRequest) String

func (x *URLRequest) String() string

type UnimplementedAutograderServiceServer

type UnimplementedAutograderServiceServer struct {
}

UnimplementedAutograderServiceServer must be embedded to have forward compatible implementations.

func (UnimplementedAutograderServiceServer) CreateBenchmark

func (UnimplementedAutograderServiceServer) CreateCourse

func (UnimplementedAutograderServiceServer) CreateCriterion

func (UnimplementedAutograderServiceServer) CreateEnrollment

func (UnimplementedAutograderServiceServer) CreateGroup

func (UnimplementedAutograderServiceServer) CreateReview

func (UnimplementedAutograderServiceServer) DeleteBenchmark

func (UnimplementedAutograderServiceServer) DeleteCriterion

func (UnimplementedAutograderServiceServer) DeleteGroup

func (UnimplementedAutograderServiceServer) GetAssignments

func (UnimplementedAutograderServiceServer) GetCourse

func (UnimplementedAutograderServiceServer) GetCourses

func (UnimplementedAutograderServiceServer) GetCoursesByUser

func (UnimplementedAutograderServiceServer) GetEnrollmentsByCourse

func (UnimplementedAutograderServiceServer) GetEnrollmentsByUser

func (UnimplementedAutograderServiceServer) GetGroup

func (UnimplementedAutograderServiceServer) GetGroupByUserAndCourse

func (UnimplementedAutograderServiceServer) GetGroupsByCourse

func (UnimplementedAutograderServiceServer) GetOrganization

func (UnimplementedAutograderServiceServer) GetProviders

func (UnimplementedAutograderServiceServer) GetRepositories

func (UnimplementedAutograderServiceServer) GetReviewers

func (UnimplementedAutograderServiceServer) GetSubmissions

func (UnimplementedAutograderServiceServer) GetSubmissionsByCourse

func (UnimplementedAutograderServiceServer) GetUser

func (UnimplementedAutograderServiceServer) GetUserByCourse

func (UnimplementedAutograderServiceServer) GetUsers

func (UnimplementedAutograderServiceServer) IsAuthorizedTeacher

func (UnimplementedAutograderServiceServer) IsEmptyRepo

func (UnimplementedAutograderServiceServer) RebuildSubmissions

func (UnimplementedAutograderServiceServer) UpdateAssignments

func (UnimplementedAutograderServiceServer) UpdateBenchmark

func (UnimplementedAutograderServiceServer) UpdateCourse

func (UnimplementedAutograderServiceServer) UpdateCourseVisibility

func (UnimplementedAutograderServiceServer) UpdateCriterion

func (UnimplementedAutograderServiceServer) UpdateEnrollments

func (UnimplementedAutograderServiceServer) UpdateGroup

func (UnimplementedAutograderServiceServer) UpdateReview

func (UnimplementedAutograderServiceServer) UpdateSubmission

func (UnimplementedAutograderServiceServer) UpdateSubmissions

func (UnimplementedAutograderServiceServer) UpdateUser

type UnsafeAutograderServiceServer

type UnsafeAutograderServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeAutograderServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to AutograderServiceServer will result in compilation errors.

type UpdateSubmissionRequest

type UpdateSubmissionRequest struct {
	SubmissionID uint64            `protobuf:"varint,1,opt,name=submissionID,proto3" json:"submissionID,omitempty"`
	CourseID     uint64            `protobuf:"varint,2,opt,name=courseID,proto3" json:"courseID,omitempty"`
	Score        uint32            `protobuf:"varint,3,opt,name=score,proto3" json:"score,omitempty"`
	Released     bool              `protobuf:"varint,4,opt,name=released,proto3" json:"released,omitempty"`
	Status       Submission_Status `protobuf:"varint,5,opt,name=status,proto3,enum=ag.Submission_Status" json:"status,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateSubmissionRequest) Descriptor deprecated

func (*UpdateSubmissionRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateSubmissionRequest.ProtoReflect.Descriptor instead.

func (*UpdateSubmissionRequest) GetCourseID

func (x *UpdateSubmissionRequest) GetCourseID() uint64

func (*UpdateSubmissionRequest) GetReleased

func (x *UpdateSubmissionRequest) GetReleased() bool

func (*UpdateSubmissionRequest) GetScore

func (x *UpdateSubmissionRequest) GetScore() uint32

func (*UpdateSubmissionRequest) GetStatus

func (*UpdateSubmissionRequest) GetSubmissionID

func (x *UpdateSubmissionRequest) GetSubmissionID() uint64

func (*UpdateSubmissionRequest) IsValid

func (req *UpdateSubmissionRequest) IsValid() bool

IsValid ensures that both submission and course IDs are set

func (*UpdateSubmissionRequest) ProtoMessage

func (*UpdateSubmissionRequest) ProtoMessage()

func (*UpdateSubmissionRequest) ProtoReflect

func (x *UpdateSubmissionRequest) ProtoReflect() protoreflect.Message

func (*UpdateSubmissionRequest) Reset

func (x *UpdateSubmissionRequest) Reset()

func (*UpdateSubmissionRequest) String

func (x *UpdateSubmissionRequest) String() string

type UpdateSubmissionsRequest

type UpdateSubmissionsRequest struct {
	CourseID     uint64 `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	AssignmentID uint64 `protobuf:"varint,2,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"`
	ScoreLimit   uint32 `protobuf:"varint,3,opt,name=scoreLimit,proto3" json:"scoreLimit,omitempty"`
	Release      bool   `protobuf:"varint,4,opt,name=release,proto3" json:"release,omitempty"`
	Approve      bool   `protobuf:"varint,5,opt,name=approve,proto3" json:"approve,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateSubmissionsRequest) Descriptor deprecated

func (*UpdateSubmissionsRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateSubmissionsRequest.ProtoReflect.Descriptor instead.

func (*UpdateSubmissionsRequest) GetApprove

func (x *UpdateSubmissionsRequest) GetApprove() bool

func (*UpdateSubmissionsRequest) GetAssignmentID

func (x *UpdateSubmissionsRequest) GetAssignmentID() uint64

func (*UpdateSubmissionsRequest) GetCourseID

func (x *UpdateSubmissionsRequest) GetCourseID() uint64

func (*UpdateSubmissionsRequest) GetRelease

func (x *UpdateSubmissionsRequest) GetRelease() bool

func (*UpdateSubmissionsRequest) GetScoreLimit

func (x *UpdateSubmissionsRequest) GetScoreLimit() uint32

func (*UpdateSubmissionsRequest) ProtoMessage

func (*UpdateSubmissionsRequest) ProtoMessage()

func (*UpdateSubmissionsRequest) ProtoReflect

func (x *UpdateSubmissionsRequest) ProtoReflect() protoreflect.Message

func (*UpdateSubmissionsRequest) Reset

func (x *UpdateSubmissionsRequest) Reset()

func (*UpdateSubmissionsRequest) String

func (x *UpdateSubmissionsRequest) String() string

type UsedSlipDays

type UsedSlipDays struct {
	ID           uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	EnrollmentID uint64 `protobuf:"varint,2,opt,name=enrollmentID,proto3" json:"enrollmentID,omitempty"`
	AssignmentID uint64 `protobuf:"varint,3,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"`
	UsedSlipDays uint32 `protobuf:"varint,4,opt,name=usedSlipDays,proto3" json:"usedSlipDays,omitempty"`
	// contains filtered or unexported fields
}

func (*UsedSlipDays) Descriptor deprecated

func (*UsedSlipDays) Descriptor() ([]byte, []int)

Deprecated: Use UsedSlipDays.ProtoReflect.Descriptor instead.

func (*UsedSlipDays) GetAssignmentID

func (x *UsedSlipDays) GetAssignmentID() uint64

func (*UsedSlipDays) GetEnrollmentID

func (x *UsedSlipDays) GetEnrollmentID() uint64

func (*UsedSlipDays) GetID

func (x *UsedSlipDays) GetID() uint64

func (*UsedSlipDays) GetUsedSlipDays

func (x *UsedSlipDays) GetUsedSlipDays() uint32

func (*UsedSlipDays) ProtoMessage

func (*UsedSlipDays) ProtoMessage()

func (*UsedSlipDays) ProtoReflect

func (x *UsedSlipDays) ProtoReflect() protoreflect.Message

func (*UsedSlipDays) Reset

func (x *UsedSlipDays) Reset()

func (*UsedSlipDays) String

func (x *UsedSlipDays) String() string

type User

type User struct {
	ID               uint64            `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	IsAdmin          bool              `protobuf:"varint,2,opt,name=isAdmin,proto3" json:"isAdmin,omitempty"`
	Name             string            `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	StudentID        string            `protobuf:"bytes,4,opt,name=studentID,proto3" json:"studentID,omitempty"`
	Email            string            `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"`
	AvatarURL        string            `protobuf:"bytes,6,opt,name=avatarURL,proto3" json:"avatarURL,omitempty"`
	Login            string            `protobuf:"bytes,7,opt,name=login,proto3" json:"login,omitempty"`
	RemoteIdentities []*RemoteIdentity `protobuf:"bytes,8,rep,name=remoteIdentities,proto3" json:"remoteIdentities,omitempty"`
	Enrollments      []*Enrollment     `protobuf:"bytes,9,rep,name=enrollments,proto3" json:"enrollments,omitempty"`
	// contains filtered or unexported fields
}

func (*User) Descriptor deprecated

func (*User) Descriptor() ([]byte, []int)

Deprecated: Use User.ProtoReflect.Descriptor instead.

func (*User) GetAccessToken

func (u *User) GetAccessToken(provider string) (string, error)

GetAccessToken returns the user's access token for the given provider.

func (*User) GetAvatarURL

func (x *User) GetAvatarURL() string

func (*User) GetEmail

func (x *User) GetEmail() string

func (*User) GetEnrollments

func (x *User) GetEnrollments() []*Enrollment

func (*User) GetID

func (x *User) GetID() uint64

func (*User) GetIsAdmin

func (x *User) GetIsAdmin() bool

func (*User) GetLogin

func (x *User) GetLogin() string

func (*User) GetName

func (x *User) GetName() string

func (*User) GetRemoteIDFor

func (u *User) GetRemoteIDFor(provider string) *RemoteIdentity

GetRemoteIDFor returns the user's remote identity for the given provider. If no remote identity for the given provider is found, then nil is returned.

func (*User) GetRemoteIdentities

func (x *User) GetRemoteIdentities() []*RemoteIdentity

func (*User) GetStudentID

func (x *User) GetStudentID() string

func (*User) IsOwner

func (u *User) IsOwner(userID uint64) bool

IsOwner returns true if the current user is the same as the given user ID.

func (*User) IsValid

func (u *User) IsValid() bool

IsValid checks required fields of a user request

func (*User) ProtoMessage

func (*User) ProtoMessage()

func (*User) ProtoReflect

func (x *User) ProtoReflect() protoreflect.Message

func (*User) RemoveRemoteID

func (u *User) RemoveRemoteID()

RemoveRemoteID removes user's remote identity before transmitting to client.

func (*User) Reset

func (x *User) Reset()

func (*User) SetSlipDays

func (u *User) SetSlipDays(c *Course)

SetSlipDays sets number of remaining slip days for each enrollment

func (*User) String

func (x *User) String() string

type UserRequest

type UserRequest struct {
	UserID uint64 `protobuf:"varint,1,opt,name=userID,proto3" json:"userID,omitempty"`
	// contains filtered or unexported fields
}

func (*UserRequest) Descriptor deprecated

func (*UserRequest) Descriptor() ([]byte, []int)

Deprecated: Use UserRequest.ProtoReflect.Descriptor instead.

func (*UserRequest) GetUserID

func (x *UserRequest) GetUserID() uint64

func (*UserRequest) IsValid

func (u *UserRequest) IsValid() bool

IsValid ensures that user ID is set

func (*UserRequest) ProtoMessage

func (*UserRequest) ProtoMessage()

func (*UserRequest) ProtoReflect

func (x *UserRequest) ProtoReflect() protoreflect.Message

func (*UserRequest) Reset

func (x *UserRequest) Reset()

func (*UserRequest) String

func (x *UserRequest) String() string

type Users

type Users struct {
	Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// contains filtered or unexported fields
}

func (*Users) Descriptor deprecated

func (*Users) Descriptor() ([]byte, []int)

Deprecated: Use Users.ProtoReflect.Descriptor instead.

func (*Users) GetUsers

func (x *Users) GetUsers() []*User

func (*Users) ProtoMessage

func (*Users) ProtoMessage()

func (*Users) ProtoReflect

func (x *Users) ProtoReflect() protoreflect.Message

func (*Users) RemoveRemoteID

func (u *Users) RemoveRemoteID()

RemoveRemoteID nullifies remote identities of all users

func (*Users) Reset

func (x *Users) Reset()

func (*Users) String

func (x *Users) String() string

type Void

type Void struct {
	// contains filtered or unexported fields
}

Void contains no fields. A server response with a Void still contains a gRPC status code, which can be checked for success or failure. Status code 0 indicates that the requested action was successful, whereas any other status code indicates some failure. As such, the status code can be used as a boolean result from the server.

func (*Void) Descriptor deprecated

func (*Void) Descriptor() ([]byte, []int)

Deprecated: Use Void.ProtoReflect.Descriptor instead.

func (*Void) IsValid

func (*Void) IsValid() bool

IsValid on void message always returns true.

func (*Void) ProtoMessage

func (*Void) ProtoMessage()

func (*Void) ProtoReflect

func (x *Void) ProtoReflect() protoreflect.Message

func (*Void) Reset

func (x *Void) Reset()

func (*Void) String

func (x *Void) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL