Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6a8843d
Adding gitlab implementation like github
puneetnith28 Feb 1, 2026
3aa4211
Resolve Conversation of the copilot
puneetnith28 Feb 1, 2026
c05cb17
Update src/scripts/popup.js
puneetnith28 Feb 2, 2026
4bfa000
Resolve Copilot comments
puneetnith28 Feb 2, 2026
ed78528
Resolve merge conflicts
puneetnith28 Feb 2, 2026
3e5579d
Update src/scripts/scrumHelper.js
puneetnith28 Feb 2, 2026
cb915fb
Resolve conversation
puneetnith28 Feb 2, 2026
47c9392
Resolve conversation
puneetnith28 Feb 2, 2026
050e83b
Resolve conversation
puneetnith28 Feb 3, 2026
76ce3dc
Resolve conversation
puneetnith28 Feb 3, 2026
78ded41
Resolve Conflicts
puneetnith28 Feb 7, 2026
49b71d6
Resolve Conflicts
puneetnith28 Feb 8, 2026
a23e55e
Resolve Conflicts
puneetnith28 Feb 9, 2026
56e8723
Resolve Conversation
puneetnith28 Feb 9, 2026
a13bb64
Resolve Copilot Conversation
puneetnith28 Feb 9, 2026
a14a598
Resolve Copilot Conversations
puneetnith28 Feb 10, 2026
e5636a7
Resolve conversation
puneetnith28 Feb 11, 2026
bce857b
Resolve conversation
puneetnith28 Feb 11, 2026
04570f9
Resolve Copilot conversation
puneetnith28 Feb 11, 2026
68a8130
Resolve Copilot Conversation
puneetnith28 Feb 12, 2026
5f822ce
Resolve Conversations
puneetnith28 Feb 12, 2026
f941049
Resolves Conversations
puneetnith28 Feb 12, 2026
3c4a0d9
Resolves Conversations
puneetnith28 Feb 13, 2026
be7ac34
Resolve Conflicts
puneetnith28 Feb 20, 2026
9cc685c
Resolve Conversations
puneetnith28 Feb 20, 2026
741ab4c
Resolve Conflicts
puneetnith28 Mar 1, 2026
0d7d030
Resolve Conflicts and conversations
puneetnith28 Mar 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion biome.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.13/schema.json",
"$schema": "https://biomejs.dev/schemas/2.3.14/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
Expand Down
77 changes: 77 additions & 0 deletions src/_locales/de/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,22 @@
"repoCount": {
"message": "$1 Repositories ausgewählt"
},
"gitlabProjectCountNone": {
"message": "0 Projekte ausgewählt",
"description": "Text showing the count of selected GitLab projects when it's zero."
},
"gitlabProjectCount": {
"message": "$1 Projekte ausgewählt",
"description": "Text showing the count of selected GitLab projects. $1 is a placeholder for the number."
},
"gitlabProjectSearchPlaceholder": {
"message": "Projekte suchen",
"description": "Placeholder/title for the GitLab project search input."
},
"gitlabProjectPlaceholder": {
"message": "Keine Projekte ausgewählt (alle werden einbezogen)",
"description": "Placeholder text when no GitLab projects are selected for filtering."
},
"repoLoading": {
"message": "Lade Repositories..."
},
Expand Down Expand Up @@ -220,4 +236,65 @@
"usernameLabel": {
"message": "Ihr Benutzername"
}
,
"gitlabTokenLabel": {
"message": "Your GitLab Token",
"description": "Label for the GitLab token input."
},
"gitlabTokenPlaceholder": {
"message": "Paste your GitLab Personal Access Token",
"description": "Placeholder for the GitLab token input."
},
"gitlabTokenTooltip": {
"message": "<b>Why is it recommended to add a GitLab token?</b><br>Scrum Helper works without a GitLab token, but adding a personal access token is recommended for a better experience. It raises your API limits, allows access to private repos (if permitted), and improves accuracy and speed. Tokens are stored locally and never sent to us and used only to fetch your git data.<br><br><b>How to obtain:</b><br>1. Go to <a href='https://gitlab.com/-/profile/personal_access_tokens' target='_blank' style='color:#2563eb;text-decoration:underline;'>GitLab Token Settings</a>.<br>2. Click 'Add new token'<br>3. Select scopes: <code>read_api</code> and <code>read_repository</code><br>4. Generate and paste it here.<br><i>Keep your token secret!</i>",
"description": "Tooltip explaining how to get a GitLab token."
},
"testTokenButton": {
"message": "Test Token",
"description": "Button text to test/validate a GitLab token."
},
"clearTokenButton": {
"message": "Clear Token",
"description": "Button text to clear the stored token."
},
"confirmClearToken": {
"message": "Are you sure you want to clear the GitLab token?",
"description": "Confirmation message before clearing the token."
},
"testingTokenButton": {
"message": "Testing...",
"description": "Button text while token validation is in progress."
},
"tokenValidButton": {
"message": "Valid!",
"description": "Button text when token is validated successfully."
},
"tokenInvalidButton": {
"message": "Invalid",
"description": "Button text when token validation fails."
},
"gitlabGroupLabel": {
"message": "Ihre GitLab-Gruppe",
"description": "Label for the GitLab group input."
},
"gitlabGroupPlaceholder": {
"message": "GitLab-Gruppennamen eingeben",
"description": "Placeholder for the GitLab group input."
},
"gitlabGroupTooltip": {
"message": "<b>Welche GitLab-Gruppenaktivität?</b><br>Geben Sie den GitLab-Gruppennamen ein, um Aktivitäten abzurufen. Leer lassen, um alle Ihre GitLab-Aktivitäten über alle Gruppen hinweg abzurufen. Gruppenname ist nicht case-sensitiv.",
"description": "Tooltip explaining GitLab group filtering."
},
"gitlabProjectFilterLabel": {
"message": "Nach Projekten filtern",
"description": "Label for GitLab project filter."
},
"gitlabProjectFilterTooltip": {
"message": "GitLab-Token erforderlich.<br>Um eine Projektliste zu aktualisieren, <br>klicken Sie auf die Schaltfläche Daten aktualisieren.",
"description": "Tooltip for GitLab project filter."
},
"gitlabTokenRequiredWarning": {
"message": "Ein GitLab-Token ist erforderlich für die Projektfilterung. Bitte fügen Sie einen in den Einstellungen hinzu.",
"description": "Warning message when GitLab token is missing for project filtering."
}
}
116 changes: 116 additions & 0 deletions src/_locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,22 @@
"message": "0 repositories selected",
"description": "Text showing the count of selected repositories when it's zero."
},
"gitlabProjectCountNone": {
"message": "0 projects selected",
"description": "Text showing the count of selected GitLab projects when it's zero."
},
"gitlabProjectPlaceholder": {
"message": "No projects selected (all will be included)",
"description": "Placeholder text when no GitLab projects are selected for filtering."
},
"gitlabProjectCount": {
"message": "$1 projects selected",
"description": "Text showing the count of selected GitLab projects. $1 is a placeholder for the number."
},
"gitlabProjectSearchPlaceholder": {
"message": "Search projects",
"description": "Placeholder/title for the GitLab project search input."
},
"repoCount": {
"message": "$1 repositories selected",
"description": "Text showing the count of selected repositories. $1 is a placeholder for the number."
Expand Down Expand Up @@ -293,11 +309,111 @@
"message": "Your Username",
"description": "Label for the username input header."
},
"gitlabTokenLabel": {
"message": "Your GitLab Token",
"description": "Label for the GitLab token input."
},
"gitlabTokenPlaceholder": {
"message": "Paste your GitLab Personal Access Token",
"description": "Placeholder for the GitLab token input."
},
"gitlabTokenTooltip": {
"message": "<b>Why is it recommended to add a GitLab token?</b><br>Scrum Helper works without a GitLab token, but adding a personal access token is recommended for a better experience. It raises your API limits, allows access to private repos (if permitted), and improves accuracy and speed. Tokens are stored locally and never sent to us and used only to fetch your git data.<br><br><b>How to obtain:</b><br>1. Go to <a href='https://gitlab.com/-/profile/personal_access_tokens' target='_blank' style='color:#2563eb;text-decoration:underline;'>GitLab Token Settings</a>.<br>2. Click 'Add new token'<br>3. Select scopes: <code>read_api</code> and <code>read_repository</code><br>4. Generate and paste it here.<br><i>Keep your token secret!</i>",
"description": "Tooltip explaining how to get a GitLab token."
},
"testTokenButton": {
"message": "Test Token",
"description": "Button text to test/validate a GitLab token."
},
"clearTokenButton": {
"message": "Clear Token",
"description": "Button text to clear the stored token."
},
"confirmClearToken": {
"message": "Are you sure you want to clear the GitLab token?",
"description": "Confirmation message before clearing the token."
},
"testingTokenButton": {
"message": "Testing...",
"description": "Button text while token validation is in progress."
},
"tokenValidButton": {
"message": "Valid!",
"description": "Button text when token is validated successfully."
},
"tokenInvalidButton": {
"message": "Invalid",
"description": "Button text when token validation fails."
},
"gitlabGroupLabel": {
"message": "Your GitLab Group",
"description": "Label for the GitLab group input."
},
"gitlabGroupPlaceholder": {
"message": "Enter GitLab group name",
"description": "Placeholder for the GitLab group input."
},
"gitlabGroupTooltip": {
"message": "<b>Which GitLab group's activity?</b><br>Enter the GitLab group name to fetch activities for. Leave empty to fetch all your GitLab activities across all groups. Group name is not case-sensitive.",
"description": "Tooltip explaining GitLab group filtering."
},
"gitlabProjectFilterLabel": {
"message": "Filter by projects",
"description": "Label for GitLab project filter."
},
"gitlabProjectFilterTooltip": {
"message": "GitLab Token required.<br>To force a project list update, <br>click the Refresh Data button.",
"description": "Tooltip for GitLab project filter."
},
"gitlabTokenRequiredWarning": {
"message": "A GitLab token is required for project filtering. Please add one in the settings.",
"description": "Warning message when GitLab token is missing for project filtering."
},
"onlyRevPRsLabel": {
"message": "Include only reviewed PRs in the report",
"description": "Label for the checkbox to include only reviewed PRs."
},
"onlyRevPRsTooltip": {
"message": "If checked, the report will only include PRs reviewed by you."
},
"gitlabProjectOnlyGitLab": {
"message": "Project filtering is only available for GitLab.",
"description": "Status message when GitLab project filter is used on a non-GitLab platform."
},
"gitlabProjectFetching": {
"message": "Fetching projects...",
"description": "Status message when GitLab projects are being fetched."
},
"gitlabProjectUsernameRequired": {
"message": "Username required",
"description": "Status message when GitLab username is missing for project filtering."
},
"gitlabProjectLoaded": {
"message": "$1 projects loaded",
"description": "Status message after GitLab projects have been loaded. $1 is the number."
},
"gitlabProjectTokenRequired": {
"message": "Token required for private projects",
"description": "Error message when GitLab token is required for accessing private projects."
},
"gitlabProjectLoading": {
"message": "Loading projects...",
"description": "Status message while GitLab projects are loading."
},
"gitlabProjectFetchNotAvailable": {
"message": "Project fetching not available",
"description": "Status message when GitLab project fetching functionality is unavailable."
},
"gitlabProjectNoneAvailable": {
"message": "No projects available. Click to load.",
"description": "Message shown in the dropdown when no GitLab projects have been loaded yet."
},
"gitlabProjectNoMatch": {
"message": "No matching projects found.",
"description": "Message shown in the dropdown when a GitLab project search yields no results."
},
"gitlabProjectLoadFailed": {
"message": "Failed to load projects",
"description": "Fallback error message when GitLab project loading fails without a specific error."
}
}
78 changes: 78 additions & 0 deletions src/_locales/es/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -223,4 +223,82 @@
"usernameLabel": {
"message": "Su nombre de usuario"
}
,
"gitlabTokenLabel": {
"message": "Your GitLab Token",
"description": "Label for the GitLab token input."
},
"gitlabTokenPlaceholder": {
"message": "Paste your GitLab Personal Access Token",
"description": "Placeholder for the GitLab token input."
},
"gitlabTokenTooltip": {
"message": "<b>Why is it recommended to add a GitLab token?</b><br>Scrum Helper works without a GitLab token, but adding a personal access token is recommended for a better experience. It raises your API limits, allows access to private repos (if permitted), and improves accuracy and speed. Tokens are stored locally and never sent to us and used only to fetch your git data.<br><br><b>How to obtain:</b><br>1. Go to <a href='https://gitlab.com/-/profile/personal_access_tokens' target='_blank' style='color:#2563eb;text-decoration:underline;'>GitLab Token Settings</a>.<br>2. Click 'Add new token'<br>3. Select scopes: <code>read_api</code> and <code>read_repository</code><br>4. Generate and paste it here.<br><i>Keep your token secret!</i>",
"description": "Tooltip explaining how to get a GitLab token."
},
"testTokenButton": {
"message": "Test Token",
"description": "Button text to test/validate a GitLab token."
},
"clearTokenButton": {
"message": "Clear Token",
"description": "Button text to clear the stored token."
},
"confirmClearToken": {
"message": "Are you sure you want to clear the GitLab token?",
"description": "Confirmation message before clearing the token."
},
"testingTokenButton": {
"message": "Testing...",
"description": "Button text while token validation is in progress."
},
"tokenValidButton": {
"message": "Valid!",
"description": "Button text when token is validated successfully."
},
"tokenInvalidButton": {
"message": "Invalid",
"description": "Button text when token validation fails."
},
"gitlabGroupLabel": {
"message": "Su grupo de GitLab",
"description": "Label for the GitLab group input."
},
"gitlabGroupPlaceholder": {
"message": "Ingrese el nombre del grupo de GitLab",
"description": "Placeholder for the GitLab group input."
},
"gitlabGroupTooltip": {
"message": "<b>¿Qué actividad del grupo de GitLab?</b><br>Ingrese el nombre del grupo de GitLab para obtener actividades. Déjelo vacío para obtener todas sus actividades de GitLab en todos los grupos. El nombre del grupo no distingue entre mayúsculas y minúsculas.",
"description": "Tooltip explaining GitLab group filtering."
},
"gitlabProjectFilterLabel": {
"message": "Filtrar por proyectos",
"description": "Label for GitLab project filter."
},
"gitlabProjectFilterTooltip": {
"message": "Token de GitLab requerido.<br>Para forzar una actualización de la lista de proyectos, <br>haga clic en el botón Actualizar datos.",
"description": "Tooltip for GitLab project filter."
},
"gitlabTokenRequiredWarning": {
"message": "Se requiere un token de GitLab para filtrar proyectos. Por favor, agregue uno en la configuración.",
"description": "Warning message when GitLab token is missing for project filtering."
}
,
"gitlabProjectCountNone": {
"message": "0 proyectos seleccionados",
"description": "Text showing the count of selected GitLab projects when it's zero."
},
"gitlabProjectCount": {
"message": "$1 proyectos seleccionados",
"description": "Text showing the count of selected GitLab projects. $1 is a placeholder for the number."
},
"gitlabProjectSearchPlaceholder": {
"message": "Buscar proyectos",
"description": "Placeholder/title for the GitLab project search input."
},
"gitlabProjectPlaceholder": {
"message": "No se seleccionaron proyectos (se incluirán todos)",
"description": "Placeholder text when no GitLab projects are selected for filtering."
}
}
78 changes: 78 additions & 0 deletions src/_locales/fr/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -223,4 +223,82 @@
"usernameLabel": {
"message": "Votre nom d'utilisateur"
}
,
"gitlabTokenLabel": {
"message": "Your GitLab Token",
"description": "Label for the GitLab token input."
},
"gitlabTokenPlaceholder": {
"message": "Paste your GitLab Personal Access Token",
"description": "Placeholder for the GitLab token input."
},
"gitlabTokenTooltip": {
"message": "<b>Why is it recommended to add a GitLab token?</b><br>Scrum Helper works without a GitLab token, but adding a personal access token is recommended for a better experience. It raises your API limits, allows access to private repos (if permitted), and improves accuracy and speed. Tokens are stored locally and never sent to us and used only to fetch your git data.<br><br><b>How to obtain:</b><br>1. Go to <a href='https://gitlab.com/-/profile/personal_access_tokens' target='_blank' style='color:#2563eb;text-decoration:underline;'>GitLab Token Settings</a>.<br>2. Click 'Add new token'<br>3. Select scopes: <code>read_api</code> and <code>read_repository</code><br>4. Generate and paste it here.<br><i>Keep your token secret!</i>",
"description": "Tooltip explaining how to get a GitLab token."
},
"testTokenButton": {
"message": "Test Token",
"description": "Button text to test/validate a GitLab token."
},
"clearTokenButton": {
"message": "Clear Token",
"description": "Button text to clear the stored token."
},
"confirmClearToken": {
"message": "Are you sure you want to clear the GitLab token?",
"description": "Confirmation message before clearing the token."
},
"testingTokenButton": {
"message": "Testing...",
"description": "Button text while token validation is in progress."
},
"tokenValidButton": {
"message": "Valid!",
"description": "Button text when token is validated successfully."
},
"tokenInvalidButton": {
"message": "Invalid",
"description": "Button text when token validation fails."
},
"gitlabGroupLabel": {
"message": "Votre groupe GitLab",
"description": "Label for the GitLab group input."
},
"gitlabGroupPlaceholder": {
"message": "Entrez le nom du groupe GitLab",
"description": "Placeholder for the GitLab group input."
},
"gitlabGroupTooltip": {
"message": "<b>Quelle activité de groupe GitLab?</b><br>Entrez le nom du groupe GitLab pour récupérer les activités. Laissez vide pour récupérer toutes vos activités GitLab dans tous les groupes. Le nom du groupe n'est pas sensible à la casse.",
"description": "Tooltip explaining GitLab group filtering."
},
"gitlabProjectFilterLabel": {
"message": "Filtrer par projets",
"description": "Label for GitLab project filter."
},
"gitlabProjectFilterTooltip": {
"message": "Jeton GitLab requis.<br>Pour forcer une mise à jour de la liste des projets, <br>cliquez sur le bouton Actualiser les données.",
"description": "Tooltip for GitLab project filter."
},
"gitlabTokenRequiredWarning": {
"message": "Un jeton GitLab est requis pour le filtrage des projets. Veuillez en ajouter un dans les paramètres.",
"description": "Warning message when GitLab token is missing for project filtering."
}
,
"gitlabProjectCountNone": {
"message": "0 projets sélectionnés",
"description": "Text showing the count of selected GitLab projects when it's zero."
},
"gitlabProjectCount": {
"message": "$1 projets sélectionnés",
"description": "Text showing the count of selected GitLab projects. $1 is a placeholder for the number."
},
"gitlabProjectSearchPlaceholder": {
"message": "Rechercher des projets",
"description": "Placeholder/title for the GitLab project search input."
},
"gitlabProjectPlaceholder": {
"message": "Aucun projet sélectionné (tous seront inclus)",
"description": "Placeholder text when no GitLab projects are selected for filtering."
}
}
Loading
Loading