Commit Graph

1242 Commits

Author SHA1 Message Date
Achilleas Pipinellis 05127954cc Merge branch 'docs-document-version-for-group-milestones-api' into 'master'
Document version Group Milestones API introduced

See merge request !13787
2017-08-25 17:26:46 +00:00
Nick Thomas 061472864c Fix group and project search for anonymous users 2017-08-24 11:32:50 +01:00
Mark Fletcher 115b598d40 Document version Group Milestones API introduced 2017-08-24 14:53:47 +07:00
Kamil Trzciński 48404ada9c Merge branch 'zj-remove-ci-api-v1' into 'master'
Remove CI API v1

See merge request !13652
2017-08-21 11:44:30 +00:00
Zeger-Jan van de Weg f5b733ebdd
Fix broken links in documentation
Also, move the old linting docs to the new location.
2017-08-21 09:05:17 +02:00
Shinya Maeda 356c5a37d0 Describe the supported version of group-level variables API in document 2017-08-18 15:55:04 +00:00
Zeger-Jan van de Weg 1ffd0c8562
Remove CI API v1
This API was mainly for internal usage, and has been moved to the
general API: APIv4. The endpoints have been deprecated since 9.0, and
won't see 10.0. :)
2017-08-18 11:47:03 +02:00
Shinya Maeda 73ffcb88e9 Update project_snippets.md 2017-08-18 08:48:24 +00:00
Yorick Peterse 0395c47193
Migrate events into a new format
This commit migrates events data in such a way that push events are
stored much more efficiently. This is done by creating a shadow table
called "events_for_migration", and a table called "push_event_payloads"
which is used for storing push data of push events. The background
migration in this commit will copy events from the "events" table into
the "events_for_migration" table, push events in will also have a row
created in "push_event_payloads".

This approach allows us to reclaim space in the next release by simply
swapping the "events" and "events_for_migration" tables, then dropping
the old events (now "events_for_migration") table.

The new table structure is also optimised for storage space, and does
not include the unused "title" column nor the "data" column (since this
data is moved to "push_event_payloads").

== Newly Created Events

Newly created events are inserted into both "events" and
"events_for_migration", both using the exact same primary key value. The
table "push_event_payloads" in turn has a foreign key to the _shadow_
table. This removes the need for recreating and validating the foreign
key after swapping the tables. Since the shadow table also has a foreign
key to "projects.id" we also don't have to worry about orphaned rows.

This approach however does require some additional storage as we're
duplicating a portion of the events data for at least 1 release. The
exact amount is hard to estimate, but for GitLab.com this is expected to
be between 10 and 20 GB at most. The background migration in this commit
deliberately does _not_ update the "events" table as doing so would put
a lot of pressure on PostgreSQL's auto vacuuming system.

== Supporting Both Old And New Events

Application code has also been adjusted to support push events using
both the old and new data formats. This is done by creating a PushEvent
class which extends the regular Event class. Using Rails' Single Table
Inheritance system we can ensure the right class is used for the right
data, which in this case is based on the value of `events.action`. To
support displaying old and new data at the same time the PushEvent class
re-defines a few methods of the Event class, falling back to their
original implementations for push events in the old format.

Once all existing events have been migrated the various push event
related methods can be removed from the Event model, and the calls to
`super` can be removed from the methods in the PushEvent model.

The UI and event atom feed have also been slightly changed to better
handle this new setup, fortunately only a few changes were necessary to
make this work.

== API Changes

The API only displays push data of events in the new format. Supporting
both formats in the API is a bit more difficult compared to the UI.
Since the old push data was not really well documented (apart from one
example that used an incorrect "action" nmae) I decided that supporting
both was not worth the effort, especially since events will be migrated
in a few days _and_ new events are created in the correct format.
2017-08-10 17:45:44 +02:00
sue445 7bc0486162 Expose noteable_iid in Note 2017-08-08 11:31:55 +00:00
Rémy Coutable 10fe62ec80
Fix the /projects/:id/repository/tags endpoint to handle dots in the tag name when the project full path contains a `/`
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-08-08 11:50:58 +02:00
Rémy Coutable 0ec87b3bf0 Merge branch 'document-and-test-api-iids' into 'master'
Fix the iids parameters in the API documentation

