Skip to content

Getting Started with GitPulse

This page guides you through the first steps of using the GitPulse.

1. Login

  1. Open the GitPulse dashboard at the address provided by the administrator
  2. Click "Sign in with GitLab" - you will be redirected to your GitLab server
  3. Authorize the application, and after successful login you will see your courses overview

Developer Mode

In developer mode, login with name and role (admin / teacher / student) without GitLab OAuth is also available.

2. Creating a Course

Option A - New Course

  1. On the main dashboard, click "Create Course"
  2. Fill in:
Field Description Example
Course Code Unique identifier ZSI
Name Full course name Fundamentals of Software Engineering
Academic Year School year 2025/2026
Semester Winter / Summer summer
  1. Click "Create"

Option B - Import from GitLab

  1. Click "Import from GitLab"
  2. Paste a GitLab URL:
    • Group URL - imports all subgroups and projects (e.g. https://git.kpi.fei.tuke.sk/zsi-labs/assignments-2025/a3)
    • Project URL - imports only a single project (e.g. https://git.kpi.fei.tuke.sk/zsi-labs/assignments-2025/a3/mines-11679)
  3. Fill in code, name, and semester
  4. Check "Auto-sync" for immediate data download
  5. Click "Import"

Smart Structure Detection

GitPulse automatically recognizes whether the URL points to a group or a project. When importing a group, subgroups become teams and projects are automatically linked. When importing a single project, one team is created with that project.

Option C - JSON Configuration Import

  1. Click "Import JSON"
  2. Upload a JSON file with a complete course configuration
  3. JSON includes settings, compliance checks, rubric, and thresholds

3. Adding Projects

Automatic Import from Group

If you have projects organized in a GitLab group:

  1. On the course page, click "Import from GitLab"
  2. Enter the group URL (e.g. https://git.kpi.fei.tuke.sk/zsi-labs/assignments-2025/a3)
  3. GitPulse automatically finds all projects and creates teams

Single Project Import

  1. Use "Import from GitLab" with a single project URL
  2. The system creates one team with the assigned project
  3. Students are automatically detected from project members
flowchart LR
    A["Group URL"] -->|Import| B["GitPulse Course"]
    C["Project URL"] -->|Import| B
    D["JSON config"] -->|Import| B
    B --> E["Teams + Projects + Students"]

4. Data Synchronization

After import, you need to synchronize data from GitLab:

  1. GitPulse automatically starts synchronization if you checked "Auto-sync"
  2. Or click "Sync All" on the course page
  3. Monitor progress in the global status bar (top of page)
  4. After completion, metrics and compliance scores are updated

What gets synchronized?

  • Issues - all open and closed
  • Merge Requests - with comments and review status
  • Pipelines - CI/CD results and coverage
  • Commits - history and statistics
  • Project members - automatic student detection

5. Student Import (Roster)

Automatic Detection

Students are automatically imported from GitLab group/project members during import. No manual intervention is needed.

CSV Import (optional)

For more precise assignment, you can upload a CSV:

Text Only
1
2
3
gitlab_username,full_name,email,team
alice,Alice Smith,alice@example.com,Team Alpha
bob,Bob Jones,bob@example.com,Team Alpha
  1. In course settings -> "Roster" tab
  2. Upload the CSV file
  3. Check the mapping
  4. Click "Import"

6. Compliance Controls Setup

13 Built-in Controls (R01-R13)

Controls are grouped into 4 categories: Issue, MR, Review, and CI.

Control Name Category Weight Description
R01 Issue Assigned Issue 8 % Student has at least 1 assigned issue
R02 Branch + MR Created MR 6 % MR source branch follows naming convention (e.g. issue-123-description)
R03 Tests Written MR 10 % At least 1 MR contains test file changes
R04 MR Linked to Issue MR 8 % MR description references an issue
R05 MR Description MR 5 % MR description includes required sections (e.g. Description, Testing)
R06 Code Review Received Review 12 % Student's MR received reviews from ≥ N distinct reviewers (partial scoring)
R07 Code Review Given Review 12 % Student meaningfully reviewed ≥ N distinct peer MRs (partial scoring)
R08 Review Response Review 10 % Author responded to review threads and referenced commits (partial scoring)
R09 MR Approved Review 9 % Student's MR received ≥ N approvals (partial scoring)
R10 Merged by Author MR 7 % Author merged their own MR
R11 MR + Issue Closed MR 6 % Both MR and linked issue are closed
R12 Pipeline Green CI 7 % At least 1 pipeline succeeded with a test job

Threshold Configuration

In course settings -> "Settings" tab -> "Compliance" section:

  • Green threshold (default 80%) - team meets requirements
  • Yellow threshold (default 50%) - needs attention
  • Below yellow threshold - red state

Custom Controls

GitPulse also supports custom controls (C01+) for course-specific requirements.

7. First Review

After synchronization:

  1. Open the course page - you'll see a team table with traffic-light status
  2. Click a team for details (compliance, rubric, analytics)
  3. Click a student for individual metrics (commits, issues, MR, comments)

Done!

Your course is ready. GitPulse automatically processes new events and updates metrics.

Checklist

  • Logged in via GitLab OAuth
  • Created / imported course
  • Imported projects and students
  • Data synchronization completed
  • Compliance controls and thresholds configured
  • Checked dashboard - metrics display correctly

Next Steps