Skip to main content

Repository Access Configuration

Who may read or write which repository depends on three things: the kind of repository, the role of the user, and where you are in the exercise timeline. The tables below spell out every combination, and the last section covers how to see who actually accessed a repository.

If you are a student looking for repository access information, see the student documentation on integrated code lifecycle setup.

The following sections explain repository types and access rights for different user roles.

Repository Types

Repository TypeDescription
BaseRepositories set up during exercise creation (template, solution, tests, auxiliary repositories)
Student AssignmentStudent's assignment repository copied from template. Includes team assignments
Teaching Assistant AssignmentAssignment repository created by a Teaching Assistant for themselves
Instructor AssignmentAssignment repository created by editor/instructor. Not available for exam exercises
Student PracticeStudent's practice repository (from template or assignment). Created after due date. Not available for exams
Teaching Assistant PracticePractice repository created by Teaching Assistant. Not available for exams
Instructor PracticePractice repository created by editor/instructor. Not available for exams
Instructor Exam Test RunTest run repository for exam testing before release. Should be deleted before exam

User Roles

RoleDescription
StudentCourse student
Teaching AssistantCourse tutor
EditorCourse editor
InstructorCourse instructor

Time Periods

  • Before start: Before exercise/exam start date
  • Working time: After start date, before due/end date
  • After due: After due/end date

Read access (R) includes git fetch, git clone, git pull. Write access (W) corresponds to git push.

Access Rights Table

Repository TypeRoleTime PeriodAccess
BaseStudentallnone
Teaching AssistantallR
InstructorallR/W
Student AssignmentStudentBefore startnone
StudentWorking timeR/W
StudentAfter due
Teaching AssistantallR
InstructorallR/W
Teaching Assistant AssignmentStudentallnone
Teaching AssistantBefore startR
Teaching AssistantWorking timeR/W
Teaching AssistantAfter dueR
InstructorallR/W
Instructor AssignmentStudentallnone
Teaching AssistantallR
InstructorallR/W²
Student PracticeStudentBefore startnone
StudentWorking timenone
StudentAfter dueR/W
Teaching AssistantBefore startnone
Teaching AssistantWorking timenone
Teaching AssistantAfter dueR
InstructorBefore startnone
InstructorWorking timenone
InstructorAfter dueR/W
Teaching Assistant PracticeStudentallnone
Teaching AssistantBefore startnone
Teaching AssistantWorking timenone
Teaching AssistantAfter dueR/W
InstructorBefore startnone
InstructorWorking timenone
InstructorAfter dueR/W
Instructor PracticeStudentallnone
Teaching AssistantBefore startnone
Teaching AssistantWorking timenone
Teaching AssistantAfter dueR
InstructorBefore startnone
InstructorWorking timenone
InstructorAfter dueR/W
Instructor Exam Test RunStudentallnone
Teaching AssistantallR
InstructorallR/W

Notes:

  1. Only valid for course exercises. Students cannot read exam exercise repositories after due date.

  2. Instructors can access Instructor Assignment repository via online editor from Course Management (Edit in editor) or Course Overview (Open code editor). After due date, push only via online editor from Course Management or local Git client. Online editor from Course Overview shows locked repository.

Who Accessed a Repository

Artemis records every fetch and push to a repository, which is useful when you need to establish what a participant actually did — for example when investigating a suspected exam irregularity or a disputed submission time.

Open the repository from Course Management and click Open Access Log. Each entry shows:

ColumnMeaning
User IdThe internal id of the account that accessed the repository
AuthorThe name and email of the Artemis account, not the author on the Git commit. For an access by a build agent it names the agent and job instead
Action TypeWhether the access was a read (clone or fetch) or a write (push)
Access TypeHow the user authenticated, for example over HTTPS with a token, or over SSH with a key
Commit HashThe commit involved, for write accesses
TimestampWhen the access happened

For a systematic check of a whole exercise rather than one repository, see Malicious Participation Analysis.

Search documentation