and request them each session. Pass these tokens to the project import data.
This prevents the need to encrypt these tokens and clear them in case they
expire or get revoked.
For example, if you deleted and re-created OAuth2 keys for Bitbucket, you would get
an Error 500 with no way to recover:
```
Started GET "/import/bitbucket/status" for x.x.x.x at 2015-08-07 05:24:10 +0000
Processing by Import::BitbucketController#status as HTML
Completed 500 Internal Server Error in 607ms (ActiveRecord: 2.3ms)
NameError (uninitialized constant Import::BitbucketController::Unauthorized):
app/controllers/import/bitbucket_controller.rb:77:in `rescue in go_to_bitbucket_for_permissions'
app/controllers/import/bitbucket_controller.rb:74:in `go_to_bitbucket_for_permissions'
app/controllers/import/bitbucket_controller.rb:86:in `bitbucket_unauthorized'
```
Closes#1871
Add SystemNoteService class
The Note model was basically two models crammed together - one handling user-created notes
(i.e., comments on things) and one handling system-created notes (i.e., references).
This splits out the system-specific stuff to a new SystemNoteService class.
See merge request !595
Remove tag duplicates
Prevention of getting this error:
```
ActiveRecord::RecordNotUnique: PG::Error: ERROR: could not create unique index "index_tags_on_name"
DETAIL: Key (name)=(XSS') is duplicated.
: CREATE UNIQUE INDEX "index_tags_on_name" ON "tags" ("name")
```
This migration fails if there are duplicates:
https://github.com/mbleigh/acts-as-taggable-on/blob/v3.5.0/db/migrate/2_add_missing_unique_indices.rb#L3
See merge request !623
Change the MySQL collation type to utf8_bin to ensure case-sensitive tags are supported
MySQL tables had a collation type of utf8_ci, which makes the name case-insensitive. Previously this migration was run only after indices were built, but it needs to happen before if there is existing data that is case-sensitive. This is an idempotent change, so applying it again in the existing migration (20150425164651) should not change anything.
This is related to !623, but this migration should run before that one.
* Closes#1589
* Closes https://github.com/gitlabhq/gitlabhq/issues/9255
See merge request !625
Fix DB error when trying to tag a repository
Steps to reproduce: Go to a project settings, add tags, click on save changes
Observed behavior: Error 500
```
PG::Error: ERROR: column "taggings_count" does not exist
LINE 1: UPDATE "tags" SET "taggings_count" = COALESCE("taggings_coun...
```
Ran `rake acts_as_taggable_on_engine:install:migrations`, removed the first
migration that created the `tags` and `taggings` table, and added the rest.
* Closes#1512
* Closes#1550
* Closes https://github.com/gitlabhq/gitlabhq/issues/6867
* Closes https://github.com/gitlabhq/gitlabhq/issues/9194
See merge request !577
Upon tagging a repository, an error due to a missing migration occurred:
```
PG::Error: ERROR: column "taggings_count" does not exist
LINE 1: UPDATE "tags" SET "taggings_count" = COALESCE("taggings_coun...
```
Ran `rake acts_as_taggable_on_engine:install:migrations`, removed the first
migration that created the `tags` and `taggings` table, and added the rest.
Closes#1512
Closes https://github.com/gitlabhq/gitlabhq/issues/6867
Closes https://github.com/gitlabhq/gitlabhq/issues/9194