Issue closure patterns ignore the possibility of negations
<!---
Please read this!
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "regression" or "bug" label.
For the Community Edition issue tracker:
- https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=regression
- https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=bug
For the Enterprise Edition issue tracker:
- https://gitlab.com/gitlab-org/gitlab-ee/issues?label_name%5B%5D=regression
- https://gitlab.com/gitlab-org/gitlab-ee/issues?label_name%5B%5D=bug
and verify the issue you're about to submit isn't a duplicate.
--->
### Summary
A commit whose message contains the text "doesn't fix #NNNN" in fact closes the mentioned issue.
### Steps to reproduce
Open an issue. Push a commit with a message containing "doesn't fix #NNNN".
### Example Project
https://gitlab.home.smart-cactus.org/ghc/ghc/issues/16046
### What is the current *bug* behavior?
The issue is closed.
### What is the expected *correct* behavior?
The issue should not be closed.
### Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
### Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
#### Results of GitLab environment info
<details>
<summary>Expand for output related to GitLab environment info</summary>
<pre>
System information
System:
Current User: root
Using RVM: no
Ruby Version: unknown
Gem Version:
Bundler Version:1.16.3
Rake Version: 12.3.1
Redis Version: unknown
Git Version: 2.18.1
Sidekiq Version:5.1.3
Go Version: unknown
GitLab information
Version: 11.3.0
Revision: Unknown
Directory: /nix/store/j68h73wd5s83kxqalp4f9qaxv30j6jhn-gitlab-11.3.0/share/gitlab
DB Adapter: postgresql
URL: https://gitlab.home.smart-cactus.org
HTTP Clone URL: https://gitlab.home.smart-cactus.org/some-group/some-project.git
SSH Clone URL: gitlab@gitlab.home.smart-cactus.org:some-group/some-project.git
Using LDAP: no
Using Omniauth: no
GitLab Shell
Version: 8.3.3
Repository storage paths:
- default: /var/gitlab/state/repositories
Hooks: /var/gitlab/state/shell/hooks
Git: git
</pre>
</details>
#### Results of GitLab application Check
<details>
<summary>Expand for output related to the GitLab application check</summary>
<pre>
Checking GitLab Shell ...
GitLab Shell version >= 8.3.3 ? ... OK (8.3.3)
Repo base directory exists?
default... yes
Repo storage directories are symlinks?
default... no
Repo paths owned by gitlab:root, or gitlab:gitlab?
default... yes
Repo paths access is drwxrws---?
default... yes
hooks directories in repos are links: ...
4/2 ... ok
Running /nix/store/2sz3y50m4m0j2zb7pay5parws8ks6q6z-gitlab-shell-8.3.3/bin/check
Check GitLab API access: OK
Redis available via internal API: OK
Access to /var/gitlab/state/home/.ssh/authorized_keys: OK
gitlab-shell self-check successful
Checking GitLab Shell ... Finished
Checking Sidekiq ...
Running? ... no
Try fixing it:
sudo -u gitlab -H RAILS_ENV=production bin/background_jobs start
For more information see:
doc/install/installation.md in section "Install Init Script"
see log/sidekiq.log for possible errors
Please fix the error above and rerun the checks.
Checking Sidekiq ... Finished
Reply by email is disabled in config/gitlab.yml
Checking LDAP ...
LDAP is disabled in config/gitlab.yml
Checking LDAP ... Finished
Checking GitLab ...
Git configured correctly? ... no
Trying to fix error automatically. ...Failed
Try fixing it:
sudo -u gitlab -H "git" config --global core.autocrlf "input"
For more information see:
doc/install/installation.md in section "GitLab"
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... no
Try fixing it:
sudo chmod 700 /var/gitlab/state/uploads
For more information see:
doc/install/installation.md in section "GitLab"
Please fix the error above and rerun the checks.
Uploads directory tmp has correct permissions? ... skipped (no tmp uploads folder yet)
Init script exists? ... no
Try fixing it:
Install the init script
For more information see:
doc/install/installation.md in section "Install Init Script"
Please fix the error above and rerun the checks.
Init script up-to-date? ... can't check because of previous errors
Projects have namespace: ...
4/2 ... yes
Redis version >= 2.8.0? ... no
Try fixing it:
Update your redis server to a version >= 2.8.0
For more information see:
gitlab-public-wiki/wiki/Trouble-Shooting-Guide in section sidekiq
Please fix the error above and rerun the checks.
Ruby version >= 2.3.5 ? ... no
Try fixing it:
Update your ruby to a version >= 2.3.5 from Unknown
Please fix the error above and rerun the checks.
Git version >= 2.9.5 ? ... yes (2.18.1)
Git user has default SSH configuration? ... yes
Active users: ... 3271
Checking GitLab ... Finished
</pre>
</details>
### Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
issue