See merge request !13340
2017-08-08 07:21:28 +00:00
Frank Pavageau e3393dbec8 Fix the iids parameters in the API documentation
Since the parameter name is really `iids[]`, it should be used consistently
across the documentation.
2017-08-07 22:43:41 +02:00
Mike Greiling 7767ceef47 Merge branch 'master' into ide
* master: (177 commits)
  Add changelog
  Bump gitlab-shell version to 5.8.0 to fix Git for Windows 2.14
  Make contextual sidebar collapsible
  Fixed sidebar context header hover colors
  Use correct `Environment`-class within `Gitlab` namespace
  Remove gl.Activities from Commits page
  Move `let` calls inside the `describe` block using them
  Add `/assign me` alias support for assigning issuables to oneself
  GRPC::Unavailable (< GRPC::BadStatus) is wrapped in a CommandError
  Use `broken_storage` in the fs_shards_spec.
  Eager load project creators for project dashboards
  Memoize a user's personal projects count
  Remove redundant query from User#recent_push
  Improve checking if projects would be returned
  Change spelling of gitlab-shell
  Remove unused #tree-holder
  Add custom linter for inline JavaScript to haml_lint
  Rename user_can_admin? because it's more accurate
  Synchronous zanata community contribution translation
  Add Korean translation to i18n
  ...
2017-08-07 15:20:09 -05:00
Douwe Maan d41479266d Add start_branch to files and commits APIs 2017-08-04 19:18:07 +02:00
Bob Van Landuyt 3598e60bf2 Add a Circuitbreaker for storage paths 2017-08-04 15:38:48 +02:00
Achilleas Pipinellis c39daf937b Merge branch 'patch-1' into 'master'
Move API "basic usage" to be more visible

See merge request !13171
2017-08-03 14:08:22 +00:00
Rémy Coutable 1b117e7f2d Merge branch 'api_project_events_target_iid' into 'master'
Expose target_iid in Events API

See merge request !13247
2017-08-02 10:34:35 +00:00
Eric fb5b2d8d0e Extending API for protected branches 2017-08-02 10:16:17 +00:00
sue445 24704acc77 Expose target_iid in Events API 2017-08-02 16:07:50 +09:00
Kamil Trzciński 8ffd40cee7 Merge branch '34519-extend-api-group-secret-variable' into 'master'
Extend API: Group Secret Variable

Closes #34519

See merge request !12936
2017-08-01 09:29:50 +00:00
AJ Jordan 97f58c7831
Explicitly spell out where the API root is
I found this basic information extrememly hard to find when I looked
at this page.
2017-07-28 14:30:42 -07:00
AJ Jordan a2ac5720ef Move API "basic usage" to be more visible 2017-07-28 21:19:05 +00:00
Dan Dunckel 04e4210785 Update documentation of user creation by replacing the 'confirm' param with 'skip_confirmation' 2017-07-28 09:53:09 -06:00
Sean McGivern 3f1b7b88c8 Merge branch 'tc-api-root-merge-requests' into 'master'
Add top-level /merge_requests API endpoint

Closes #28422

See merge request !13060
2017-07-28 07:38:58 +00:00
Robert Speicher 02b25598cb Merge branch 'bvl-add-all-settings-to-api' into 'master'
Add all ApplicationSettings attributes to the API

See merge request !12851
2017-07-27 23:55:23 +00:00
Toon Claes 39c39ae791 Modify/add some forgotten issues API documentation
Should have been part of !13004.
2017-07-28 00:08:44 +02:00
Toon Claes d77088bb0b Default /merge_request API endpoint to `scope=created-by-me`
This matches the behavior of the /issues endpoint.
2017-07-28 00:07:28 +02:00
Toon Claes d7505de8b3 Add top-level /merge_requests API endpoint
And add support for additional query parameters:
- `author_id`: Returns merge requests created by the given user `id`
- `assignee_id`: Returns merge requests assigned to the given user `id`
- `scope`: Return merge requests for the given scope: `created-by-me`, `assigned-to-me` or `all`
2017-07-27 23:34:57 +02:00
Rémy Coutable 649382b1c2 Fix the /projects/:id/repository/branches endpoint to handle dots in the branch name when the project full patch contains a `/`
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-27 14:29:31 +02:00
Sean McGivern 5e56890e31 Merge branch 'tc-issue-api-assignee' into 'master'
Add author_id & assignee_id param to /issues API

