diff --git a/src/main/scala/gitbucket/core/controller/MilestonesController.scala b/src/main/scala/gitbucket/core/controller/MilestonesController.scala index 843aab5..874ebec 100644 --- a/src/main/scala/gitbucket/core/controller/MilestonesController.scala +++ b/src/main/scala/gitbucket/core/controller/MilestonesController.scala @@ -98,7 +98,16 @@ for { owner <- params.optionValue("owner") repository <- params.optionValue("repository") - _ <- getMilestones(owner, repository).find(_.title.equalsIgnoreCase(value)) + _ <- params.optionValue("milestoneId") match { + // existing milestone + case Some(id) => + getMilestones(owner, repository) + .find(m => m.title.equalsIgnoreCase(value) && m.milestoneId.toString != id) + // new milestone + case None => + getMilestones(owner, repository) + .find(m => m.title.equalsIgnoreCase(value)) + } } yield { "Milestone already exists." }