]> source.dussan.org Git - gitea.git/commitdiff
Make WIP prefixes case insensitive, e.g. allow `Draft` as a WIP prefix (#19780)
authorOndřej Čertík <ondrej@certik.us>
Thu, 26 May 2022 09:19:24 +0000 (03:19 -0600)
committerGitHub <noreply@github.com>
Thu, 26 May 2022 09:19:24 +0000 (10:19 +0100)
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>
custom/conf/app.example.ini
docs/content/doc/advanced/config-cheat-sheet.en-us.md
models/pull.go

index 476b30502681cdc56b0d3aaf530915ba9245c9db..8362f228123dae70f10a9581e7702c59ee0efdcf 100644 (file)
@@ -938,7 +938,7 @@ PATH =
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
-;; 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]
 ;;
 ;; List of keywords used in Pull Request comments to automatically close a related issue
index 4c43ba7ddb9f64edb864a2ff2fc3dd8070a15e43..785fd3d6c25e3b3660d0cbba13a9c90d4882c551 100644 (file)
@@ -87,7 +87,7 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`.
 ### Repository - Pull Request (`repository.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
  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
index bb5bb118122fa5450d9d9f45f5fdd79be242b751..df96e2dc745824b8ba375e0f0c393a776280b2f8 100644 (file)
@@ -588,7 +588,7 @@ func (pr *PullRequest) IsWorkInProgress() bool {
 // HasWorkInProgressPrefix determines if the given PR title has a Work In Progress prefix
 func HasWorkInProgressPrefix(title string) bool {
        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
                }
        }
@@ -609,7 +609,7 @@ func (pr *PullRequest) GetWorkInProgressPrefix() string {
        }
 
        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)]
                }
        }