From 49922ea37493db691405cc61ae71e7b00be861e9 Mon Sep 17 00:00:00 2001 From: Julien WITTOUCK Date: Fri, 25 Aug 2023 11:57:06 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=20:=20add=20slugify=20method?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gitlab/classrooms/gitlab/GitlabImpl.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/gitlab/GitlabImpl.java b/src/main/java/fr/univ_lille/gitlab/classrooms/gitlab/GitlabImpl.java index 24057e3..4bfa963 100644 --- a/src/main/java/fr/univ_lille/gitlab/classrooms/gitlab/GitlabImpl.java +++ b/src/main/java/fr/univ_lille/gitlab/classrooms/gitlab/GitlabImpl.java @@ -43,10 +43,20 @@ class GitlabImpl implements Gitlab { return URI.create(group.getWebUrl()); } + /** + * Slugify a name by removing all chars that are not letters, numbers, underscore or hyphens, and replacing them by underscores. + * + * @param name value to slugify + * @return slugified value + */ + private String slugify(String name) { + return name.trim().replaceAll("[^\\w\\-.]", "_"); + } + @Override public void createGroup(Classroom classroom, Optional parentGroupId) throws GitLabApiException { var classroomName = classroom.getName(); - var groupPath = classroomName.trim().replaceAll("[^\\w\\-.]", "_"); + var groupPath = slugify(classroomName); var groupParams = new GroupParams() .withName(classroomName) @@ -62,7 +72,7 @@ class GitlabImpl implements Gitlab { @Override public void createGroup(ExerciseAssignment exerciseAssignment, Classroom classroom) throws GitLabApiException { var assignmentName = exerciseAssignment.getName(); - var groupPath = assignmentName.trim().replaceAll("[^\\w\\-.]", "_"); + var groupPath = slugify(assignmentName); var groupParams = new GroupParams() .withName(assignmentName) @@ -90,7 +100,7 @@ class GitlabImpl implements Gitlab { // get gitlab group info var group = teacherGitlabApi.getGroupApi().getGroup(exerciseAssignment.getGitlabGroupId()); - var path = projectName.replaceAll("[^\\w\\-.]", "_"); + var path = slugify(projectName); // fork the template project project = teacherGitlabApi.getProjectApi().forkProject( exerciseAssignment.getGitlabRepositoryTemplateId(), -- 2.51.2