Closes #29430

See merge request !13004
2017-07-27 09:59:38 +00:00
Bob Van Landuyt c11ed138a0 Remove deprecated `repository_storage` attribute
In favor of the new `repository_storages`
2017-07-27 11:49:27 +02:00
Rémy Coutable c07dfe668e Merge branch '35204-doc-api-ci-lint-typo' into 'master'
Add link to doc/api/ci/lint.md

Closes #35204

See merge request !12914
2017-07-25 16:09:05 +00:00
Sean McGivern 1162257080 Merge branch 'issue_34622' into 'master'
Group milestones API endpoint

Closes #34622

See merge request !12819
2017-07-25 12:52:47 +00:00
Douwe Maan 5112d92a4f Merge branch 'clarify-v3-end-date-undefined' into 'master'
v3 API is unsupported after 9.5, but may not be removed

See merge request !13074
2017-07-25 12:24:55 +00:00
Sean McGivern 8758c10886 v3 API is unsupported after 9.5, but may not be removed
That is, it may not _necessarily_ be removed. We do not provide guarantees for
when API v3 will be available until beyond 9.5.
2017-07-25 11:50:09 +01:00
Oswaldo Ferreira 33dc5171e5 Resolve "More RESTful API: include resource URLs in responses" 2017-07-25 09:35:45 +00:00
Toon Claes d8798c907d Allow query param scope for /issues API endpoint 2017-07-24 22:46:02 +02:00
Toon Claes 8bf89cb4ab Add author_id & assignee_id param to /issues API
Allow issues filtering on `author_id` and `assignee_id`.
2017-07-24 22:16:14 +02:00
Felipe Artur c5c9dce270 Add group milestones API endpoint 2017-07-21 11:00:00 -03:00
Shinya Maeda 862e2c80be Document update 2017-07-19 20:57:27 +09:00
Pablo Catalina ace95b1540 Update projects.md. Fix Search project by name format and added a curl example. 2017-07-19 09:58:47 +00:00
Takuya Noguchi 67f444471e Add link to doc/api/ci/lint.md 2017-07-17 22:32:24 +09:00
Sean McGivern 1afdbe320e Merge branch 'fixes-for-internal-auth-disabled' into 'master'
Fixes needed when GitLab sign-in is not enabled

See merge request !12491
2017-07-14 08:49:36 +00:00
Robin Bobbitt 672a68d372 Fixes needed when GitLab sign-in is not enabled
When sign-in is disabled:
 - skip password expiration checks
 - prevent password reset requests
 - don’t show Password tab in User Settings
 - don’t allow login with username/password for Git over HTTP requests
 - render 404 on requests to Profiles::PasswordsController
2017-07-13 10:08:27 -04:00
Rémy Coutable 91f63820a5
Return `is_admin` attribute in the GET /user endpoint for admins
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-12 12:45:46 +02:00
Stan Hu faf9543827 Use view=simple for simplifying merge requests API 2017-07-11 08:02:13 -07:00
Stan Hu e17ac5705d Add a simple mode to merge request API
The current "basic" merge request API still loads too much data. For integrations
like the Trello Power-up, we just need the basics.

Closes #34920
2017-07-11 06:32:13 -07:00
Douwe Maan 94e2a28684 Merge branch 'feature/user-datetime-search-api-mysql' into 'master'
Add creation time filters to user search API for admins

Closes #29507

See merge request !12682
2017-07-07 20:52:17 +00:00
Douwe Maan 9a708aec4b Merge branch '20628-add-oauth-implicit-grant' into 'master'
#20628 Enable implicit flow in Gitlab as OAuth Provider

Closes #20628, #2716, and #19470

See merge request !12384
2017-07-07 18:41:32 +00:00