|
8 | 8 | "fmt" |
9 | 9 | "net/http" |
10 | 10 | "strings" |
| 11 | + "time" |
11 | 12 |
|
12 | 13 | "code.gitea.io/gitea/models" |
13 | 14 | "code.gitea.io/gitea/modules/auth" |
@@ -326,7 +327,7 @@ func CreatePullRequest(ctx *context.APIContext, form api.CreatePullRequestOption |
326 | 327 | func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) { |
327 | 328 | // swagger:operation PATCH /repos/{owner}/{repo}/pulls/{index} repository repoEditPullRequest |
328 | 329 | // --- |
329 | | - // summary: Update a pull request |
| 330 | + // summary: Update a pull request. If using deadline only the date will be taken into account, and time of day ignored. |
330 | 331 | // consumes: |
331 | 332 | // - application/json |
332 | 333 | // produces: |
@@ -385,9 +386,15 @@ func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) { |
385 | 386 | issue.Content = form.Body |
386 | 387 | } |
387 | 388 |
|
388 | | - // Update Deadline |
389 | | - if form.Deadline != nil { |
390 | | - deadlineUnix := timeutil.TimeStamp(form.Deadline.Unix()) |
| 389 | + // Update or remove deadline if set |
| 390 | + if form.Deadline != nil || form.RemoveDeadline != nil { |
| 391 | + var deadlineUnix timeutil.TimeStamp |
| 392 | + if (form.RemoveDeadline == nil || !*form.RemoveDeadline) && !form.Deadline.IsZero() { |
| 393 | + deadline := time.Date(form.Deadline.Year(), form.Deadline.Month(), form.Deadline.Day(), |
| 394 | + 23, 59, 59, 0, form.Deadline.Location()) |
| 395 | + deadlineUnix = timeutil.TimeStamp(deadline.Unix()) |
| 396 | + } |
| 397 | + |
391 | 398 | if err := models.UpdateIssueDeadline(issue, deadlineUnix, ctx.User); err != nil { |
392 | 399 | ctx.Error(500, "UpdateIssueDeadline", err) |
393 | 400 | return |
|
0 commit comments