The issue was that only the actual title was converted to uppercase, but not the prefix as specified in `WORK_IN_PROGRESS_PREFIXES`. As a result, the following did not work: WORK_IN_PROGRESS_PREFIXES=Draft:,[Draft],WIP:,[WIP] One possible workaround was: WORK_IN_PROGRESS_PREFIXES=DRAFT:,[DRAFT],WIP:,[WIP] Then indeed one could use `Draft` (as well as `DRAFT`) in the title. However, the link `Start the title with DRAFT: to prevent the pull request from being merged accidentally.` showed the suggestion in uppercase; so it is not possible to show it as `Draft`. This PR fixes it, and allows to use `Draft` in `WORK_IN_PROGRESS_PREFIXES`. Fixes #19779. Co-authored-by: zeripath <art27@cantab.net>tags/v1.18.0-dev
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
;; | ;; | ||||
;; List of prefixes used in Pull Request title to mark them as Work In Progress | |||||
;; List of prefixes used in Pull Request title to mark them as Work In Progress (matched in a case-insensitive manner) | |||||
;WORK_IN_PROGRESS_PREFIXES = WIP:,[WIP] | ;WORK_IN_PROGRESS_PREFIXES = WIP:,[WIP] | ||||
;; | ;; | ||||
;; List of keywords used in Pull Request comments to automatically close a related issue | ;; List of keywords used in Pull Request comments to automatically close a related issue |
### Repository - Pull Request (`repository.pull-request`) | ### Repository - Pull Request (`repository.pull-request`) | ||||
- `WORK_IN_PROGRESS_PREFIXES`: **WIP:,\[WIP\]**: List of prefixes used in Pull Request | - `WORK_IN_PROGRESS_PREFIXES`: **WIP:,\[WIP\]**: List of prefixes used in Pull Request | ||||
title to mark them as Work In Progress | |||||
title to mark them as Work In Progress. These are matched in a case-insensitive manner. | |||||
- `CLOSE_KEYWORDS`: **close**, **closes**, **closed**, **fix**, **fixes**, **fixed**, **resolve**, **resolves**, **resolved**: List of | - `CLOSE_KEYWORDS`: **close**, **closes**, **closed**, **fix**, **fixes**, **fixed**, **resolve**, **resolves**, **resolved**: List of | ||||
keywords used in Pull Request comments to automatically close a related issue | keywords used in Pull Request comments to automatically close a related issue | ||||
- `REOPEN_KEYWORDS`: **reopen**, **reopens**, **reopened**: List of keywords used in Pull Request comments to automatically reopen | - `REOPEN_KEYWORDS`: **reopen**, **reopens**, **reopened**: List of keywords used in Pull Request comments to automatically reopen |
// HasWorkInProgressPrefix determines if the given PR title has a Work In Progress prefix | // HasWorkInProgressPrefix determines if the given PR title has a Work In Progress prefix | ||||
func HasWorkInProgressPrefix(title string) bool { | func HasWorkInProgressPrefix(title string) bool { | ||||
for _, prefix := range setting.Repository.PullRequest.WorkInProgressPrefixes { | for _, prefix := range setting.Repository.PullRequest.WorkInProgressPrefixes { | ||||
if strings.HasPrefix(strings.ToUpper(title), prefix) { | |||||
if strings.HasPrefix(strings.ToUpper(title), strings.ToUpper(prefix)) { | |||||
return true | return true | ||||
} | } | ||||
} | } | ||||
} | } | ||||
for _, prefix := range setting.Repository.PullRequest.WorkInProgressPrefixes { | for _, prefix := range setting.Repository.PullRequest.WorkInProgressPrefixes { | ||||
if strings.HasPrefix(strings.ToUpper(pr.Issue.Title), prefix) { | |||||
if strings.HasPrefix(strings.ToUpper(pr.Issue.Title), strings.ToUpper(prefix)) { | |||||
return pr.Issue.Title[0:len(prefix)] | return pr.Issue.Title[0:len(prefix)] | ||||
} | } | ||||
} | } |