API: Implement edit via API for projects
I've picked up https://github.com/gitlabhq/gitlabhq/pull/8055 fixed the few hound warnings and replaced all double quotes in the spec file where possible.
# From the original PR:
Implements edit via API for projects. Edit was part of missing features in feature request Full CRUD operations via API for projects.
http://feedback.gitlab.com/forums/176466-general/suggestions/3904506-full-crud-operations-via-api-for-projects
Feature is implemented using existing UpdateService for projects. Permission to change visibility level and name are checked in addition to check for permission to administer project.
Doesn't allow updating project namespace id, because there was existing API-method for transferring project to a group.
Documentation added to doc/api/projects.md. Uses API request PUT /projects/:id .
Tests included for:
1. Success for changing path
2. Success for changing name
3. Success for changing visibility level
4. Success for changing all other attributes
5. Success for changing name & path to existing name & path but in different namespace
6. Failure if not authenticated
7. Failure if path exists in project's namespace
8. Failure if name exists in project's namespace
9. Failure if not sufficient permission to change name
10. Failure if not sufficient permission to change visibility level
11. Failure if not sufficient permission to change other attributes
Allows updating following parameters:
* name
* path
* visibility_level
* public
* default_branch
* issues_enabled
* wiki_enabled
* snippets_enabled
* merge_requests_enabled
* description
See merge request !310
Send checkout sha to services
In case of tags it may be useful to have sha of commit this tag points to.
So now web hooks and services get additional parameter `checkout_sha`
See merge request !1400
We were having the following issues:
- the indicator would sometimes stay red even if the password that was
entered was long enough;
- the indicator had a middle yellow signal: what does that mean?
- the red/green backgrounds were not color-blind-friendly.
Flatten the directory hierarchy while there is only one directory descendant
In some languages, especially java, the directory structure reflects the package structure.This means that using the file tree browser to reach the directories that matter you have to click a lot of directories containing only another subdirectory.
This merge request tries to enhance this by showing and providing the link to the first directory that doesn't contain only one directory.
See also [this feature request](http://feedback.gitlab.com/forums/176466-general/suggestions/6236769-jump-forward-to-the-first-folder-that-has-more-tha)
This is very similar to what [GitHub does](https://github.com/blog/1877-folder-jumping), but I don't think graying out the empty directories is really necessary.
Screenshots: [Before](https://gitlab.com/uploads/marmis85/gitlab-ce/b683a0000f/before.png) - [After](https://gitlab.com/uploads/marmis85/gitlab-ce/a23725a1c1/after.png)
I'm actually very new at ruby, rails, haml, and almost everything involved in Gitlab's development...
From what I could understand, when we render each directory item in the list we only have the data structure representing the item but not his descendants.
To iterate through the hierarchy I call Gitlab::Git:Tree.where() but I'm not sure if this is the most efficient way.
I also considered making every directory a clickable link, but I tried that and in the end it wasn't very useful and reduced the click target for the most useful directory.
See merge request !275