summaryrefslogtreecommitdiff
path: root/lib/api/entities.rb
Commit message (Collapse)AuthorAgeFilesLines
* Add time stats to issue and merge request API end pointsTravis Miller2017-08-291-1/+21
|
* Resolve new N+1 by adding preloads and metadata to issues end pointsTravis Miller2017-08-291-2/+20
|
* Merge branch 'rs-more-public-send-whitelists' into 'master'Rémy Coutable2017-08-161-2/+3
|\ | | | | | | | | Whitelist or fix additional `Gitlab/PublicSend` cop violations See merge request !13467
| * Whitelist or fix additional `Gitlab/PublicSend` cop violationsrs-more-public-send-whitelistsRobert Speicher2017-08-141-2/+3
| | | | | | | | | | An upcoming update to rubocop-gitlab-security added additional violations.
* | Enable Layout/TrailingWhitespace cop and auto-correct offensesRobert Speicher2017-08-151-1/+1
|/
* Migrate events into a new formatYorick Peterse2017-08-101-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Enable the Layout/SpaceBeforeBlockBraces coprc/enable-the-Layout/SpaceBeforeBlockBraces-copRémy Coutable2017-08-091-1/+1
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Expose noteable_iid in Notesue4452017-08-081-0/+6
|
* Fix the /projects/:id/repository/tags endpoint to handle dots in the tag ↵Rémy Coutable2017-08-081-1/+1
| | | | | | name when the project full path contains a `/` Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge branch 'bvl-nfs-circuitbreaker' into 'master'Sean McGivern2017-08-071-0/+6
|\ | | | | | | | | | | | | Circuitbreaker for storage paths Closes #32207, #33117, gitlab-com/infrastructure#1946, and gitlab-com/infrastructure#1775 See merge request !11449
| * Add a Circuitbreaker for storage pathsBob Van Landuyt2017-08-041-0/+6
| |
* | Expose more attributes to unauthenticated GET /projects/:idTony2017-08-031-14/+11
|/
* Merge branch 'api_project_events_target_iid' into 'master'Rémy Coutable2017-08-021-1/+1
|\ | | | | | | | | Expose target_iid in Events API See merge request !13247
| * Expose target_iid in Events APIsue4452017-08-021-1/+1
| |
* | Extending API for protected branchesEric2017-08-021-1/+14
| |
* | Make the attribute list for application settings reusableBob Van Landuyt2017-07-271-31/+2
|/
* Merge branch 'issue_34622' into 'master'Sean McGivern2017-07-251-2/+2
|\ | | | | | | | | | | | | Group milestones API endpoint Closes #34622 See merge request !12819
| * Add group milestones API endpointissue_34622Felipe Artur2017-07-211-2/+2
| |
* | Resolve "More RESTful API: include resource URLs in responses"Oswaldo Ferreira2017-07-251-0/+52
| |
* | Support both internal and external issue trackersJarka Kadlecova2017-07-241-1/+1
|/
* Merge branch 'fixes-for-internal-auth-disabled' into 'master'Sean McGivern2017-07-141-1/+2
|\ | | | | | | | | Fixes needed when GitLab sign-in is not enabled See merge request !12491
| * Fixes needed when GitLab sign-in is not enabledRobin Bobbitt2017-07-131-1/+2
| | | | | | | | | | | | | | | | | | 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
* | Add a simple mode to merge request APIsh-add-mr-simple-modeStan Hu2017-07-111-0/+7
|/ | | | | | | 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
* Remove remaining N+1 queries in merge requests API with emojis and labelsStan Hu2017-07-081-2/+18
| | | | Closes #34159
* Merge branch 'feature/user-agent-details-api' into 'master'Douwe Maan2017-07-071-0/+6
|\ | | | | | | | | | | | | Allow admins to retrieve user agent details for an issue or snippet Closes #29508 See merge request !12655
| * refactor code based on feedbackJames Lopez2017-07-061-1/+1
| |
| * add issues spec and user agent details to entitiesJames Lopez2017-07-061-0/+6
| |
* | Native group milestonesFelipe Artur2017-07-071-2/+7
| |
* | Fix some N+1 queries in the GET /projects APIRémy Coutable2017-07-071-2/+10
|/ | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge branch '33772-readonly-gitlab-ci-cache' into 'master'Kamil Trzciński2017-07-061-1/+1
|\ | | | | | | | | | | | | Introduce cache policies for CI jobs Closes #33772 See merge request !12483
| * Introduce cache policies for CI jobsNick Thomas2017-07-051-1/+1
| |
* | Merge branch '32815--Add-Custom-CI-Config-Path' into 'master'Grzegorz Bizon2017-07-061-0/+1
|\ \ | | | | | | | | | | | | | | | | | | Resolve "Project option to allow customizing CI/CD config path" Closes #32815 and #33130 See merge request !12509
| * | Rename ci_config_file to ci_config_pathLin Jen-Shin2017-07-051-1/+1
| | |
| * | Merge remote-tracking branch 'upstream/master' into ↵Lin Jen-Shin2017-06-301-1/+9
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 32815--Add-Custom-CI-Config-Path * upstream/master: (123 commits) Backport changes to Projects::IssuesController and the search bar bugfix: use `require_dependency` to bring in DeclarativePolicy Resolve "Select branch dropdown is too close to branch name" Clean up issuable lists Defer project destroys within a namespace in Groups::DestroyService#async_execute Fixed new navgiation bar logo height in Safari Resolve "Issue dropdown persists when adding issue number to issue description" Move verification to block level instead of paragraph Revert "Merge branch 'dm-drop-default-scope-on-sortable-finders' into 'master'" Added code for defining SHA attributes Minor edits Job details won't scroll horizontally to show long lines Run mysql tests on stable preperation branches like 9-3-stable-patch-2 Bring back branches badge to main project page optimize translation content based on comments supplement traditional chinese in taiwan translation Inserts exact matches of username, email and name to the top of the user search list Remove Namespace model default scope override and write additional test to Project search optimize translation content based on comments Limit OpenGraph image size to 64x64 ...
| * | Merge remote-tracking branch 'upstream/master' into ↵15041-Add-Custom-CI-Config-PathLin Jen-Shin2017-06-281-104/+338
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 15041-Add-Custom-CI-Config-Path * upstream/master: (12506 commits) Update CHANGELOG.md for 9.3.2 Update architecture.md Fix changelog entry file extension Fix head pipeline stored in merge request for external pipelines updated gitlab-ci.yml to compile locale Ignore JSON files generated from PO files Update mmap2 gem tha disables mmap_obj.gsub! as current implementation uses method that is no longer part of Ruby API Disable rainbow during SimpleExecutor specs to have consistence Slightly refactor pipeline schedules form in preparation for additions Resolve "Submitting reply to existing diff discussion using Cmd/Ctrl+Enter submits twice and refreshes page" Make the SimpleExecutor rescue exceptions in the executing Checks Resolve "Unable to access edit comment from dropdown menu in certain screen sizes" Update changelog item revert removal of requestAnimationFrame and move to a separate MR/discussion rename getEmojiCategoryMap and remove unnecessary parameter Action Buttons on Prio Labels working again by setting pointer events to none on… Remove 'contains' option from Commit.find_all Remove Gitlab::Git::Repository#find_all Use latest chrome and chrome driver in GitLab QA Polish sidebar toggle ...
| * | | Add config option to project to allow custom .gitlab-ci.yml locationKeith Pope2016-10-081-0/+1
| | | |
* | | | Create and use project path helpers that only need a project, no namespaceDouwe Maan2017-07-051-1/+1
| |_|/ |/| |
* | | Rename members_count to members_count_with_descendants and expose only to ↵Oswaldo Ferreira2017-06-281-2/+6
| | | | | | | | | | | | group admins
* | | Add "members_count" and "parent_id" data on namespaces APIOswaldo Ferreira2017-06-281-1/+5
| |/ |/|
* | Enable Style/DotPosition Rubocop :cop:Grzegorz Bizon2017-06-211-3/+3
| |
* | Merge branch 'dt/printing-to-api' into 'master'Rémy Coutable2017-06-211-0/+1
|\ \ | | | | | | | | | | | | add printing_merge_request_link_enabled to API See merge request !12240
| * | add printing_merge_request_link_enabled to APIDavid Turner2017-06-191-0/+1
| | |
* | | Re-instate is_admin flag in users API is current user is an adminMike Ricketts2017-06-201-2/+5
|/ /
* | Merge branch 'help-landing-page-customizations' into 'master'Douwe Maan2017-06-141-0/+3
|\ \ | | | | | | | | | | | | Allow more customization to Help landing page See merge request !11878
| * | Help landing page customizationsRobin Bobbitt2017-06-141-0/+3
| | |
* | | Rename API::Entities::JobRequest::ServiceImage to ↵Tomasz Maczukin2017-06-121-2/+2
| | | | | | | | | | | | API::Entities::JobRequest::Service
* | | Send new configuration options with job's payloadTomasz Maczukin2017-06-121-2/+6
|/ /
* | Merge branch '12910-snippets-description' into 'master'Phil Hughes2017-06-071-2/+2
|\ \ | | | | | | | | | | | | | | | | | | Support descriptions for snippets Closes #31894 See merge request !11071
| * | Support descriptions for snippetsJarka Kadlecova2017-05-311-2/+2
| | |
* | | Merge branch 'projects-api-import-status' into 'master'Douwe Maan2017-06-021-0/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Expose import_status in Projects API Closes #19646 See merge request !11851