Commit Graph

260 Commits

Author SHA1 Message Date
jubianchi 998cd3cb63 Improve error reporting on users API
* users (#6878, #3526, #4209): Validation error messages are now exposed through 400 responses, 409 response are sent in case of duplicate email or username
* MRs (#5335): 409 responses are sent in case of duplicate merge request (source/target branches), 422 responses are sent when submiting MR fo/from unrelated forks
* issues
* labels
* projects
2014-09-16 01:25:24 +02:00
Dmitriy Zaporozhets ce49f035cf
Fix access_level api
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-09-15 11:55:36 +03:00
Dmitriy Zaporozhets 77c64a9b36
Replace project_access attribute with access_level in specs and API
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-09-15 11:36:50 +03:00
Dmitriy Zaporozhets bdbadebe3e
Fix adminarea and emails for new membership logic
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-09-15 10:57:02 +03:00
Dmitriy Zaporozhets c69b8e0459
Huge replace of old users_project and users_group references
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-09-14 19:32:51 +03:00
Dmitriy Zaporozhets a83975ab8d
API: Create project - make sure project path is respected
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-09-09 10:48:58 +03:00
Dmitriy Zaporozhets 70f868b737
Fix tests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-07-30 16:05:43 +03:00
Dmitriy Zaporozhets 2d87556847 Remove rails observers from application 2014-06-17 22:51:43 +03:00
Dmitriy Zaporozhets 8ff171f628
Fix api specs
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-06-13 19:39:12 +03:00
Dmitriy Zaporozhets d593c98fcb
Delete wall notes tests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-06-13 14:29:26 +03:00
Drew Blessing 5f25cdfe19 Implement Merge Request Labels 2014-05-13 06:41:36 -05:00
Jeroen van Baarsen 5dd2f36ae1 Added API testing group 2014-04-11 21:45:56 +02:00
Ábner Silva de Oliveira 85b5812bc2 moving labels specs to projects_spec file 2014-03-22 17:29:13 -03:00
Robert Speicher 1897fb00b8 Make use of project factory traits 2014-03-19 05:15:24 -04:00
Dmitriy Zaporozhets 928b7f3bff
Add tests for API project permissions info
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-17 15:14:27 +02:00
Dmitriy Zaporozhets 7c60713e82
Move project members api to separate file
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-17 13:44:54 +02:00
Dmitriy Zaporozhets c227aa44f9
Make changes to tests
* project_with_code -> project
* project -> ermpty_project

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-01-22 21:03:52 +02:00
Dmitriy Zaporozhets 822dac87ec Extract tests for project hooks API
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-12-04 13:37:39 +02:00
Jason Hollingsworth d9bb4230cc Adding authenticated public mode (internal).
Added visibility_level icons to project view (rather than just text).
Added public projects to search results.
Added ability to restrict visibility levels standard users can set.
2013-11-26 22:22:07 -06:00
Dmitriy Zaporozhets ba169cc52d
API: projects/all tests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-11-18 16:42:56 +02:00
Dmitriy Zaporozhets cfa15d0846
Remove default_branch support from API project creation
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2013-11-06 19:14:11 +02:00
Dmitriy Zaporozhets 4416be54a9 API: specs for remove project 2013-10-09 14:41:54 +03:00
Izaak Alpert 4cfbfbb845 Added search for projects by name to api
GITLAB-1283 (GITLAB-869)

Change-Id: I611e7e93f6292de08e1edc8d3ea77cf9087b6ded

Conflicts:
	config/initializers/1_settings.rb
2013-09-23 19:36:25 -04:00
Izaak Alpert d99594273d Style changes from review with @randx
-Some changes around calling origional methods for !for_fork? merge requests. Other changes to follow

Change-Id: I009c716ce2475b9efa3fd07aee9215fca7a1c150
2013-07-17 22:48:03 -04:00
Izaak Alpert 3d7194f011 Merge Request on forked projects
The good:

 - You can do a merge request for a forked commit and it will merge properly (i.e. it does work).
 - Push events take into account merge requests on forked projects
 - Tests around merge_actions now present, spinach, and other rspec tests
 - Satellites now clean themselves up rather then recreate

The questionable:

 - Events only know about target projects
 - Project's merge requests only hold on to MR's where they are the target
 - All operations performed in the satellite

The bad:

  -  Duplication between project's repositories and satellites (e.g. commits_between)

(for reference: http://feedback.gitlab.com/forums/176466-general/suggestions/3456722-merge-requests-between-projects-repos)

Fixes:

Make test repos/satellites only create when needed
-Spinach/Rspec now only initialize test directory, and setup stubs (things that are relatively cheap)
-project_with_code, source_project_with_code, and target_project_with_code now create/destroy their repos individually
-fixed remote removal
-How to merge renders properly
-Update emails to show project/branches
-Edit MR doesn't set target branch
-Fix some failures on editing/creating merge requests, added a test
-Added back a test around merge request observer
-Clean up project_transfer_spec, Remove duplicate enable/disable observers
-Ensure satellite lock files are cleaned up, Attempted to add some testing around these as well
-Signifant speed ups for tests
-Update formatting ordering in notes_on_merge_requests
-Remove wiki schema update
Fixes for search/search results
-Search results was using by_project for a list of projects, updated this to use in_projects
-updated search results to reference the correct (target) project
-udpated search results to print both sides of the merge request

Change-Id: I19407990a0950945cc95d62089cbcc6262dab1a8
2013-07-17 22:41:30 -04:00
Angus MacArthur ace5c54ab9 enhance project creation apis to allow setting of public attribute
Change-Id: Ib71ce8cf993627eada63d7d596fb302ec702f36e
2013-07-12 12:10:42 -04:00
Dmitriy Zaporozhets 6a9aed1e87 Merge branch 'master' into 6-0-dev
Conflicts:
	CHANGELOG
	VERSION
	app/views/admin/teams/projects/new.html.haml
	app/views/projects/teams/available.html.haml
	doc/install/installation.md
2013-07-10 14:03:00 +03:00
Angus MacArthur ea5a006f27 Additon of apis for fork administration.
Added ability to add and remove the forked from/to relatioinship
between existing repos.
2013-07-08 17:34:00 -04:00
Dmitriy Zaporozhets e45179c9b4 remove useless routing tests. Added symlink creation for project with code 2013-06-22 18:57:34 +03:00
Dmitriy Zaporozhets 8df699a336 API: project events 2013-06-06 19:19:17 +03:00
Dmitriy Zaporozhets bcc4e4dc7e Merge branch 'gist' of https://github.com/Andrew8xx8/gitlabhq into Andrew8xx8-gist
Conflicts:
	Gemfile.lock
	app/models/ability.rb
	app/models/project.rb
	app/views/snippets/_form.html.haml
	db/schema.rb
	features/steps/shared/paths.rb
	spec/factories.rb
	spec/models/project_spec.rb
2013-06-04 18:36:22 +03:00
Dmitriy Zaporozhets 068cf2f467 split repositories and projects api 2013-05-23 12:23:47 +03:00
Dmitriy Zaporozhets 634cbd7138 Refactor API classes. So api classes like Gitlab::Issues become API::Issues 2013-05-14 15:33:31 +03:00
Dmitriy Zaporozhets 04da04ff64 fix api delete hook test 2013-05-07 19:46:35 +03:00
Nihad Abbasov 77d0e41df0 fix API route to delete project hook 2013-05-07 00:09:23 +05:00
Dmitriy Zaporozhets 4528fa9817 modify api to work with new deploy keys 2013-05-06 16:24:58 +03:00
Dmitriy Zaporozhets 4f5aae1d26 fix test 2013-05-02 08:47:42 +03:00
Dmitriy Zaporozhets 083d66563e Update all gems! 2013-05-01 13:29:29 +03:00
Dmitriy Zaporozhets 001f3bc59e Specs refactoring to reduce test time. Disabled observers by default for specs 2013-04-10 23:28:42 +03:00
Dmitriy Zaporozhets f536c13355 fixed test using repo with commits but old factory 2013-04-01 19:06:47 +03:00
Andrew8xx8 d4543eb5a7 Tests fixed 2013-03-25 11:20:14 +04:00
Sebastian Ziebell 3374027e3a Merge branch 'master' into fixes/api, code clean up and tests fixed
Conflicts:
	doc/api/projects.md
	spec/requests/api/projects_spec.rb
2013-03-07 14:51:56 +01:00
Dmitriy Zaporozhets 7c408960ce Merge pull request #3146 from amacarthur/AdminAPIs
Additional Admin APIs
2013-03-06 22:57:24 -08:00
Matt Humphrey f411772e33 Project deploy keys API 2013-03-05 21:23:29 +00:00
Angus MacArthur 61ffcab60f Additional Admin APIs 2013-03-05 10:38:43 -05:00
Sebastian Ziebell d269d107d8 API: fixed adding a note
Now the correct attribute is checked if it's available or not. Also fixed a test.
2013-02-27 18:12:02 +01:00
Sebastian Ziebell 7499f65014 API: extracted helper method to validate required parameters, code clean up
Added a helper method to check if required parameters are given in an API call. Can be used
to return a `400 Bad Request` return code if a required attribute is missing.
Code clean up and fixed tests.
2013-02-27 17:50:30 +01:00
Sebastian Ziebell e119b0a0cb API repository documentation updated, includes infos to return codes
The API documentation of repository is updated and now contains infos to status codes.
Code documentation is also adjusted for `GET /projects/:id/repository/commits` and includes infos to
pagination attributes. Tests are updated.
2013-02-27 11:24:12 +01:00
Sebastian Ziebell 9ee6c58acc API documentation updated for project snippets.
The API Documentation for project snippets got infos to return codes. Tests are added
to check status codes when handling project snippets.
2013-02-21 21:13:46 +01:00
Sebastian Ziebell ce9e35c295 API: Fixes tests for changed hook deletion 2013-02-21 21:04:16 +01:00
Sebastian Ziebell f0e417091c Merge branch 'master' into fixes/api
Conflicts:
	spec/requests/api/projects_spec.rb
2013-02-20 14:30:11 +01:00
Matt Humphrey dddf6eab2d Removed unnecessary paramter hash. Also tidied up hash format in hook creation spec 2013-02-20 11:45:54 +00:00
Sebastian Ziebell eefb27f5ae Merge branch 'master' into fixes/api
Conflicts:
	spec/requests/api/projects_spec.rb
2013-02-20 12:43:32 +01:00
Matt Humphrey 33c513274d Fix RESTfulness of project hook deletions by API 2013-02-20 11:35:36 +00:00
Dmitriy Zaporozhets b7ac654b88 Merge pull request #2988 from Asquera/error_project_limit
API: creating last project before limit returns 404
2013-02-20 02:47:30 -08:00
Sebastian Ziebell e9d3b96595 API: fixes visibility of project hook
When a user is not authorized to see the list of hooks for a project, he is
still able to access the hooks separately. For example if access to
`GET /projects/:id/hooks` fails and returns a `403 Unauthorized` error it is
still possible to access a hook directly via `GET /projects/:id/hooks/:hook_id`.

Fixes access, also added tests to check access and status codes of hooks.
2013-02-16 14:42:49 +01:00
Sebastian Ziebell 5417fbfecd Test to check 404 error when project id not found 2013-02-14 21:00:05 +01:00
Sebastian Ziebell c305eb31aa API: tests that check status codes for project branches and hooks
Status code 422 (Unprocessable Entity) returned if invalid url is given when creating
or updating a project hook.
2013-02-14 16:55:33 +01:00
Sebastian Ziebell 6df02adc7a API: status code 403 returned if new project would exceed limit
When the project limit is reached the user is not allowed to create new ones.
Instead of error code 404 the status code 403 (Forbidden) is returned with error
message via API.
2013-02-14 15:51:56 +01:00
Sebastian Ziebell 1a01fc0c96 API: tests to show incorrect behavior when reaching project limit
When reaching the project limit the API returns an error code 404 on the last possible
project. The project itself is created and is available in the database (seems valid).
A similar behavior can be observed when reaching the project limit via web client, but
in this case the user is notified that the maximum number of projects is reached. The project
itself is still created and can be accessed.

Tests are added to check the behavior when reaching the project limit or one tries
to exceed it via the API.
2013-02-14 11:13:25 +01:00
Sebastian Ziebell 54ab9bb6df API: return status code 400 if filepath of raw file blob not given 2013-02-13 14:47:59 +01:00
Sebastian Ziebell fd01f3aacd API: fixes a few return codes for project snippets
When using project snippets via API the functions now provide status codes for
different situations other then only returning 404 error. If required parameters are missing,
e.g. `title` when creating a project snippet a 400 (Bad request) error is returned. The snippet
delete function now is idempotent and returns a 200 (Ok) regardless if the snippet with the
given id is available or not. Changing return codes of these functions has the advantage that
the 404 error is used only for resources, which are not available.

Tests added to check these status codes when handling project snippets.
2013-02-13 12:09:16 +01:00
Sebastian Ziebell 375caeefcf Merge branch 'master' into fixes/api 2013-02-13 10:31:06 +01:00
Sebastian Ziebell ae40e855ef API: test checks a 400 code is returned if snippet title not given 2013-02-13 10:29:42 +01:00
Sebastian Ziebell 82bd0904ff API: test checks a 404 error is returned if snippet id not found 2013-02-13 10:25:13 +01:00
Sebastian Ziebell 7cc4339f71 API: changed status codes for project hooks functions
Different status codes in the API lib are returned on hook creation, update or deletion.
If a required parameter is not given (e.g. `url` in `/projects/:id/hooks/:hook_id`) status
code 400 (Bad request) is returned. On hook deletion a 200 status code is returned, regardless if
the hook is present or not. This makes the DELETE function an idempotent operation. Appropriate tests
are added to check these status codes.
2013-02-12 17:44:42 +01:00
Sebastian Ziebell 56b3223945 Fixes test that checks status code of hook creation 2013-02-08 18:19:59 +01:00
Sebastian Ziebell 40e7846f3e Status code 404 returned when retrieving non existent branch (issue #2922)
Accessing a repository branch that does not exist returns a 404 error instead
of 200 now. Added a test.
2013-02-08 17:04:08 +01:00
Sebastian Ziebell 9544f90389 Adding a project hook returns status code 400 if url is not given
When adding a project hook a url must be specified or a 400 error code is returned

* Specs added to check status code on handling project hooks
* refactored code, extracted a method
2013-02-08 16:48:05 +01:00
Sebastian Ziebell 818caf0b5d API: refined status code handling when adding or updating a project member
When a user is added to a project that is already a member of, a status code 201 is now returned to
signal an idempotent operation. If something fails then instead of returning error code 404 different
more specific error codes are returned. Status code 400 (Bad request) is returned when a required
attribute, e.g. `access_level` is not given or 422 if there is a semantic error, e.g. should
the `access_level` have an unsupported value.

Specs are added to check these status codes.
2013-02-08 14:33:29 +01:00
Sebastian Ziebell 8045a81bcf Merge branch 'master' into fixes/api 2013-02-08 10:32:42 +01:00
Sebastian Ziebell 5d8a99f104 Test to check a user must be part of the team to see project.
A user must be part of the team to see a protected project. A test is given
to check that a 404 error is returned if the user can not see the project.
2013-02-06 17:11:01 +01:00
Felix Gilcher ce6436b98a Don't crash when removing a user that's not project member
The attempt to revoke project access for a user that was not member of the
project results in a 500 Internal Server error where it actually should
result in a 200 OK since after the operation, the user is not member of
the project. This turns the operation into an idempotent call that can
be repeated with no ill effects.

Updated the spec and changed the code accordingly. However, the result differs
slightly, as we can't return the users project access level if the user was not
member. I'm not aware if anybody relies on the result of this call.

Fixes #2832
2013-02-01 13:53:35 +00:00
Matt Humphrey 2c7554e897 Added methods to protect and unprotect branches 2013-01-31 09:26:03 +00:00
Dmitriy Zaporozhets afbdbb0c95 Rspec fixes 2013-01-04 18:50:31 +02:00
Dmitriy Zaporozhets d431e43392 Fix few bugs and tests after refactoring ownership logic 2013-01-02 19:32:34 +02:00
Dmitriy Zaporozhets fa8f834374 Fix import rake task and tests 2012-12-23 00:15:48 +02:00
Valeriy Sizov 77d632890b refactoring gfm_autocomplete 2012-12-20 20:52:12 +02:00
Dmitriy Zaporozhets 0e1635a68a Fixing requests after namespaces. Fixed admin bug with access to project 2012-11-23 22:25:28 +02:00
Dmitriy Zaporozhets 9304d049de Fixed some tests and snippet colorize 2012-11-23 22:31:09 +03:00
Vincent Bonmalais 80fb38de7a Remove backward compatibility of factories. 2012-11-13 22:27:45 +11:00
Nihad Abbasov 0369c74e58 fix wrong test case 2012-10-19 03:28:26 -07:00
Nihad Abbasov 2dc0f098fd fix typos in specs 2012-10-19 03:25:39 -07:00
jozefvaclavik 96abbf02e3 Update spec/requests/api/projects_spec.rb
Fixed mistake with updating project hook
2012-10-12 11:30:39 +03:00
jozefvaclavik 3f2e04254f Update projects_spec.rb for Hook list and edit
Also (I think) I found few mistakes with snippets requests.
2012-10-12 11:00:59 +03:00
Nihad Abbasov 61f12da3a5 API: add project snippets listing 2012-10-08 02:13:53 -07:00
Nihad Abbasov 4a072be2d7 API: commits belong to project repository 2012-09-21 04:34:07 -07:00
Nihad Abbasov 25b745271a add API for project team members 2012-09-21 03:23:17 -07:00
Dmitriy Zaporozhets 3643df1f7c Merge pull request #1411 from miks/project_hooks_api
Project hooks API
2012-09-12 12:16:35 -07:00
Dmitriy Zaporozhets 6233fb6b5d Merge pull request #1446 from NARKOZ/refactoring
specs DRY up
2012-09-12 09:08:42 -07:00
Nihad Abbasov b6f249dc1f make API specs more organized and readable 2012-09-12 05:11:56 -07:00
miks 2e34a6d3c4 Merge branch 'master' into project_hooks_api 2012-09-10 16:47:31 +03:00
Alex Denisov a065557208 Common errors method added 2012-09-10 13:49:00 +03:00
miks 3b5a90bdf6 Projects hooks API implemented 2012-09-08 20:51:12 +03:00
miks 499ff8b441 fix failing tests 2012-09-08 19:39:10 +03:00
miks 0d1009af85 "users" GET test added 2012-09-08 17:51:28 +03:00
miks 8a3408180a move "users" test after project tests 2012-09-08 17:40:36 +03:00
miks 4226458faf Merge branch 'master' into project_users_api 2012-09-08 10:50:24 +03:00
miks 909c8c345d Make project users API more RESTful 2012-09-06 23:49:29 +03:00
miks ab057bb5db proper Grape params hash simulation 2012-09-06 10:20:59 +03:00
miks cd846ba2b5 Fix tests 2012-09-06 09:52:27 +03:00
miks 94c5054566 count against last project 2012-09-06 01:06:02 +03:00
miks 8f7360f390 API on adding users to project implemented 2012-09-05 23:01:03 +03:00
Alex Denisov 4bd3024580 json_spec removed 2012-09-04 10:29:26 +03:00
Alex Denisov b73d4419ea json_spec added. Create project via REST API fixed 2012-09-04 09:38:48 +03:00
Alex Denisov e078a173d6 Create project via API: fixes added 2012-09-03 18:00:24 +03:00
Alex Denisov c1173e2707 API on Projects creation implemented 2012-08-31 10:15:37 +03:00
Robert Speicher 232389f4e8 Clean up request specs 2012-08-25 14:19:15 -04:00
Robert Speicher b2a5344a2d Add a simple `api` method to ApiHelpers, replacing api_prefix
See docs for usage
2012-08-25 14:19:15 -04:00
Robert Speicher fba174e9bc Cleanup spec/support folder and spec/spec_helper
Changes:
* Move spec/monkeypatch to spec/support
* Remove unused support/shared_examples
* Move support/api to support/api_helpers to match module name
* Move support/login to support/login_helpers to match module name
* Move API specs to requests/api (convention over configuration)
* Remove unused support/js_patch
* Simplify login_as helper
* Move DatabaseCleaner stuff to its own support file
* Remove unnecessary configuration and requires from spec_helper
2012-08-25 14:19:15 -04:00