summaryrefslogtreecommitdiff
path: root/spec
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stanhu/gitlab-ce-fix-error-500-false-binary-negative'Douwe Maan2016-06-153-0/+18
|\
| * Fix Error 500 when viewing a blob with binary characters after the 1024-byte ↵Stan Hu2016-06-123-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mark Here was the problem: 1. When determining whether a given blob is viewable text, gitlab_git reads the first 1024 bytes and checks with Linguist whether it is a text or binary file. 2. If the blob is text, GitLab will attempt to display it. 3. However, if the text has binary characters after the first 1024 bytes, then GitLab will attempt to load the entire contents, but the encoding will be ASCII-8BIT since there are binary characters. 4. The Error 500 results when GitLab attempts to display a mix UTF-8 and ASCII-8BIT. To fix this, we load as much data as we are willing to display so that the detection will work properly. Requires an update to gitlab_git: gitlab-org/gitlab_git!86 Closes #13826
* | Merge branch 'environments-and-deployments' into 'master' Rémy Coutable2016-06-159-7/+434
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add environments and deployments This MR is a continuation of https://gitlab.com/gitlab-org/gitlab-ce/issues/17009. The current implementation is as follow: 1. We have two new tables: `environments` and `deployments`. 2. We have a new tab: `Environments` under `Pipelines` where you can see all you environments and add a new one. 3. We add a new option to `.gitlab-ci.yml` to track where we should create a deployment for environment. 4. If environment in `.gitlab-ci.yml` is specified it will create a deployment. **If environment does not exist it will be created.** (this got changed) 5. The deployment is always successful and shows the time of the action, in that case a build that presumably should do deployment. In the future we could extend deployment with statuses: success, failure. We could extend deployments with information that this is partial or full deployment. 6. User have to create environments that he will track first. 7. User can remove environments. 8. User can retry/rollback past deployment (in that case we retry past build). The new build when succeeds it will create a new deployment. 9. Currently environment have only one parameter: `name`. In the future it should have: `variables`, `credentials` and possibly `runners` and maybe other resources. 10. Currently deployment have this parameters: `sha`, `ref`, `deployable (in this case a build)`, `user (who triggered a deployment)`, `created_at`. The `.gitlab-ci.yml`: ``` deploy to production: stage: deploy script: dpl travis... environment: production ``` What needs to be done: - [x] Write initial implementation - [x] Improve implementation (@ayufan) - [x] Write tests (@ayufan) - [x] Improve UX of the forms (cc @markpundsack) - reviewed by @markpundsack - [x] Improve implementation of the views (cc @jschatz1) - done by @iamphill - [x] Write .gitlab-ci.yml documentation for `environments` - done by @ayufan - [ ] Write user documentation (@ayufan and @markpundsack) See merge request !4605
| * | Make `project_id` and `environment_id` nullableenvironments-and-deploymentsKamil Trzcinski2016-06-151-0/+2
| | | | | | | | | | | | | | | This is done to make belongs_to with required to properly validate association. Otherwise `ActiveRecord::StatementInvalid` is raised.
| * | Make environments_spec more feature-specKamil Trzcinski2016-06-151-57/+56
| | |
| * | Improve forms and specsKamil Trzcinski2016-06-151-5/+7
| | |
| * | Improve validationsKamil Trzcinski2016-06-151-0/+1
| | |
| * | Merge remote-tracking branch 'origin/master' into environments-and-deploymentsKamil Trzcinski2016-06-146-3/+246
| |\ \ | | | | | | | | | | | | | | | | # Conflicts: # db/schema.rb
| * \ \ Merge remote-tracking branch 'origin/master' into environments-and-deploymentsKamil Trzcinski2016-06-147-10/+295
| |\ \ \ | | | | | | | | | | | | | | | | | | | | # Conflicts: # lib/ci/gitlab_ci_yaml_processor.rb
| * | | | Test environment controller specsKamil Trzcinski2016-06-141-0/+159
| | | | |
| * | | | Properly create a new deployment after build successKamil Trzcinski2016-06-141-4/+62
| | | | |
| * | | | Authorize environments controller actionsKamil Trzcinski2016-06-141-0/+43
| | | | |
| * | | | Add specs for models and servicesKamil Trzcinski2016-06-146-0/+111
| | | | |
| * | | | Validate environment name with regexKamil Trzcinski2016-06-141-7/+59
| | | | |
* | | | | Merge branch 'project-move-dropdown-search' into 'master' Jacob Schatz2016-06-151-0/+16
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed issue with move dropdown not being searchable ## What does this MR do? Adds the ability to search the project move dropdown. ## What are the relevant issue numbers? Closes #18634 ## Screenshots (if relevant) ![search](/uploads/f10a9a16b608308c1b3c66f186f57f80/search.gif) See merge request !4666
| * | | | | Added test to dropdown searchPhil Hughes2016-06-151-0/+16
| | | | | |
* | | | | | Merge branch '17333-u2f-only-after-authenticator' into 'master' Douwe Maan2016-06-152-35/+25
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't allow U2F set up unless an authenticator app is set up Closes #17333 # TODO - [ ] #17333 Authenticator should be set up before enabling U2F - [x] Implementation - [x] Fix/add tests - [x] Refactor - [x] Wait for [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/964c98a3c427cac6e3de88ddc74a9f172ee9742d/builds) to pass - [x] Assign to endboss for review - [x] Address @DouweM's comments - [x] No need for `javascript:void(0)` - [x] Add screenshots - [ ] Wait for merge # Screenshots ![Screen_Shot_2016-06-15_at_8.18.03_AM](/uploads/26531fa7f6e5d7617fd11d1779021b4f/Screen_Shot_2016-06-15_at_8.18.03_AM.png) ![Screen_Shot_2016-06-15_at_8.18.37_AM](/uploads/ceaae97a987a15d3e04dd76aa8a944bd/Screen_Shot_2016-06-15_at_8.18.37_AM.png) ![Screen_Shot_2016-06-15_at_8.18.47_AM](/uploads/394224d5fcff759d5acc3bf39a138530/Screen_Shot_2016-06-15_at_8.18.47_AM.png) See merge request !4585
| * | | | | | Fix teaspoon spec.17333-u2f-only-after-authenticatorTimothy Andrew2016-06-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - We added a `current_user.two_factor_via_otp?` check to the view. When rendering the view via the teaspoon fixture, `current_user` is `nil`.
| * | | | | | Update `u2f_spec` to cover U2F being disabled until authenticator is set up.Timothy Andrew2016-06-151-34/+23
| | | | | | |
* | | | | | | Merge branch '18451-track-new-redis-connections' into 'master' Douwe Maan2016-06-151-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolve "Track the number of new Redis connections per transaction" ## What does this MR do? Add a new metric counter, `new_redis_connections`, that contains the number of calls to `Redis::Client#connect` in the current transaction. ## Are there points in the code the reviewer needs to double check? Not sure. I tested this in kind of a brute-force way: 1. Add a debugger in the monkey-patched `connect` method. 2. With metrics enabled, start the app and load a page. 3. The first Redis connection is created by `Rack::Attack` and isn't in a transaction, but still works fine. 4. The second Redis connection is within a transaction (the page load), and increments the counter. 5. If I reload the page, neither debugger is hit. 6. If I use a Redis client and do `CLIENT KILL` on my two existing clients, then reload the page, I get 3 and 4 again. 7. If I disable metrics collection, the debugger never gets hit. ## Why was this MR needed? We may have a Redis connection leak somewhere, so adding metrics will let us track this. ## What are the relevant issue numbers? Closes #18451. ## Screenshots (if relevant) Hahaha nope, not relevant. ## Does this MR meet the acceptance criteria? - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md) - [ ] API support added - [ ] Tests - [ ] Added for this feature/bug - [ ] All builds are passing - [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please) - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) cc @yorickpeterse See merge request !4649
| * | | | | | | Fix spec description typo18451-track-new-redis-connectionsSean McGivern2016-06-141-1/+1
| | | | | | | |
* | | | | | | | Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ceDmitriy Zaporozhets2016-06-1523-123/+1496
|\ \ \ \ \ \ \ \ | | |_|/ / / / / | |/| | | | | |
| * | | | | | | Merge branch 'dont-drop-stuck-builds' into 'master' Stan Hu2016-06-151-3/+16
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't fail builds for projects that are deleted when they are stuck ## What does this MR do? Solves when dropping stuck connection. ``` Dropping stuck pending build 1545510 for runner NoMethodError: undefined method `origin_merge_requests' for nil:NilClass from /opt/gitlab/embedded/service/gitlab-rails/app/services/merge_requests/base_service.rb:50:in `merge_request_from' from /opt/gitlab/embedded/service/gitlab-rails/app/services/merge_requests/base_service.rb:57:in `each_merge_request' from /opt/gitlab/embedded/service/gitlab-rails/app/services/merge_requests/add_todo_when_build_fails_service.rb:5:in `execute' from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/instrumentation.rb:164:in `execute' from /opt/gitlab/embedded/service/gitlab-rails/app/models/commit_status.rb:51:in `block (2 levels) in <class:CommitStatus>' from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/state_machines-0.4.0/lib/state_machines/eval_helpers.rb:79:in `call' ... ``` This happens, because that `default_scope` of `Projects` filters returns the projects that are not deleted, where `Ci::Build` doesn't take into account. See merge request !4609
| | * | | | | | | Don't fail builds for projects that are deleted when they are stuckdont-drop-stuck-buildsKamil Trzcinski2016-06-121-3/+16
| | | |_|_|_|_|/ | | |/| | | | |
| * | | | | | | Merge branch 'manual-todos-issuable-sidebar' into 'master' Stan Hu2016-06-142-0/+49
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manually create todo for issuable ## What does this MR do? Adds a button to the sidebar in issues & merge requests to allow users to manually create a todo item themselves. ## What are the relevant issue numbers? Closes #15045 ## Screenshots (if relevant) ![Screen_Shot_2016-06-07_at_09.52.14](/uploads/00af70244c0589d19f241c3e85f3d63d/Screen_Shot_2016-06-07_at_09.52.14.png) ![Screen_Shot_2016-06-07_at_09.52.06](/uploads/e232b02208613a4a50cff4d1e6f119ff/Screen_Shot_2016-06-07_at_09.52.06.png) ![Screen_Shot_2016-06-07_at_09.51.14](/uploads/f1d36435d49ab882538ae2252bec8086/Screen_Shot_2016-06-07_at_09.51.14.png) See merge request !4502
| | * | | | | | | Todo service testsPhil Hughes2016-06-141-0/+16
| | | | | | | | |
| | * | | | | | | Todo tests and CHANGELOGPhil Hughes2016-06-141-0/+33
| | | |_|/ / / / | | |/| | | | |
| * | | | | | | Update tests to make it work with Turbolinks approachfix-bulk-assign-labels-initAlfredo Sumaran2016-06-142-20/+23
| | | | | | | |
| * | | | | | | Filter out classes without names in the samplerYorick Peterse2016-06-141-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't do a lot with classes without names as we can't filter by them, have no idea where they come from, etc. As such it's best to just ignore these.
| * | | | | | | Merge branch '13948-access-request-to-projects-and-groups' into 'master' Douwe Maan2016-06-1417-93/+1390
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow users to request access to projects and groups #### TODO: - [x] Factorize the projects & groups members list - [x] Factorize `request_access` and `approve` controller methods into a concern - [x] Factorize the project & group dropdowns - [x] Factorize access request routes - [x] Factorize mailers #### Will be done in separate MRs - [ ] Documentation - [ ] API #### Access request to project - [x] Design project access request button to spec (defined in #13948) - [x] Request access to a project as a logged in user - [x] Withdraw access request to a project as a logged in user - [x] Do not treat project member request as actual membership (done partly in Ability) - [x] Display access requests on project's members page (+ allow to change level, approve, and deny request) - [x] Email requesting user at notification email address when accepted/denied - [x] Email all project admins at notification email addresses when new access request - [x] Unit specs to cover new functionality: `AccessRequestable` is missing specs - [x] Controller specs to cover new functionality - [x] Mailer specs to cover new functionality - [x] Features specs to cover new UI and interactions - [x] Regression specs still passing #### Access request to group - [x] Design group access request button to spec (defined in #13948) - [x] Request access to a group as a logged in user - [x] Withdraw access request to a group as a logged in user - [x] Do not treat group member request as actual membership - [x] Display access requests on group's members page (+ allow to change level, approve, and deny request) - [x] Email requesting user at notification email address when accepted/denied - [x] Email all project admins at notification email addresses when new access request - [x] Unit specs to cover new functionality - [x] Controller specs to cover new functionality - [x] Mailer specs to cover new functionality - [x] Features specs to cover new UI and interactions - [x] Regression specs still passing Closes #13948. ### Requesting access to a project #### Responsive UI ![request-access-to-project](/uploads/59337d84ca4c2f637dfd73fca038def9/request-access-to-project.gif) #### Request access link ![1-project-request-access-link](/uploads/5436f7854bc48bff74b2664b311920c6/1-project-request-access-link.png) #### Flash once access is requested ![2-project-request-access-flash](/uploads/8b304dd737431c47d00ee90ab88b8098/2-project-request-access-flash.jpg) #### Email sent to project admins on new access requests ##### HTML Email ![3-project-request-access-email-html](/uploads/63842c9bd4e43a907ab189087dd24cad/3-project-request-access-email-html.jpg) ##### Plain Email ![4-project-request-access-email-plain](/uploads/249289418678c65abfcf4c1e944986c6/4-project-request-access-email-plain.jpg) ### Withdrawing access request to a project #### Withdraw access request link ![5-project-withdraw-request-link](/uploads/932984713a98f03ad75cd9606245cbe2/5-project-withdraw-request-link.png) #### Withdraw access request confirmation dialog box ![6-project-withdraw-request-confirm](/uploads/bf6afb5b83ad8ba31443812d0ccbc50b/6-project-withdraw-request-confirm.png) #### Flash once access has been withdrawn ![6-2-project-withdraw-request-confirm](/uploads/4dea00452adc4febd7cff4a969a7830a/6-2-project-withdraw-request-confirm.png) ### Access requests management page ![7-project-access-requests](/uploads/2030399fa9ce261e0df4bd3d399bfc24/7-project-access-requests.jpg) #### Deny access request confirmation dialog box ![8-project-access-request-deny-confirm](/uploads/b6ffcc3092b037fb4d3a5f1929befa90/8-project-access-request-deny-confirm.png) #### Email sent to requester on denied access requests ##### HTML Email ![9-project-request-access-denied-email-html](/uploads/7fb26d627f8919039ce88302e72ede83/9-project-request-access-denied-email-html.jpg) ##### Plain Email ![10-project-request-access-denied-email-plain](/uploads/34a21f2266e3238dc29b93f855183fb0/10-project-request-access-denied-email-plain.jpg) #### Email sent to requester on granted access requests ##### HTML Email ![11-project-request-access-granted-email-html](/uploads/cecd4d874885c48dd8bb420f19defd8f/11-project-request-access-granted-email-html.jpg) ##### Plain Email ![12-project-request-access-granted-email-plain](/uploads/636446f7a711904231d592add2de83dc/12-project-request-access-granted-email-plain.jpg) ---------------------------------- ---------------------------------- ### Requesting access to a group #### Responsive UI ![request-access-to-group](/uploads/b319b8844836ad599ad4d562f3ba6057/request-access-to-group.gif) #### Request access link ![1-group-request-access-link](/uploads/1eccd38061f0183ba71c482f51ebf53a/1-group-request-access-link.png) #### Flash once access is requested ![2-group-request-access-flash](/uploads/bbb94ede6c54cd0b6b28e8e1196f687c/2-group-request-access-flash.jpg) #### Email sent to project admins on new access requests ##### HTML Email ![3-group-request-access-email-html](/uploads/7df7196e83d80bea861ea94bd8f3f390/3-group-request-access-email-html.jpg) ##### Plain Email ![4-group-request-access-email-plain](/uploads/55a1abcd7a42368f3ba8f20650339e4a/4-group-request-access-email-plain.jpg) ### Withdrawing access request to a project #### Withdraw access request link ![5-group-withdraw-request-link](/uploads/d02ed4f353a334a0a6c181da6006f0d6/5-group-withdraw-request-link.png) #### Withdraw access request confirmation dialog box ![6-group-withdraw-request-confirm](/uploads/09d6e123390f257aff9aed3b08695ad6/6-group-withdraw-request-confirm.png) #### Flash once access has been withdrawn ![6-2-group-withdraw-request-confirm](/uploads/cf300d2292d0c10ca592424860b80d20/6-2-group-withdraw-request-confirm.png) ### Access requests management page ![7-group-access-requests](/uploads/821c55ba4276112b1994ca87b0c5e1ad/7-group-access-requests.jpg) #### Deny access request confirmation dialog box ![8-group-access-request-deny-confirm](/uploads/68fad9da8bc82492be3f6d55d33dba17/8-group-access-request-deny-confirm.png) #### Email sent to requester on denied access requests ##### HTML Email ![9-group-request-access-denied-email-html](/uploads/48a8e0cc2cea3b36529b04d259dc8e65/9-group-request-access-denied-email-html.jpg) ##### Plain Email ![10-group-request-access-denied-email-plain](/uploads/85d95642a218eaf52a35da8a7a0ac8ed/10-group-request-access-denied-email-plain.jpg) #### Email sent to requester on granted access requests ##### HTML Email ![11-group-request-access-granted-email-html](/uploads/b18949a6538168824f3d0c272d89dd81/11-group-request-access-granted-email-html.jpg) ##### Plain Email ![12-group-request-access-granted-email-plain](/uploads/c33c7847ab86eeab4b07714467573f63/12-group-request-access-granted-email-plain.jpg) See merge request !3798
| | * \ \ \ \ \ \ Merge branch 'master' into 13948-access-request-to-projects-and-groupsDouwe Maan2016-06-1413-13/+541
| | |\ \ \ \ \ \ \ | | | | |_|_|_|_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # app/views/layouts/nav/_project.html.haml
| | * | | | | | | UI and copywriting improvements13948-access-request-to-projects-and-groupsRémy Coutable2016-06-1417-317/+372
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + Move 'Edit Project/Group' out of membership-related partial + Show the access request buttons only to logged-in users + Put the request access buttons out of in a more visible button + Improve the copy in the #remove_member_message helper Signed-off-by: Rémy Coutable <remy@rymai.me>
| | * | | | | | | Factorize members mails into a new Emails::Members moduleRémy Coutable2016-06-141-77/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
| | * | | | | | | Factorize access request routes into a new :access_requestable route concernRémy Coutable2016-06-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
| | * | | | | | | Factorize #request_access and #approve_access_request into a new ↵Rémy Coutable2016-06-142-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AccessRequestActions controller concern Signed-off-by: Rémy Coutable <remy@rymai.me>
| | * | | | | | | Add request access for groupsRémy Coutable2016-06-1416-90/+1230
| | | |_|_|_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* | | | | | | | Fix notes on confidential issues through JSON to users without accessDouglas Barbosa Alexandre2016-06-141-0/+16
|/ / / / / / /
* | | | | | | Merge branch '18449-instrument-grape-endpoints' into 'master' Yorick Peterse2016-06-141-0/+29
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instrument Grape API endpoints See merge request !4587
| * | | | | | | Instrument Grape Endpoint with Metrics::RackMiddleware18449-instrument-grape-endpointsPaco Guzman2016-06-141-0/+29
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generating the following tags Grape#GET /projects/:id/archive from Grape::Route objects like { :path => /:version/projects/:id/archive(.:format) :version => “v3”, :method => “GET” } Use an instance variable to cache raw_path transformations. This variable is only going to growth to the number of endpoints of the API, not with exact different requests We can store this cache as an instance variable because middleware are initialised only once
* | | | | | | Merge branch '18527-instrument-private-methods' into 'master' Yorick Peterse2016-06-141-2/+54
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | Instrument private methods and instance private methods See merge request !4639
| * | | | | | Instrument private/protected methodsPaco Guzman2016-06-141-2/+54
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default instrumentation will instrument public, protected and private methods, because usually heavy work is done on private method or at least that’s what facts is showing
* | | | | | Fix Ci::Build#artifacts_expire_in= when assigning invalid durationartifacts-expire-dateKamil Trzcinski2016-06-141-1/+1
| | | | | |
* | | | | | Merge remote-tracking branch 'origin/master' into artifacts-expire-dateKamil Trzcinski2016-06-147-10/+295
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Merge branch '18528-cpu-time-instrumentation' into 'master' Yorick Peterse2016-06-141-2/+2
| |\ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | Measure CPU time for instrumented methods See merge request !4640
| | * | | | Measure CPU time for instrumented methodsPaco Guzman2016-06-141-2/+2
| | |/ / /
| * | | | Merge branch 'refactor/ci-config-add-global-entry' into 'master' Rémy Coutable2016-06-146-8/+293
| |\ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add global entry with before script to new CI config ## What does this MR do? This MR adds a new entries to a new CI config class. It is next refactoring step after !4462. See #15060 See merge request !4482
| | * | | Make method that composes ci config entry privateGrzegorz Bizon2016-06-142-10/+1
| | | | |
| | * | | Merge branch 'master' into refactor/ci-config-add-global-entryGrzegorz Bizon2016-06-1320-67/+547
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: (59 commits) Improved SVG sanitizer specs to include smoke tests for clean. Refactored SVG sanitizer Added SVG sanitizer fix to the changelog Refactor SVG sanitizer and prevent `xlink:href` to refer to external resources Fix SVG whitelisting to allow namespaced attributes Fix Error 500 when using closes_issues API with an external issue tracker Center layout navigation and remove icons Fix preferences_spec test Add back sidebar counters and username Only create the backup directory if it is local Fix safari logo loading animation safari bug Revert side nav to full width; remove border under nav; remove tooltips on nav links; stop page content shifting with side nav; put project nav in container Update media queries Fix profile test Fix logo at all screen widths, update sidebar text Move tanuki icon to center of nav bar; keep nav closed by default; remove collapsed nav cookie Remove unused MergeRequest#gitlab_merge_status method Add CHANGELOG item for labels/milestones navigation change Render issues link on issues subnav unless you visit merge request controller Render only issues/mr in subnav depends on context ...
| | * | | | Simplify ci config node factoryGrzegorz Bizon2016-06-131-5/+5
| | | | | |
| | * | | | Duplicate CI config node factory on class levelGrzegorz Bizon2016-06-131-0/+35
| | | | | |