feat:Feature/user profile commits report
What does this MR do?
This merge request adds a User Profile Overview dashboard to the GitLab Compliance Checker. It introduces detailed user activity reporting, including commits, issues, and merge requests, along with an activity status summary.
The feature enables tracking when and how actively a user is contributing, with clear visibility into recent work.
Motivation / Use Case
Currently, the tool focuses on repository-level compliance checks, but it lacks user-level activity insights.
As a project reviewer or mentor, I want to quickly understand:
- Whether a user is actively working
- What kind of activity they are performing (commits, issues, MRs)
- When the activity happened (working hours vs non-working hours)
This feature makes the tool more useful for academic evaluations, mentoring, and team monitoring.
Implementation Notes
-
Added a new User Profile Overview section in the Streamlit UI
-
Implemented commit, issue, and MR data fetching using the GitLab API
-
Introduced safe API handling:
- Request limits
- Timeouts
- Graceful fallbacks when GitLab throttles requests
-
Separated logic into reusable utility modules:
gitlab_utils/client.pyuser_profile/profile_utils.pyuser_profile/profile_ui.py
-
No breaking changes to existing compliance checks
-
Existing functionality remains backward compatible
How to Test
-
Checkout this branch:
git checkout feature/user-profile-commits-report -
Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt -
Configure GitLab credentials in
.streamlit/secrets.toml:GITLAB_BASE_URL = "https://code.swecha.org" GITLAB_PRIVATE_TOKEN = "<your-access-token>" -
Run the application:
streamlit run app.py -
Open User Profile Overview, enter a valid GitLab username, and verify:
- Commits are displayed
- Issues and MRs are listed
- Activity status is computed correctly
Checklist
-
Feature is documented -
Code is clean, modular, and readable -
No breaking changes introduced -
Existing functionality remains intact -
Feature verified in local testing
Related Issues or Discussions
- Related to user activity tracking enhancement
- No external issue linked
{{image.png}} {{image.png}}