Skip to content
Snippets Groups Projects

Merge request widget redesign

Merged username-removed-502136 requested to merge mr-widget-redesign-review into master
All threads resolved!

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • @fatihacet or @oswaldo will you make a comment / ping me when conflicts are resolved here, so I can begin a patch for EE?

    Edited by username-removed-408230
  • Sure thing @brycepj.

    @fatihacet Have started adjusting the conflicts. Feel free to push the conflicts that you're not able to fix and ping me Fatih.

  • added 534 commits

    • 8c6d68be...f7fefe82 - 458 commits from branch master
    • 55137c45 - Expose more information in merge request serializer
    • f618a231 - Make sure source_project is set when call MergeRequest#can_remove_source_branch? method
    • b05386a1 - Refactor MergeRequestEntity for serializer
    • 2f4675ab - MRWidget: Initial commit.
    • 1f498ed8 - MRWidget: Merged and Closed states with Store.
    • 1f69120d - MRWidget: Add locked state.
    • 825cbb33 - MRWidget: Add WIP state.
    • 38f47c47 - MRWidget: Add archived state.
    • 9ebec0c1 - MRWidget: Address MR feedbacks.
    • 16b3f184 - MRWidget: Linter fixes.
    • d96b7445 - MRWidget: MR changes. Mostly import and export.
    • a9f5fc9f - Replace stubbed data in merge request entity with real one
    • e263425c - MRWidget: Resurrect lost files and add new states.
    • 8082dec4 - MRWidget: Refactor store to set MR state properly.
    • 02d2ec58 - MRWidget: Add conflict resolution path.
    • 25e99ec0 - MRWidget: Show buttons in WIP widget if user can update MR.
    • 5155d5c4 - MRWidget: Implement remove source branch.
    • 9e8d8730 - MRWidget: Use component tag to remove multiple component tags.
    • e78a710b - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • b4e69964 - MRWidget: Implemented ready to merge widget.
    • 6fcdee7d - MRWidget: Implement service and pass to components.
    • 25c65569 - MRWidget: Implement merge action with current state of backend.
    • da920237 - MRWidget: Address minor MR feedbacks.
    • dee01c0b - MRWidget: Implemented checking state.
    • 505d9441 - MRWidget: Add help widget to RTM state.
    • df4d373a - MRWidget: Export new fields and add them to store.
    • c17be8f7 - MRWidget: Implement missing features in header.
    • cfddb7a0 - MRWidget: Rename files for consistency.
    • 9e2deb99 - MRWidget: Expose MR pipeline using PipelineEntity.
    • 53422e26 - MRWidget: Implement CI status in MR widget.
    • b9f7f5ac - MRWidget: Make SVG computed to update dynamically.
    • a08e73b9 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • a55880ef - MRWidget: Review fixes. Mostly remove default data from required props.
    • 1f88a98f - MRWidget: Add TODO and FIXME comments for backend changes.
    • 3b241d61 - MRWidget: Show pipeline status for conflicts state.
    • 24f5273a - MRWidget: Make merge button red if pipeline failed.
    • 2f8a67c4 - MRWidget: Advanced options for merge button.
    • 806542f0 - Add tests to MergeRequestSerializer
    • 7ca283bd - MRWidget: Advanced options for merge button.
    • a59df620 - MRWidget: Handle failed pipeline if project is only MWPS.
    • 62e203de - Adjust target_branch_path link
    • 6d1497a1 - Remove TODO comment
    • bf69cf17 - MRWidget: Make remove branch default.
    • 7806d0a1 - MRWidget: Review fixes for !9877 (merged).
    • 36a56a8f - MRWidget: Implemented unresolved discussions state.
    • 16eefda8 - MRWidget: Fix unresolved discussion state.
    • 6f03bba7 - MRWidget: Implement blocked pipeline state.
    • fa82e1f7 - Add related/closing issues sentences data to MergeRequestSerializer
    • 50109d54 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • 8f7f3d71 - Use current_user instead user for request objects used on Entities
    • c98b8111 - Handle JSON requests for "/merge"
    • 42d191dd - Alter TODO comments to further improve their trackability
    • 8e311508 - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 4933e2dc - MRWidget: Refactor to move merge help widget into main component.
    • 453ead69 - MRWidget: Refactor to move pipelines into main component.
    • d87b31ae - MRWidget: Implemented related links widget.
    • 3c117949 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 29dfae14 - MRWidget: Make issue and verb text methods easier.
    • aa75ec66 - VuePipelines: Refactor code to reuse svg maps.
    • 859cab5a - MR Widget Refactor Part 7
    • eb2d969c - Handle JSON requests for branch removal
    • e241d7c9 - MRWidget: Implemented remove WIP.
    • 3f505b43 - MRWidget: Fix missing prop in locked state.
    • 7e463d2b - MRWidget: Fix pipeline passed icon color.
    • 4b466de4 - MRWidget: Implement remove source branch in Merged state.
    • 855c8f30 - Add basic MergeRequest serializer
    • cf22cb11 - MRWidget: Improve code styling and remove some eslint flags.
    • 92fa2e41 - MRWidget: Prefer group info in pipeline status icon.
    • 31cc7945 - MRWidget: Implemented deployments component.
    • a1381a46 - MRWidget: Remove polling.
    • 82e66cee - MRWidget: Minor code styling.
    • 8706854a - MRWidget: Import datetime utils.
    • 3800d037 - MRWidget: Only render template element if there is a relatead link.
    • f7c4645a - MRWidget: Group merge conflict buttons.
    • f509919c - MRWidget: Make things good looking 😎
    • 415378ce - MRWidget: Fix unresolved discussions state.

    Compare with previous version

  • Jacob Schatz added 27 commits

    added 27 commits

    • 0616d633 - MRWidget: Fix existing widget JS bug.
    • fdefef84 - MRWidget: Improve deployment component template and methods.
    • c7c71beb - MRWidget: Added component tests.
    • ae4ab5a1 - Move CI related info to MR / Pipeline serializers
    • 23ffee44 - MRWidget: Fixed and improved tests.
    • 0007d5d0 - MRWidget: Fix locked component reference error.
    • a1298d76 - MRWidget: Fix deployment spec datetime issue.
    • ff783d7f - MRWidget: Add new tests for widget states.
    • 8f91b326 - MRWidget: Fix status icon in the deploy widget.
    • 94bfafb5 - MRWidget: Fix coverage info on existing MR.
    • 3f21a19a - MRWidget: Implemented coverage info.
    • 21689fea - MRWidget: Remove unused component in deployment component.
    • e7e03162 - MRWidget: Implement CI error state in pipeline component.
    • 60eda891 - Return the updated MR as json on merge_check endpoint
    • 6a0d8227 - MRWidget: Fetch merge data if the MR status is unchecked.
    • e29f6ba2 - MRWidget: Move deployment endpoint data set to root component.
    • bb06eadc - MRWidget: ESLint fixes.
    • 6d780f60 - MRWidget: Export checkStatus method.
    • 4fc42b0f - MRWidget: Call checkStatus to update widget in necessary places.
    • daea61e3 - MRWidget: Styling improvements.
    • 0154948a - MRWidget: Change merge button class to danger.
    • de91c103 - MRWidget: Update widget when note is added.
    • c62d4ce4 - MRWidget: Fix some styling.
    • 543ee3d3 - MRWidget: Use deployments data if exists.
    • 444d80e8 - MRWidget: Minor code styling.
    • 8723fa43 - MRWidget: Add nofollow to links.
    • 599eb654 - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • username-removed-502136 marked as a Work In Progress

    marked as a Work In Progress

  • @brycepj this MR is ready for you to move EE. Latest waiting part is already merged and included in here.

  • @fatihacet There are several conflicts that occur when I try applying the diff to EE:

    Screen_Shot_2017-03-30_at_1.46.13_PM

    Having looked at some of the conflicts, I don't think it's going to be easy to resolve them without involving the people who committed the conflicts.

    We're going to have to resolve these at some point, but I'm not sure: should we do it now? The way I see it, it would be good to start now, unless many more conflicts will arise when we remove the original mr widget code or if some of the current conflicts will be resolved when the old code is removed.

    Maybe it will be easier to backport approvals frontend code to CE and work on it there. I wouldn't be able to actually work with the server or database, but at least I'd be able to start integrating it directly with your code without having to first resolve these conflicts.

    WDYT?

    Edited by username-removed-408230
  • Maybe it will be easier to backport approvals frontend code to CE and work on it there. I wouldn't be able to actually work with the server or database, but at least I'd be able to start integrating it directly with your code without having to first resolve these conflicts.

    That sounds like a good plan. I think let's do it first then start working on the conflicts ASAP.

  • @brycepj @fatihacet wdyt on pushing those conflicts so we can address these together on the EE branch?

  • When I started trying to integrate approvals components, I realized that there are a few entities in the MR widget code that need to be extensible for EE. Since this isn't my MR and I'm just trying to help out, I wanted to run my thoughts by you, @fatihacet, and see what you think.

    The more I think about it, the more I believe we want to avoid using conditionals (e.g. by setting and getting an isEE property), because we'll end up writing if/else blocks any time the behavior in CE differs from EE. That will become conflict-prone and error-prone quickly I think.

    We also need to be able to extend CE code in multiple ways, which will require more than conditional checks. As far as I can tell, EE code will need to extend the CE MR Widget in the following places:

    • MR Widget Store
    • MR Widget Service
    • Adding top-level components (deployments/pipelines/approvals)
    • Adding state components (conflics/locked/geo)
    • Extending state components (squash)
    • State Maps ( stateToComponentMap, statesToShowHelpWidget )
    • Vue config properties ( components, methods, template )
    • setting the order of if blocks evaluated insetState

    The following is how I propose we keep EE code separate from CE code, so that CE code needs to know nothing about EE code, while allowing us to keep EE code completely DRY.

    1. Limit potential CE/EE conflicts to one file

    Currently, index.js explicitly imports all of its own dependencies:

    import Vue from 'vue';
    import WidgetHeader from './components/mr_widget_header';
      // ...
    import MergedState from './components/states/mr_widget_merged';
      // ...
    import MergeWhenPipelineSucceedsState from './components/states/mr_widget_merge_when_pipeline_succeeds';
    import MRWidgetStore from './stores/mr_widget_store';
    import MRWidgetService from './services/mr_widget_service';
    import { stateToComponentMap, statesToShowHelpWidget } from './stores/state_maps';

    Instead, we could add one layer of abstraction, moving file declarations to a dependencies_index.js file.

    In CE dependencies_index.js would look like this:

    export MergeRequestStore from './stores/mr_widget_store';
    export MergeRequestService from './stores/mr_widget_store';
    export { stateToComponentMap, statesToShowHelpWidget } from './stores/mr_widget_store';
    export * from './components/states'
    export * from './components/'
    export VueConfig from './ee/vue_config'
    // all other dependencies...

    While in EE it would look like this (note different file paths):

    export MergeRequestStore from './ee/stores/mr_widget_store'
    export MergeRequestService from './ee/stores/mr_widget_store';
    export { stateToComponentMap, statesToShowHelpWidget } from './ee/stores/mr_widget_store';
    export * from './ee/components/states'
    export * from './ee/components'
    export VueConfig from './ee/vue_config'
    // all other dependencies...

    That way, index.js will look the same for EE and CE (but we can keep all EE code in a separate folder).

    import {
      MergeRequestStore, 
      MergeRequestService,
      stateToComponentMap, 
      statesToShowHelpWidget,
      VueConfig
    } from 'dependencies.js'

    2. Subclassing

    We could pretty easily extend MergeRequestStore and MergeRequestService in EE this way:

    MergeRequestStore in CE (./stores/mr_widget_store'):

    export default class MergeRequestStore {
      // ...
    }

    MergeRequestStore in EE ('./ee/stores/mr_widget_store')

    import MergeRequestStore as CEMergeRequestStore from '../stores/mr_widget_store'
    
    export default class MergeRequestStore extends CEMergeRequestStore {
      // ...
    }

    Then we'd just import them in depencies_index.js using their different paths. We could extend the MergeRequestService in the same way.

    3. Extending plain object and arrays

    I believe we'll need to make stateToComponentMap and stateToShowHelpWidget extensible, as well as all of the Vue config properties. We'd need to make these values import-able, and allow EE modules to extend them (with Object.assign and/or [].push) and then export them through dependencies_index.js.

    It can be more complicated than using Object.assign or [].push in some cases. For example, we need to be able to run through the chain of if blocks in setState in an explicit order. In order to make this extensible, we could replace if blocks with an iterable for EE can extend:

    stateReducers in CE:

    export const stateReducers = [
      (data) => data.project_archived ? 'archived' : false,
      (data) => (this.onlyAllowMergeIfPipelineSucceeds && this.isPipelineFailed) ? 'pipelineFailed' : false,
    ]

    stateReducers in EE:

    import stateReducers as from './stores/state_reducers';
    
    const geoReducer = (data) => data.geo ? 'geo' : false;
    
    stateReducers.splice(3, 0, geoReducer)
    
    export default stateReducers;
    

    setState in the MergeRequestStore:

    import StateReducers from '../ee/stores/state_reducers'
    
    ... 
    
    setState() {
      if (this.isOpen) {
        stateReducers.find((reducer) => {
          const stateKey = reducer.apply(this, data);
          return stateKey ? this.state = stateKey : stateKey;
        });
      }
    }
    

    Currently, it's a little tricky if we need to add a 'top-level component' to the main template string, which we need to do for approvals. We could make it extensible this way:

    template_string.js in CE:

    export default [
      '<mr-widget-header :mr="mr" />', 
      '<mr-widget-pipeline v-if="shouldRenderPipelines" :mr="mr" />',
      '<mr-widget-deployment v-if="shouldRenderDeployments" :mr="mr" />',
      '<component :is="componentName" :mr="mr" :service="service" />',
      '<mr-widget-related-links v-if="shouldRenderRelatedLinks" :related-links="mr.relatedLinks" />'
      '<mr-widget-merge-help v-if="shouldRenderMergeHelp" />'
    ]

    template_string.js in EE:

    import templateString as from './config/template_string';
    
    const approvalsTemplate = '<mr-widget-approvals v-if="shouldRenderApprovals" :mr="mr" :service="service"/>';
    
    templateString.splice(3, 0, approvalsTemplate)
    
    export default templateString;

    The Vue template property in index.js:

    const componentHead = '<div class="mr-state-widget prepend-top-default">';
    const componentTail = '</div>';
     
    template: `${templateHead}${templateString.join('')}${templateTail}`;

    Okay, that's all for now! Thanks for reading. A quick disclaimer: I could probably have gone into more detail, but I didn't want to spend too much time on this without feedback. The code samples probably have errors and aren't necessarily exactly how I'd write things if I gave it more thought. I just wanted to give you a general idea of what I have in mind.

    Edited by username-removed-408230
  • @brycepj thank you for this great research. Here is my comments.

    I'm just trying to help out

    You are the king 👑

    by setting and getting an isEE property

    That's right. This will make CE code unnecessarily complicated, hard to maintain and error prone.

    1. Limit potential CE/EE conflicts to one file

    That'a great idea and will help us a lot to avoid conflicts. Big 👍

    1. Subclassing

    I really love this idea. Especially the import ... as ... part. I was wondering how we can start using EEMergeRequestStore instead of CE one. Because I was thinking two of them will live at the same time but your approach is better. We don't need to have MergeRequestStore in CE so we can completely override it. Makes a lot sense 👍

    1. Extending plain object and arrays

    This seems quite complicated and error prone. I think it's complicated because all those reducers and error prone because splice. This will be quite hidden logic in EE and if we want to add a new state to EE, this will probably misleading or buggy because stateReducers.splice(3, 0, geoReducer). I propose something like this.

    I believe the only part we will need to change is the ordered if block inside the setState method of store.

        if (this.isOpen) {
          if (data.project_archived) {
            this.state = 'archived';
          } else if (data.branch_missing) {
            this.state = 'missingBranch';
          } 
          ...
          ...
        }

    What if we make the inner if statements a function and move to another file and in the store we call that function to return us the little state string. Then we will refactor CE code to call that function and set state. In the EE part we will override that function like you proposed in second item and we will be free to change it. The only disadvantage of this approach is probably we will need to have c/p of the same if/else if blocks in two project but I think the outcome of it will be huge. Easy to understand and easy to change etc. Let me know WDYT?

    Currently, it's a little tricky if we need to add a 'top-level component' to the main template string

    I am not sure what you mean with 'top-level-component' but I think all of the EE states will be plug and play to current architecture and we don't need to change the template string in the index file. It's because you will create your component in EE, and add it to stateToComponentMap then existing code will know which component to render. If MR state is related with Geo it will render EE Geo component or if MR state is related with Approvals it will render EE Approvals component etc. I think all we need to is add state and component to stateToComponentMap and require the component you will write in EE as you proposed in first item. Is that correct? What am I missing here?

    A quick disclaimer: I could probably have gone into more detail, but I didn't want to spend too much time on this without feedback.

    I thought you wrote this all in details and when I see your comment I was like 😮

    The code samples probably have errors and aren't necessarily exactly how I'd write things if I gave it more thought.

    I totally understand and the same for me :)

    I just wanted to give you a general idea of what I have in mind.

    Thank you for doing this I appreciated 👍 👍 👍

  • Filipa Lacerda added 11 commits

    added 11 commits

    • 8ee7b727 - MRWidget: TODO messages for error handling.
    • 6185ced3 - MRWidget: Introduce eventHub.
    • 1b41181d - MRWidget: Update widget when MWPS set.
    • bbddc405 - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • e40721dd - MRWidget: Update widget after remove source branch.
    • 8c99c59c - Utils: Added simple poll utility.
    • 4380299c - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 04894a84 - MRWidget: Implement polling after merge action.
    • 7e46d6ce - MRWidget: Initially do merge_check request.
    • f674af04 - MRWidget: Add loading icon to merge button.
    • 60cd0485 - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • added 181 commits

    • 60cd0485...53b21c1e - 69 commits from branch master
    • 772ebb5b - Expose more information in merge request serializer
    • 13a88edb - Make sure source_project is set when call MergeRequest#can_remove_source_branch? method
    • acde932e - Refactor MergeRequestEntity for serializer
    • 394add99 - MRWidget: Initial commit.
    • b2b19e83 - MRWidget: Merged and Closed states with Store.
    • 0a0d8f38 - MRWidget: Add locked state.
    • 5362a62b - MRWidget: Add WIP state.
    • 239a12b0 - MRWidget: Add archived state.
    • 60184f67 - MRWidget: Address MR feedbacks.
    • c2af9f69 - MRWidget: Linter fixes.
    • eaa33821 - MRWidget: MR changes. Mostly import and export.
    • 53607d25 - Replace stubbed data in merge request entity with real one
    • 14400507 - MRWidget: Resurrect lost files and add new states.
    • 5c7e3ebc - MRWidget: Refactor store to set MR state properly.
    • b3087185 - MRWidget: Add conflict resolution path.
    • 2fac8283 - MRWidget: Show buttons in WIP widget if user can update MR.
    • 798d094a - MRWidget: Implement remove source branch.
    • 9cd97026 - MRWidget: Use component tag to remove multiple component tags.
    • af03510a - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • c63e757c - MRWidget: Implemented ready to merge widget.
    • 0a2f31c9 - MRWidget: Implement service and pass to components.
    • 14fb0833 - MRWidget: Implement merge action with current state of backend.
    • 9bd4f0ca - MRWidget: Address minor MR feedbacks.
    • f32efbf0 - MRWidget: Implemented checking state.
    • cd8e869e - MRWidget: Add help widget to RTM state.
    • 31125738 - MRWidget: Export new fields and add them to store.
    • 2a3f9af4 - MRWidget: Implement missing features in header.
    • a10eaab0 - MRWidget: Rename files for consistency.
    • 02f72cd9 - MRWidget: Expose MR pipeline using PipelineEntity.
    • 9370bd0b - MRWidget: Implement CI status in MR widget.
    • 5accecdb - MRWidget: Make SVG computed to update dynamically.
    • b838b0b1 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • 4e6b0123 - MRWidget: Review fixes. Mostly remove default data from required props.
    • 2c08d9dc - MRWidget: Add TODO and FIXME comments for backend changes.
    • ecfd8cba - MRWidget: Show pipeline status for conflicts state.
    • 46bc9988 - MRWidget: Make merge button red if pipeline failed.
    • 3341cd24 - MRWidget: Advanced options for merge button.
    • a6aab101 - Add tests to MergeRequestSerializer
    • 363b16eb - MRWidget: Advanced options for merge button.
    • 3a781890 - MRWidget: Handle failed pipeline if project is only MWPS.
    • ab3eef8e - Adjust target_branch_path link
    • b6e8770f - Remove TODO comment
    • 126a5fd7 - MRWidget: Make remove branch default.
    • 88606ce9 - MRWidget: Review fixes for !9877 (merged).
    • cd0507bb - MRWidget: Implemented unresolved discussions state.
    • f989a126 - MRWidget: Fix unresolved discussion state.
    • 3e9a8bf9 - MRWidget: Implement blocked pipeline state.
    • 316b3f13 - Add related/closing issues sentences data to MergeRequestSerializer
    • 15b84970 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • abf88efa - Use current_user instead user for request objects used on Entities
    • 3cadbfd8 - Handle JSON requests for "/merge"
    • 3ce1d4ef - Alter TODO comments to further improve their trackability
    • ce7f5b73 - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 806dbb51 - MRWidget: Refactor to move merge help widget into main component.
    • ff73a48a - MRWidget: Refactor to move pipelines into main component.
    • c20c2a9e - MRWidget: Implemented related links widget.
    • 0b3a13f3 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 12efd389 - MRWidget: Make issue and verb text methods easier.
    • 031927ab - VuePipelines: Refactor code to reuse svg maps.
    • 966a21ba - MR Widget Refactor Part 7
    • 2af4c248 - Handle JSON requests for branch removal
    • eb15d446 - MRWidget: Implemented remove WIP.
    • 5b6fcdad - MRWidget: Fix missing prop in locked state.
    • 198a0f6d - MRWidget: Fix pipeline passed icon color.
    • 30b69300 - MRWidget: Implement remove source branch in Merged state.
    • 3058c601 - Add basic MergeRequest serializer
    • bf2c120e - MRWidget: Improve code styling and remove some eslint flags.
    • eb9e92c3 - MRWidget: Prefer group info in pipeline status icon.
    • d64c7323 - MRWidget: Implemented deployments component.
    • 64f60231 - MRWidget: Remove polling.
    • a2124ba7 - MRWidget: Minor code styling.
    • f0e227bb - MRWidget: Import datetime utils.
    • 5dd3047e - MRWidget: Only render template element if there is a relatead link.
    • 366a1ec3 - MRWidget: Group merge conflict buttons.
    • 489e92b3 - MRWidget: Make things good looking 😎
    • 8444f99c - MRWidget: Fix unresolved discussions state.
    • 24fbf6e6 - MRWidget: Fix existing widget JS bug.
    • 66e49002 - MRWidget: Improve deployment component template and methods.
    • 1c97d8da - MRWidget: Added component tests.
    • 76690a57 - Move CI related info to MR / Pipeline serializers
    • 903d72d5 - MRWidget: Fixed and improved tests.
    • 9169ed8b - MRWidget: Fix locked component reference error.
    • 1a31e672 - MRWidget: Fix deployment spec datetime issue.
    • a95dfea3 - MRWidget: Add new tests for widget states.
    • 314fb89d - MRWidget: Fix status icon in the deploy widget.
    • d5047249 - MRWidget: Fix coverage info on existing MR.
    • 60e7bb84 - MRWidget: Implemented coverage info.
    • ed7fc326 - MRWidget: Remove unused component in deployment component.
    • 7c5b2e08 - MRWidget: Implement CI error state in pipeline component.
    • d1d4ed14 - Return the updated MR as json on merge_check endpoint
    • 7343069b - MRWidget: Fetch merge data if the MR status is unchecked.
    • c5b2b532 - MRWidget: Move deployment endpoint data set to root component.
    • 0afc2442 - MRWidget: ESLint fixes.
    • 4e3738be - MRWidget: Export checkStatus method.
    • 676599cd - MRWidget: Call checkStatus to update widget in necessary places.
    • 6b7d612f - MRWidget: Styling improvements.
    • 85b9b43d - MRWidget: Change merge button class to danger.
    • a05a2d51 - MRWidget: Update widget when note is added.
    • 9bafdcb7 - MRWidget: Fix some styling.
    • 647e9ce5 - MRWidget: Use deployments data if exists.
    • b3ba6631 - MRWidget: Minor code styling.
    • a4f810da - MRWidget: Add nofollow to links.
    • ccaf712c - MRWidget: TODO messages for error handling.
    • 09564897 - MRWidget: Introduce eventHub.
    • f42fcdf1 - MRWidget: Update widget when MWPS set.
    • 2d95d54d - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • 5eea53c1 - MRWidget: Update widget after remove source branch.
    • cb07a28f - Utils: Added simple poll utility.
    • c21a6f6e - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 4bde3620 - MRWidget: Implement polling after merge action.
    • 5525d902 - MRWidget: Initially do merge_check request.
    • bc45d86c - MRWidget: Add loading icon to merge button.

    Compare with previous version

  • @fatihacet I think most of this work will need to happen in CE... would you like me to work on it now, or would that just make things more complicated for you?

    Edited by username-removed-408230
  • added 1 commit

    Compare with previous version

  • @brycepj that would be harder for me. If you need those changes at this moment I can start doing that, let me know.

  • @fatihacet I don't have a lot I can do on this before then. Yesterday, I went through the approvals code and moved things around so that they're more or less ready to pull in, once CE is extensible. I could also do the same with other EE components in the meantime, if that would help.

    Edited by username-removed-408230
  • added 1 commit

    • f64cedfd - Adjust PipelineSerializer specs

    Compare with previous version

  • Regarding the logic for showing "Revert" and "Cherry-pick" buttons.

    @fatihacet Please take a look on merge_requests/widget/_merged_buttons.html.haml.

    Today we have a logic on backend to handle the building for each of those links. I.e. checking if a user can collaborate on a project to show the button, if not, check if one can Fork a project. This way we can properly show those actions for the current MR, or proceed with it on a fork. I'm yet not convinced that we should move all this logic (https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/helpers/commits_helper.rb#L175-195) to FE, but also not completely happy by returning HTML on JSON, but for a first step I'd go for the latter. I'd really appreciate a BE perspective here, wdyt @smcgivern?

  • Also, feel free to express your opinion on the comment above @brycepj 😄

  • What if we make the inner if statements a function and move to another file and in the store we call that function to return us the little state string. Then we will refactor CE code to call that function and set state. In the EE part we will override that function like you proposed in second item and we will be free to change it. The only disadvantage of this approach is probably we will need to have c/p of the same if/else if blocks in two project but I think the outcome of it will be huge. Easy to understand and easy to change etc. Let me know WDYT?

    @fatihacet Yeah, this is similar to the issue we're discussing here. It could work that way -- it just means having to maintain two copies of the same code. I agree with you that the breaking up the ifblocks/reducers into an array and iterating over them and/or splicing in additional if blocks/reducers in EE might be confusing. So there are pros and cons either way.

    I think if I had to choose, I'd avoid having to maintain two copies of the code, but I can understand if that's less preferable to you. Maybe we can start with having two copies, and if there start to be maintenance headaches, we can work on finding a better abstraction.

    Edited by username-removed-408230
  • Maybe we can start with having two copies, and if there start to be maintenance headaches, we can work on finding a better abstraction.

    @brycepj that sounds a great plan to me. We should always focus on the developer time and ease of maintenance in the first place. And this way should be much faster to change.

  • @oswaldo can you describe the problem in more detail, please? From the method you linked, I think we could return this from the backend:

    • can_collaborate_with_project?
    • can?(current_user, :fork_project, @project)
    • fork_path

    And that would be enough information for the frontend to reconstruct these links. Does that make sense to you? Is that even what you were asking? 😃

  • Thanks @smcgivern, it's not exactly a problem, would just like a second opinion on that particular case (moving this logic to FE or not). You got the idea 😄

  • Jacob Schatz added 18 commits

    added 18 commits

    • d82e6a7d - MRWidget: Don't prefer array destructuring.
    • c83a0a3b - MRWidget: Change prop name to avoid confusions.
    • 47b40c51 - MRWidget: Improve merge buttons.
    • 0a98b45f - Expose stages in ci_status endpoint.
    • 55dea41e - MRWidget: Expose ci_status_path.
    • bd6d1756 - MRWidget: Make pipelines empty object as default.
    • 5088a03f - MRWidget: Implement CI polling.
    • 6cf342c2 - Move MR widget imports to dependencies.js.
    • 889e26c0 - Abstract out deviseState from setState.
    • b9e7f779 - Make dependencies import multi-line.
    • ea5c0d93 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • bc054ffd - Make baseComputed extensible.
    • 4bf6e1d7 - Make mrWidgetOptions extensible and revert config dir.
    • 1b4edc8c - Handle environment stopping as JSON
    • 7754e379 - Pipelines: Make stage svg a computed property.
    • 94fa6ea7 - MRWidget: Update pipelines data only if we have new status.
    • 990532cd - MRWidget: Show some respect to ESLint.
    • e2f4edc0 - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • added 200 commits

    • e2f4edc0...97c49b84 - 69 commits from branch master
    • bc4f0fe5 - Expose more information in merge request serializer
    • b1b8b95b - Make sure source_project is set when call MergeRequest#can_remove_source_branch? method
    • 81cb52d1 - Refactor MergeRequestEntity for serializer
    • 9f9c8f34 - MRWidget: Initial commit.
    • 449a9b9b - MRWidget: Merged and Closed states with Store.
    • da00461f - MRWidget: Add locked state.
    • 63415440 - MRWidget: Add WIP state.
    • bcaba2b6 - MRWidget: Add archived state.
    • 92548b39 - MRWidget: Address MR feedbacks.
    • 581d5c60 - MRWidget: Linter fixes.
    • 46093c94 - MRWidget: MR changes. Mostly import and export.
    • 5c01935e - Replace stubbed data in merge request entity with real one
    • ee3981d2 - MRWidget: Resurrect lost files and add new states.
    • a6c37c55 - MRWidget: Refactor store to set MR state properly.
    • 69bb11a0 - MRWidget: Add conflict resolution path.
    • 93518087 - MRWidget: Show buttons in WIP widget if user can update MR.
    • 50cef3e6 - MRWidget: Implement remove source branch.
    • 91fb83b2 - MRWidget: Use component tag to remove multiple component tags.
    • ee6c9f57 - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • d2f60258 - MRWidget: Implemented ready to merge widget.
    • beb1e65a - MRWidget: Implement service and pass to components.
    • 9ae05e0e - MRWidget: Implement merge action with current state of backend.
    • 1596b612 - MRWidget: Address minor MR feedbacks.
    • 9b4d5c2c - MRWidget: Implemented checking state.
    • 67736d73 - MRWidget: Add help widget to RTM state.
    • 615f6550 - MRWidget: Export new fields and add them to store.
    • 15561d37 - MRWidget: Implement missing features in header.
    • 6d7083cd - MRWidget: Rename files for consistency.
    • 3945e42b - MRWidget: Expose MR pipeline using PipelineEntity.
    • d23f4985 - MRWidget: Implement CI status in MR widget.
    • 70739603 - MRWidget: Make SVG computed to update dynamically.
    • 44c8f1d0 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • c1df1e31 - MRWidget: Review fixes. Mostly remove default data from required props.
    • 8b474506 - MRWidget: Add TODO and FIXME comments for backend changes.
    • bf56d45f - MRWidget: Show pipeline status for conflicts state.
    • a44db2bb - MRWidget: Make merge button red if pipeline failed.
    • 8e9c09f9 - MRWidget: Advanced options for merge button.
    • 62d89b05 - Add tests to MergeRequestSerializer
    • bfbcbc2a - MRWidget: Advanced options for merge button.
    • 1676d55e - MRWidget: Handle failed pipeline if project is only MWPS.
    • fffe7575 - Adjust target_branch_path link
    • bf6ae946 - Remove TODO comment
    • ce421124 - MRWidget: Make remove branch default.
    • 9c45cb21 - MRWidget: Review fixes for !9877 (merged).
    • 8d89756f - MRWidget: Implemented unresolved discussions state.
    • 224c705c - MRWidget: Fix unresolved discussion state.
    • 30df33f6 - MRWidget: Implement blocked pipeline state.
    • 3b30df19 - Add related/closing issues sentences data to MergeRequestSerializer
    • 3def1dd1 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • f7c97caa - Use current_user instead user for request objects used on Entities
    • ec3f30a8 - Handle JSON requests for "/merge"
    • b00d05c9 - Alter TODO comments to further improve their trackability
    • ceeafde1 - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • e01db37e - MRWidget: Refactor to move merge help widget into main component.
    • d965838e - MRWidget: Refactor to move pipelines into main component.
    • 8968e443 - MRWidget: Implemented related links widget.
    • a3c133be - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 62024aad - MRWidget: Make issue and verb text methods easier.
    • f54addad - VuePipelines: Refactor code to reuse svg maps.
    • c54ffe9a - MR Widget Refactor Part 7
    • a0238d00 - Handle JSON requests for branch removal
    • 167e3c94 - MRWidget: Implemented remove WIP.
    • c5d339b9 - MRWidget: Fix missing prop in locked state.
    • e67f9225 - MRWidget: Fix pipeline passed icon color.
    • a125fd10 - MRWidget: Implement remove source branch in Merged state.
    • 8c6045b2 - Add basic MergeRequest serializer
    • d8037162 - MRWidget: Improve code styling and remove some eslint flags.
    • a33901a3 - MRWidget: Prefer group info in pipeline status icon.
    • 4683b790 - MRWidget: Implemented deployments component.
    • 5ba66481 - MRWidget: Remove polling.
    • cb7f2776 - MRWidget: Minor code styling.
    • 2cb9a781 - MRWidget: Import datetime utils.
    • 321082e6 - MRWidget: Only render template element if there is a relatead link.
    • fde0cb23 - MRWidget: Group merge conflict buttons.
    • 41bb9515 - MRWidget: Make things good looking 😎
    • 604d3d41 - MRWidget: Fix unresolved discussions state.
    • 15ad7ba1 - MRWidget: Fix existing widget JS bug.
    • 51ebd0eb - MRWidget: Improve deployment component template and methods.
    • a940ce14 - MRWidget: Added component tests.
    • 1543578f - Move CI related info to MR / Pipeline serializers
    • 5341669b - MRWidget: Fixed and improved tests.
    • a27c739e - MRWidget: Fix locked component reference error.
    • 41cd395c - MRWidget: Fix deployment spec datetime issue.
    • 74bf2cb9 - MRWidget: Add new tests for widget states.
    • d0e749f1 - MRWidget: Fix status icon in the deploy widget.
    • 4b92961f - MRWidget: Fix coverage info on existing MR.
    • c0670b85 - MRWidget: Implemented coverage info.
    • 011671c2 - MRWidget: Remove unused component in deployment component.
    • 9077a4d7 - MRWidget: Implement CI error state in pipeline component.
    • 1b6970ac - Return the updated MR as json on merge_check endpoint
    • c818bac4 - MRWidget: Fetch merge data if the MR status is unchecked.
    • 0c301ca2 - MRWidget: Move deployment endpoint data set to root component.
    • e3eef189 - MRWidget: ESLint fixes.
    • 2f77fea0 - MRWidget: Export checkStatus method.
    • da14dee4 - MRWidget: Call checkStatus to update widget in necessary places.
    • 1d661e14 - MRWidget: Styling improvements.
    • 679d3f11 - MRWidget: Change merge button class to danger.
    • f237f6eb - MRWidget: Update widget when note is added.
    • 2f1314aa - MRWidget: Fix some styling.
    • 9ed8cfff - MRWidget: Use deployments data if exists.
    • 8e9b3fe2 - MRWidget: Minor code styling.
    • 6820ac6e - MRWidget: Add nofollow to links.
    • fdceebdc - MRWidget: TODO messages for error handling.
    • f9dea1eb - MRWidget: Introduce eventHub.
    • 8d4d8cd9 - MRWidget: Update widget when MWPS set.
    • deb85d2d - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • bbcd7c61 - MRWidget: Update widget after remove source branch.
    • d7594547 - Utils: Added simple poll utility.
    • 16d9f865 - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 7c2930ee - MRWidget: Implement polling after merge action.
    • 357699fb - MRWidget: Initially do merge_check request.
    • e2b876fa - MRWidget: Add loading icon to merge button.
    • 027b7bde - MRWidget: Don't prefer array destructuring.
    • dbf1601a - MRWidget: Change prop name to avoid confusions.
    • dc7f03d3 - MRWidget: Improve merge buttons.
    • 8ec28b91 - Adjust MR controller specs
    • aaa2bd27 - Adjust PipelineSerializer specs
    • 8a48432b - Expose stages in ci_status endpoint.
    • 82e72ab4 - MRWidget: Expose ci_status_path.
    • a9619ce3 - MRWidget: Make pipelines empty object as default.
    • d18e04b3 - MRWidget: Implement CI polling.
    • 804b9fd0 - Move MR widget imports to dependencies.js.
    • 140e6e70 - Abstract out deviseState from setState.
    • 7fdcba16 - Make dependencies import multi-line.
    • e6f570e8 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • 8fae07ce - Make baseComputed extensible.
    • bb285dcc - Make mrWidgetOptions extensible and revert config dir.
    • b8cfadbf - Handle environment stopping as JSON
    • 61f9f41b - Pipelines: Make stage svg a computed property.
    • e3863027 - MRWidget: Update pipelines data only if we have new status.
    • c3b60142 - MRWidget: Show some respect to ESLint.

    Compare with previous version

  • mentioned in merge request !10324 (merged)

  • mentioned in merge request !10440 (merged)

  • added 2 commits

    • 65589dc7 - Extend prometheus service to be able to make queries using specific timeframes
    • 4abd4c9d - Merge branch '26944-add_per_deployment_metrics_widget_design_review' into 'mr-wi…

    Compare with previous version

  • Filipa Lacerda added 38 commits

    added 38 commits

    • 507fea8a - MRWidget: Add download attribute to MR widget download buttons.
    • 0ea82215 - MRWidget: Implement failed to merge state.
    • ab78aa40 - MRWidget: Implement stopEnvironment.
    • 06613b09 - MRWidget: Implement polling for deployments.
    • 2a873461 - MRWidget: Change icon of the Merge immediately option.
    • 3ce42235 - MRWidget: Fix tree view for MWPS state.
    • cf35b080 - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 7399d288 - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • 30276c93 - Add metrics URL to ci_environments_status endpoint
    • 352cd0f8 - MRWidget: Add tests for failed to merge state.
    • 46e8d19b - MRWidget: Add missing tests for deployment widget.
    • a08d1384 - MRWidget: Tell main component to update store.
    • f8b54575 - MRWidget: Remove unnecessary test.
    • 1834c399 - MRWidget: Add tests for WIP component.
    • db6c0ee1 - MRWidget: Add more tests.
    • 680bed73 - Reuse MR ci status logic by creating a MergeRequestPresenter
    • a900ed8a - Move MR serializer specs to Entity level
    • 884d4ceb - Adjust Rubocop offenses
    • a7c12790 - Add light gray shade
    • a1af02ae - Styling enhancements for MR Widget
    • d6cfa504 - Several updates to MR widget header
    • a1758421 - Add with stage for finished pipelines
    • 31ddf904 - ESLint: Add missing semi-colon
    • 66697229 - Update styling as per UI specs
    • aafbc5fc - Update styling as per UI specs
    • d096ac1a - Update icon styles for MR ready dropdown
    • 5ed911b7 - Adjust Rubocop offenses
    • bd9a656c - MRWidget: Handle response and update widget in MWPS state.
    • c971d957 - MRWidget: Add tests for missing branch state.
    • 3c5a8742 - MRWidget: ESLint fixes.
    • d3172ed8 - MRWidget: Improve and simplfy deployment spec.
    • 3160cdb9 - MRWidget: Add tests for MWPS state.
    • 5e40cdb9 - Merge branch 'mr-widget-redesign-styling-updates' into 'mr-widget-redesign'
    • 7952f8a2 - Fix specs and some code styling after merged MR.
    • 606feb53 - MRWidget: Add tests for merged state.
    • 65a46084 - MRWidget: Fix broken header spec.
    • 7d2e7132 - MRWidget: Add type attrbute to button.
    • 65ef926c - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • added 422 commits

    • 65ef926c...514dc1a0 - 255 commits from branch master
    • 23c51a27 - Expose more information in merge request serializer
    • c0277c84 - Make sure source_project is set when call MergeRequest#can_remove_source_branch? method
    • 4ab424e3 - Refactor MergeRequestEntity for serializer
    • 4841d605 - MRWidget: Initial commit.
    • 4a263045 - MRWidget: Merged and Closed states with Store.
    • 577e1b01 - MRWidget: Add locked state.
    • f794985b - MRWidget: Add WIP state.
    • 911e1692 - MRWidget: Add archived state.
    • eddb0efd - MRWidget: Address MR feedbacks.
    • f9ea9cbb - MRWidget: Linter fixes.
    • c706dd67 - MRWidget: MR changes. Mostly import and export.
    • 4e3aef18 - Replace stubbed data in merge request entity with real one
    • 1750a839 - MRWidget: Resurrect lost files and add new states.
    • 5044c486 - MRWidget: Refactor store to set MR state properly.
    • dde5517e - MRWidget: Add conflict resolution path.
    • bbfc8c3c - MRWidget: Show buttons in WIP widget if user can update MR.
    • 86b6fb23 - MRWidget: Implement remove source branch.
    • 8edfc49b - MRWidget: Use component tag to remove multiple component tags.
    • 59110c46 - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • c604c301 - MRWidget: Implemented ready to merge widget.
    • 15f51130 - MRWidget: Implement service and pass to components.
    • 37bd4eb6 - MRWidget: Implement merge action with current state of backend.
    • 23961991 - MRWidget: Address minor MR feedbacks.
    • edcfec2a - MRWidget: Implemented checking state.
    • 67206afa - MRWidget: Add help widget to RTM state.
    • e67d07cc - MRWidget: Export new fields and add them to store.
    • d4186999 - MRWidget: Implement missing features in header.
    • aeedc267 - MRWidget: Rename files for consistency.
    • ca70af28 - MRWidget: Expose MR pipeline using PipelineEntity.
    • 88ff320e - MRWidget: Implement CI status in MR widget.
    • fc6c6fc3 - MRWidget: Make SVG computed to update dynamically.
    • 5f26adc1 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • 311cbffb - MRWidget: Review fixes. Mostly remove default data from required props.
    • 8b5c421e - MRWidget: Add TODO and FIXME comments for backend changes.
    • d47c919e - MRWidget: Show pipeline status for conflicts state.
    • fb080663 - MRWidget: Make merge button red if pipeline failed.
    • 6cfe0db9 - MRWidget: Advanced options for merge button.
    • 3698abc5 - Add tests to MergeRequestSerializer
    • f38b61c1 - MRWidget: Advanced options for merge button.
    • afcba250 - MRWidget: Handle failed pipeline if project is only MWPS.
    • 1203066a - Adjust target_branch_path link
    • f6b857fe - Remove TODO comment
    • 81ad185a - MRWidget: Make remove branch default.
    • 3a51e12b - MRWidget: Review fixes for !9877 (merged).
    • f0e68832 - MRWidget: Implemented unresolved discussions state.
    • 148d2aa1 - MRWidget: Fix unresolved discussion state.
    • d51bf22e - MRWidget: Implement blocked pipeline state.
    • 432f733c - Add related/closing issues sentences data to MergeRequestSerializer
    • 5c27c355 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • dd471714 - Use current_user instead user for request objects used on Entities
    • 2dbfa607 - Handle JSON requests for "/merge"
    • 08bfa1f7 - Alter TODO comments to further improve their trackability
    • 5f2db619 - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 36010f64 - MRWidget: Refactor to move merge help widget into main component.
    • 6f5e1037 - MRWidget: Refactor to move pipelines into main component.
    • 48de3bf9 - MRWidget: Implemented related links widget.
    • e1ab9007 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 9500c581 - MRWidget: Make issue and verb text methods easier.
    • 71dbc359 - VuePipelines: Refactor code to reuse svg maps.
    • 9777b938 - MR Widget Refactor Part 7
    • a0933f73 - Handle JSON requests for branch removal
    • cc75f8c4 - MRWidget: Implemented remove WIP.
    • 6a9b0a44 - MRWidget: Fix missing prop in locked state.
    • 4f57c6f3 - MRWidget: Fix pipeline passed icon color.
    • 737331c6 - MRWidget: Implement remove source branch in Merged state.
    • 51842c45 - Add basic MergeRequest serializer
    • b3912886 - MRWidget: Improve code styling and remove some eslint flags.
    • 4dc7444b - MRWidget: Prefer group info in pipeline status icon.
    • 5ef59ccf - MRWidget: Implemented deployments component.
    • ad2fbdfa - MRWidget: Remove polling.
    • 9ddf967b - MRWidget: Minor code styling.
    • 758566b4 - MRWidget: Import datetime utils.
    • 119cdb35 - MRWidget: Only render template element if there is a relatead link.
    • d72509c2 - MRWidget: Group merge conflict buttons.
    • a613878d - MRWidget: Make things good looking 😎
    • ca39fb1e - MRWidget: Fix unresolved discussions state.
    • 4c0252fc - MRWidget: Fix existing widget JS bug.
    • f8e7477b - MRWidget: Improve deployment component template and methods.
    • c16850bd - MRWidget: Added component tests.
    • db057b71 - Move CI related info to MR / Pipeline serializers
    • 57e49451 - MRWidget: Fixed and improved tests.
    • 4413875a - MRWidget: Fix locked component reference error.
    • 9b0fc2aa - MRWidget: Fix deployment spec datetime issue.
    • e6c8d67e - MRWidget: Add new tests for widget states.
    • 82cb16ae - MRWidget: Fix status icon in the deploy widget.
    • 12c83401 - MRWidget: Implemented coverage info.
    • 6fe864c2 - MRWidget: Remove unused component in deployment component.
    • a55faadb - MRWidget: Implement CI error state in pipeline component.
    • 6bece429 - Return the updated MR as json on merge_check endpoint
    • 472d12a6 - MRWidget: Fetch merge data if the MR status is unchecked.
    • 494c6bed - MRWidget: Move deployment endpoint data set to root component.
    • 7805df23 - MRWidget: ESLint fixes.
    • 29e9f9e0 - MRWidget: Export checkStatus method.
    • 87230452 - MRWidget: Call checkStatus to update widget in necessary places.
    • dbe4faf5 - MRWidget: Styling improvements.
    • f1201065 - MRWidget: Change merge button class to danger.
    • 530845db - MRWidget: Update widget when note is added.
    • cfdc0098 - MRWidget: Fix some styling.
    • d8c69701 - MRWidget: Use deployments data if exists.
    • 80ff36df - MRWidget: Minor code styling.
    • 33ea8575 - MRWidget: Add nofollow to links.
    • 3f7a19b0 - MRWidget: TODO messages for error handling.
    • 77d995cc - MRWidget: Introduce eventHub.
    • 644f854e - MRWidget: Update widget when MWPS set.
    • c8176d16 - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • 0d2d4218 - MRWidget: Update widget after remove source branch.
    • a70ebb4e - Utils: Added simple poll utility.
    • 3ea063d0 - MRWidget: Expose state and source_branch_exists in basic serializer.
    • f200ad3a - MRWidget: Implement polling after merge action.
    • 03a0e36e - MRWidget: Initially do merge_check request.
    • 1319abcf - MRWidget: Add loading icon to merge button.
    • aa3e6a9e - MRWidget: Don't prefer array destructuring.
    • c3cbc2a5 - MRWidget: Change prop name to avoid confusions.
    • 21b4789e - MRWidget: Improve merge buttons.
    • e0014f0e - Adjust MR controller specs
    • 23136da6 - Adjust PipelineSerializer specs
    • b3fb0129 - Expose stages in ci_status endpoint.
    • 6c543e2f - MRWidget: Expose ci_status_path.
    • 1bf7812b - MRWidget: Make pipelines empty object as default.
    • 3109c18d - MRWidget: Implement CI polling.
    • 42c4e2fa - Move MR widget imports to dependencies.js.
    • afc91a92 - Abstract out deviseState from setState.
    • 3d6a5aa4 - Make dependencies import multi-line.
    • 69948084 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • 2e2fc2f9 - Make baseComputed extensible.
    • a04739b0 - Make mrWidgetOptions extensible and revert config dir.
    • 68c122c0 - Handle environment stopping as JSON
    • 1bf52e80 - Pipelines: Make stage svg a computed property.
    • 86db9faa - MRWidget: Update pipelines data only if we have new status.
    • fb67e404 - MRWidget: Show some respect to ESLint.
    • aac8908c - MRWidget: Add download attribute to MR widget download buttons.
    • fc89a1e3 - MRWidget: Implement failed to merge state.
    • a293167a - MRWidget: Implement stopEnvironment.
    • 73b0c93e - MRWidget: Implement polling for deployments.
    • 71475201 - MRWidget: Change icon of the Merge immediately option.
    • ae3725f2 - MRWidget: Fix tree view for MWPS state.
    • 9c6a562d - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 2f65bfe7 - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • d8951981 - Add metrics URL to ci_environments_status endpoint
    • 0225b3ec - MRWidget: Add tests for failed to merge state.
    • 9c2eb743 - MRWidget: Add missing tests for deployment widget.
    • d55cb623 - MRWidget: Tell main component to update store.
    • d138801e - MRWidget: Remove unnecessary test.
    • fbb1f320 - MRWidget: Add tests for WIP component.
    • 799f85c9 - MRWidget: Add more tests.
    • d80e9e3f - Reuse MR ci status logic by creating a MergeRequestPresenter
    • 1245befc - Move MR serializer specs to Entity level
    • a2e246f4 - Adjust Rubocop offenses
    • c03418a2 - Add light gray shade
    • 175ea2b0 - Styling enhancements for MR Widget
    • 3490ee02 - Several updates to MR widget header
    • 4ab2bdfa - Add with stage for finished pipelines
    • e1816870 - ESLint: Add missing semi-colon
    • 52ae3e22 - Update styling as per UI specs
    • d707cfb1 - Update styling as per UI specs
    • 4d5356b7 - Update icon styles for MR ready dropdown
    • c9588fe5 - Adjust Rubocop offenses
    • fb406539 - MRWidget: Handle response and update widget in MWPS state.
    • 10d1f167 - MRWidget: Add tests for missing branch state.
    • 6bf97144 - MRWidget: ESLint fixes.
    • e9c3a22e - MRWidget: Improve and simplfy deployment spec.
    • 30265403 - MRWidget: Add tests for MWPS state.
    • 936d68c8 - Fix specs and some code styling after merged MR.
    • eed03901 - MRWidget: Add tests for merged state.
    • fc941f1c - MRWidget: Fix broken header spec.
    • 3c970954 - MRWidget: Add type attrbute to button.
    • d54f2def - Extend prometheus service to be able to make queries using specific timeframes

    Compare with previous version

  • added 171 commits

    • bc4f0fe5 - Expose more information in merge request serializer
    • b1b8b95b - Make sure source_project is set when call MergeRequest#can_remove_source_branch? method
    • 81cb52d1 - Refactor MergeRequestEntity for serializer
    • 9f9c8f34 - MRWidget: Initial commit.
    • 449a9b9b - MRWidget: Merged and Closed states with Store.
    • da00461f - MRWidget: Add locked state.
    • 63415440 - MRWidget: Add WIP state.
    • bcaba2b6 - MRWidget: Add archived state.
    • 92548b39 - MRWidget: Address MR feedbacks.
    • 581d5c60 - MRWidget: Linter fixes.
    • 46093c94 - MRWidget: MR changes. Mostly import and export.
    • 5c01935e - Replace stubbed data in merge request entity with real one
    • ee3981d2 - MRWidget: Resurrect lost files and add new states.
    • a6c37c55 - MRWidget: Refactor store to set MR state properly.
    • 69bb11a0 - MRWidget: Add conflict resolution path.
    • 93518087 - MRWidget: Show buttons in WIP widget if user can update MR.
    • 50cef3e6 - MRWidget: Implement remove source branch.
    • 91fb83b2 - MRWidget: Use component tag to remove multiple component tags.
    • ee6c9f57 - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • d2f60258 - MRWidget: Implemented ready to merge widget.
    • beb1e65a - MRWidget: Implement service and pass to components.
    • 9ae05e0e - MRWidget: Implement merge action with current state of backend.
    • 1596b612 - MRWidget: Address minor MR feedbacks.
    • 9b4d5c2c - MRWidget: Implemented checking state.
    • 67736d73 - MRWidget: Add help widget to RTM state.
    • 615f6550 - MRWidget: Export new fields and add them to store.
    • 15561d37 - MRWidget: Implement missing features in header.
    • 6d7083cd - MRWidget: Rename files for consistency.
    • 3945e42b - MRWidget: Expose MR pipeline using PipelineEntity.
    • d23f4985 - MRWidget: Implement CI status in MR widget.
    • 70739603 - MRWidget: Make SVG computed to update dynamically.
    • 44c8f1d0 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • c1df1e31 - MRWidget: Review fixes. Mostly remove default data from required props.
    • 8b474506 - MRWidget: Add TODO and FIXME comments for backend changes.
    • bf56d45f - MRWidget: Show pipeline status for conflicts state.
    • a44db2bb - MRWidget: Make merge button red if pipeline failed.
    • 8e9c09f9 - MRWidget: Advanced options for merge button.
    • 62d89b05 - Add tests to MergeRequestSerializer
    • bfbcbc2a - MRWidget: Advanced options for merge button.
    • 1676d55e - MRWidget: Handle failed pipeline if project is only MWPS.
    • fffe7575 - Adjust target_branch_path link
    • bf6ae946 - Remove TODO comment
    • ce421124 - MRWidget: Make remove branch default.
    • 9c45cb21 - MRWidget: Review fixes for !9877 (merged).
    • 8d89756f - MRWidget: Implemented unresolved discussions state.
    • 224c705c - MRWidget: Fix unresolved discussion state.
    • 30df33f6 - MRWidget: Implement blocked pipeline state.
    • 3b30df19 - Add related/closing issues sentences data to MergeRequestSerializer
    • 3def1dd1 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • f7c97caa - Use current_user instead user for request objects used on Entities
    • ec3f30a8 - Handle JSON requests for "/merge"
    • b00d05c9 - Alter TODO comments to further improve their trackability
    • ceeafde1 - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • e01db37e - MRWidget: Refactor to move merge help widget into main component.
    • d965838e - MRWidget: Refactor to move pipelines into main component.
    • 8968e443 - MRWidget: Implemented related links widget.
    • a3c133be - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 62024aad - MRWidget: Make issue and verb text methods easier.
    • f54addad - VuePipelines: Refactor code to reuse svg maps.
    • c54ffe9a - MR Widget Refactor Part 7
    • a0238d00 - Handle JSON requests for branch removal
    • 167e3c94 - MRWidget: Implemented remove WIP.
    • c5d339b9 - MRWidget: Fix missing prop in locked state.
    • e67f9225 - MRWidget: Fix pipeline passed icon color.
    • a125fd10 - MRWidget: Implement remove source branch in Merged state.
    • 8c6045b2 - Add basic MergeRequest serializer
    • d8037162 - MRWidget: Improve code styling and remove some eslint flags.
    • a33901a3 - MRWidget: Prefer group info in pipeline status icon.
    • 4683b790 - MRWidget: Implemented deployments component.
    • 5ba66481 - MRWidget: Remove polling.
    • cb7f2776 - MRWidget: Minor code styling.
    • 2cb9a781 - MRWidget: Import datetime utils.
    • 321082e6 - MRWidget: Only render template element if there is a relatead link.
    • fde0cb23 - MRWidget: Group merge conflict buttons.
    • 41bb9515 - MRWidget: Make things good looking 😎
    • 604d3d41 - MRWidget: Fix unresolved discussions state.
    • 15ad7ba1 - MRWidget: Fix existing widget JS bug.
    • 51ebd0eb - MRWidget: Improve deployment component template and methods.
    • a940ce14 - MRWidget: Added component tests.
    • 1543578f - Move CI related info to MR / Pipeline serializers
    • 5341669b - MRWidget: Fixed and improved tests.
    • a27c739e - MRWidget: Fix locked component reference error.
    • 41cd395c - MRWidget: Fix deployment spec datetime issue.
    • 74bf2cb9 - MRWidget: Add new tests for widget states.
    • d0e749f1 - MRWidget: Fix status icon in the deploy widget.
    • 4b92961f - MRWidget: Fix coverage info on existing MR.
    • c0670b85 - MRWidget: Implemented coverage info.
    • 011671c2 - MRWidget: Remove unused component in deployment component.
    • 9077a4d7 - MRWidget: Implement CI error state in pipeline component.
    • 1b6970ac - Return the updated MR as json on merge_check endpoint
    • c818bac4 - MRWidget: Fetch merge data if the MR status is unchecked.
    • 0c301ca2 - MRWidget: Move deployment endpoint data set to root component.
    • e3eef189 - MRWidget: ESLint fixes.
    • 2f77fea0 - MRWidget: Export checkStatus method.
    • da14dee4 - MRWidget: Call checkStatus to update widget in necessary places.
    • 1d661e14 - MRWidget: Styling improvements.
    • 679d3f11 - MRWidget: Change merge button class to danger.
    • f237f6eb - MRWidget: Update widget when note is added.
    • 2f1314aa - MRWidget: Fix some styling.
    • 9ed8cfff - MRWidget: Use deployments data if exists.
    • 8e9b3fe2 - MRWidget: Minor code styling.
    • 6820ac6e - MRWidget: Add nofollow to links.
    • fdceebdc - MRWidget: TODO messages for error handling.
    • f9dea1eb - MRWidget: Introduce eventHub.
    • 8d4d8cd9 - MRWidget: Update widget when MWPS set.
    • deb85d2d - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • bbcd7c61 - MRWidget: Update widget after remove source branch.
    • d7594547 - Utils: Added simple poll utility.
    • 16d9f865 - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 7c2930ee - MRWidget: Implement polling after merge action.
    • 357699fb - MRWidget: Initially do merge_check request.
    • e2b876fa - MRWidget: Add loading icon to merge button.
    • 027b7bde - MRWidget: Don't prefer array destructuring.
    • dbf1601a - MRWidget: Change prop name to avoid confusions.
    • dc7f03d3 - MRWidget: Improve merge buttons.
    • 8ec28b91 - Adjust MR controller specs
    • aaa2bd27 - Adjust PipelineSerializer specs
    • 8a48432b - Expose stages in ci_status endpoint.
    • 82e72ab4 - MRWidget: Expose ci_status_path.
    • a9619ce3 - MRWidget: Make pipelines empty object as default.
    • d18e04b3 - MRWidget: Implement CI polling.
    • 804b9fd0 - Move MR widget imports to dependencies.js.
    • 140e6e70 - Abstract out deviseState from setState.
    • 7fdcba16 - Make dependencies import multi-line.
    • e6f570e8 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • 8fae07ce - Make baseComputed extensible.
    • bb285dcc - Make mrWidgetOptions extensible and revert config dir.
    • b8cfadbf - Handle environment stopping as JSON
    • 61f9f41b - Pipelines: Make stage svg a computed property.
    • e3863027 - MRWidget: Update pipelines data only if we have new status.
    • c3b60142 - MRWidget: Show some respect to ESLint.
    • 507fea8a - MRWidget: Add download attribute to MR widget download buttons.
    • 0ea82215 - MRWidget: Implement failed to merge state.
    • ab78aa40 - MRWidget: Implement stopEnvironment.
    • 06613b09 - MRWidget: Implement polling for deployments.
    • 2a873461 - MRWidget: Change icon of the Merge immediately option.
    • 3ce42235 - MRWidget: Fix tree view for MWPS state.
    • cf35b080 - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 7399d288 - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • 30276c93 - Add metrics URL to ci_environments_status endpoint
    • 352cd0f8 - MRWidget: Add tests for failed to merge state.
    • 46e8d19b - MRWidget: Add missing tests for deployment widget.
    • a08d1384 - MRWidget: Tell main component to update store.
    • f8b54575 - MRWidget: Remove unnecessary test.
    • 1834c399 - MRWidget: Add tests for WIP component.
    • db6c0ee1 - MRWidget: Add more tests.
    • 680bed73 - Reuse MR ci status logic by creating a MergeRequestPresenter
    • a900ed8a - Move MR serializer specs to Entity level
    • 884d4ceb - Adjust Rubocop offenses
    • a7c12790 - Add light gray shade
    • a1af02ae - Styling enhancements for MR Widget
    • d6cfa504 - Several updates to MR widget header
    • a1758421 - Add with stage for finished pipelines
    • 31ddf904 - ESLint: Add missing semi-colon
    • 66697229 - Update styling as per UI specs
    • aafbc5fc - Update styling as per UI specs
    • d096ac1a - Update icon styles for MR ready dropdown
    • 5ed911b7 - Adjust Rubocop offenses
    • bd9a656c - MRWidget: Handle response and update widget in MWPS state.
    • c971d957 - MRWidget: Add tests for missing branch state.
    • 3c5a8742 - MRWidget: ESLint fixes.
    • d3172ed8 - MRWidget: Improve and simplfy deployment spec.
    • 3160cdb9 - MRWidget: Add tests for MWPS state.
    • 5e40cdb9 - Merge branch 'mr-widget-redesign-styling-updates' into 'mr-widget-redesign'
    • 7952f8a2 - Fix specs and some code styling after merged MR.
    • 606feb53 - MRWidget: Add tests for merged state.
    • 65a46084 - MRWidget: Fix broken header spec.
    • 7d2e7132 - MRWidget: Add type attrbute to button.
    • 65589dc7 - Extend prometheus service to be able to make queries using specific timeframes
    • 4abd4c9d - Merge branch '26944-add_per_deployment_metrics_widget_design_review' into 'mr-wi…
    • 65ef926c - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • added 435 commits

    • 65ef926c...86d5f1f8 - 268 commits from branch master
    • f8044386 - Expose more information in merge request serializer
    • 4d633c14 - Make sure source_project is set when call MergeRequest#can_remove_source_branch? method
    • c1e2538a - Refactor MergeRequestEntity for serializer
    • edafd5bc - MRWidget: Initial commit.
    • b869e1ba - MRWidget: Merged and Closed states with Store.
    • 562fe79b - MRWidget: Add locked state.
    • b9065e67 - MRWidget: Add WIP state.
    • 4d75f07c - MRWidget: Add archived state.
    • 70ca30dd - MRWidget: Address MR feedbacks.
    • 01bb0fa8 - MRWidget: Linter fixes.
    • 719ee31e - MRWidget: MR changes. Mostly import and export.
    • eec044bc - Replace stubbed data in merge request entity with real one
    • e50238ec - MRWidget: Resurrect lost files and add new states.
    • 6d23c124 - MRWidget: Refactor store to set MR state properly.
    • db765a0d - MRWidget: Add conflict resolution path.
    • 924204b4 - MRWidget: Show buttons in WIP widget if user can update MR.
    • f7439f32 - MRWidget: Implement remove source branch.
    • 47ec71a4 - MRWidget: Use component tag to remove multiple component tags.
    • e2e96552 - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • 14455872 - MRWidget: Implemented ready to merge widget.
    • 50668bd9 - MRWidget: Implement service and pass to components.
    • ad144fac - MRWidget: Implement merge action with current state of backend.
    • 3f4fec35 - MRWidget: Address minor MR feedbacks.
    • 837286f5 - MRWidget: Implemented checking state.
    • 7200997b - MRWidget: Add help widget to RTM state.
    • 3f812259 - MRWidget: Export new fields and add them to store.
    • 929b1e40 - MRWidget: Implement missing features in header.
    • 47737339 - MRWidget: Rename files for consistency.
    • 4376746c - MRWidget: Expose MR pipeline using PipelineEntity.
    • 2fc4508e - MRWidget: Implement CI status in MR widget.
    • edac2b85 - MRWidget: Make SVG computed to update dynamically.
    • 94ab5774 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • 6ea3648c - MRWidget: Review fixes. Mostly remove default data from required props.
    • e1bbb2e1 - MRWidget: Add TODO and FIXME comments for backend changes.
    • cf1469d5 - MRWidget: Show pipeline status for conflicts state.
    • dd29f0c9 - MRWidget: Make merge button red if pipeline failed.
    • 86a2b561 - MRWidget: Advanced options for merge button.
    • c595711a - Add tests to MergeRequestSerializer
    • c804af55 - MRWidget: Advanced options for merge button.
    • bf7f6d1c - MRWidget: Handle failed pipeline if project is only MWPS.
    • 6807c1ba - Adjust target_branch_path link
    • f0343b75 - Remove TODO comment
    • 35e89f23 - MRWidget: Make remove branch default.
    • 2b7f6c7a - MRWidget: Review fixes for !9877 (merged).
    • 19145b95 - MRWidget: Implemented unresolved discussions state.
    • fdfbff23 - MRWidget: Fix unresolved discussion state.
    • 13db241a - MRWidget: Implement blocked pipeline state.
    • 140c7732 - Add related/closing issues sentences data to MergeRequestSerializer
    • 912c64f6 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • 6321180d - Use current_user instead user for request objects used on Entities
    • 6b85b87f - Handle JSON requests for "/merge"
    • fb9867bc - Alter TODO comments to further improve their trackability
    • 4af247ff - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 783b8bb7 - MRWidget: Refactor to move merge help widget into main component.
    • 844c8e9f - MRWidget: Refactor to move pipelines into main component.
    • 5ec816ad - MRWidget: Implemented related links widget.
    • 147cac04 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 7f1dedbc - MRWidget: Make issue and verb text methods easier.
    • 1b1be11d - VuePipelines: Refactor code to reuse svg maps.
    • 2ac0e2c5 - MR Widget Refactor Part 7
    • 61ed4410 - Handle JSON requests for branch removal
    • 536d0829 - MRWidget: Implemented remove WIP.
    • 4ffacbaa - MRWidget: Fix missing prop in locked state.
    • f9247cdc - MRWidget: Fix pipeline passed icon color.
    • 920204a3 - MRWidget: Implement remove source branch in Merged state.
    • 6f957dcc - Add basic MergeRequest serializer
    • a9399d05 - MRWidget: Improve code styling and remove some eslint flags.
    • e564b95a - MRWidget: Prefer group info in pipeline status icon.
    • b327f2b9 - MRWidget: Implemented deployments component.
    • 626c063e - MRWidget: Remove polling.
    • cc5da6e0 - MRWidget: Minor code styling.
    • fca5803a - MRWidget: Import datetime utils.
    • 778602fa - MRWidget: Only render template element if there is a relatead link.
    • 70faa160 - MRWidget: Group merge conflict buttons.
    • 275d70cb - MRWidget: Make things good looking 😎
    • fac7f129 - MRWidget: Fix unresolved discussions state.
    • 6ee45652 - MRWidget: Fix existing widget JS bug.
    • 42ecd50e - MRWidget: Improve deployment component template and methods.
    • 70d976b3 - MRWidget: Added component tests.
    • ab84f9f6 - Move CI related info to MR / Pipeline serializers
    • 14e04e4f - MRWidget: Fixed and improved tests.
    • b87a3724 - MRWidget: Fix locked component reference error.
    • 9bc15183 - MRWidget: Fix deployment spec datetime issue.
    • 836433ad - MRWidget: Add new tests for widget states.
    • 313fdcc1 - MRWidget: Fix status icon in the deploy widget.
    • 2c9daaff - MRWidget: Implemented coverage info.
    • 2ad89850 - MRWidget: Remove unused component in deployment component.
    • 2f93427a - MRWidget: Implement CI error state in pipeline component.
    • 582093b0 - Return the updated MR as json on merge_check endpoint
    • c610fac5 - MRWidget: Fetch merge data if the MR status is unchecked.
    • da861ba0 - MRWidget: Move deployment endpoint data set to root component.
    • c6bab2ca - MRWidget: ESLint fixes.
    • 7ae586c2 - MRWidget: Export checkStatus method.
    • 3e95712f - MRWidget: Call checkStatus to update widget in necessary places.
    • 464aa293 - MRWidget: Styling improvements.
    • 46e79ef2 - MRWidget: Change merge button class to danger.
    • 5de2da30 - MRWidget: Update widget when note is added.
    • 78e61456 - MRWidget: Fix some styling.
    • fab91112 - MRWidget: Use deployments data if exists.
    • 44010b14 - MRWidget: Minor code styling.
    • 2c0b3633 - MRWidget: Add nofollow to links.
    • 75477bb9 - MRWidget: TODO messages for error handling.
    • 1a745ad4 - MRWidget: Introduce eventHub.
    • 4f10b3c2 - MRWidget: Update widget when MWPS set.
    • 37e16dd4 - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • 90a8f7f5 - MRWidget: Update widget after remove source branch.
    • 0fca6bd5 - Utils: Added simple poll utility.
    • f0dcc75c - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 775e9ad6 - MRWidget: Implement polling after merge action.
    • 5c9f423f - MRWidget: Initially do merge_check request.
    • 41a27682 - MRWidget: Add loading icon to merge button.
    • e70d579d - MRWidget: Don't prefer array destructuring.
    • 3b4c1c1b - MRWidget: Change prop name to avoid confusions.
    • c747e980 - MRWidget: Improve merge buttons.
    • dbba414b - Adjust MR controller specs
    • 4be5df1d - Adjust PipelineSerializer specs
    • 621492af - Expose stages in ci_status endpoint.
    • 63529135 - MRWidget: Expose ci_status_path.
    • 270059b5 - MRWidget: Make pipelines empty object as default.
    • 7a3da56f - MRWidget: Implement CI polling.
    • cd36f3ae - Move MR widget imports to dependencies.js.
    • 6ccb50ac - Abstract out deviseState from setState.
    • d1440c0a - Make dependencies import multi-line.
    • 7a3c4f64 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • 5f146d83 - Make baseComputed extensible.
    • f82fc4c8 - Make mrWidgetOptions extensible and revert config dir.
    • 56adf4fd - Handle environment stopping as JSON
    • 1bbaa961 - Pipelines: Make stage svg a computed property.
    • 8260cac1 - MRWidget: Update pipelines data only if we have new status.
    • a7186e27 - MRWidget: Show some respect to ESLint.
    • e72bac0f - MRWidget: Add download attribute to MR widget download buttons.
    • 9a9699ac - MRWidget: Implement failed to merge state.
    • 02ac990c - MRWidget: Implement stopEnvironment.
    • d0a7c1fe - MRWidget: Implement polling for deployments.
    • c90f958a - MRWidget: Change icon of the Merge immediately option.
    • f1d5dc31 - MRWidget: Fix tree view for MWPS state.
    • 474e6b99 - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 9474171f - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • 36fba0a3 - Add metrics URL to ci_environments_status endpoint
    • 842ab24f - MRWidget: Add tests for failed to merge state.
    • c86a5ad4 - MRWidget: Add missing tests for deployment widget.
    • 452dff24 - MRWidget: Tell main component to update store.
    • 7afc9f79 - MRWidget: Remove unnecessary test.
    • ccc8c111 - MRWidget: Add tests for WIP component.
    • 87b4957e - MRWidget: Add more tests.
    • 12c8a523 - Reuse MR ci status logic by creating a MergeRequestPresenter
    • 0321291a - Move MR serializer specs to Entity level
    • a500a791 - Adjust Rubocop offenses
    • f52e3957 - Add light gray shade
    • 1b0aa54f - Styling enhancements for MR Widget
    • 5f0a1de6 - Several updates to MR widget header
    • 05de6350 - Add with stage for finished pipelines
    • de8b632f - ESLint: Add missing semi-colon
    • f1f7b71b - Update styling as per UI specs
    • d40c9cf6 - Update styling as per UI specs
    • 18314b35 - Update icon styles for MR ready dropdown
    • f31db3aa - Adjust Rubocop offenses
    • 1f0226c4 - MRWidget: Handle response and update widget in MWPS state.
    • 82e05ea5 - MRWidget: Add tests for missing branch state.
    • 708e3bfd - MRWidget: ESLint fixes.
    • 2645db07 - MRWidget: Improve and simplfy deployment spec.
    • 289b40b0 - MRWidget: Add tests for MWPS state.
    • c6a8d36d - Fix specs and some code styling after merged MR.
    • 84e4fcfd - MRWidget: Add tests for merged state.
    • 1c8225cc - MRWidget: Fix broken header spec.
    • e9d1e90f - MRWidget: Add type attrbute to button.
    • e03d1d66 - Extend prometheus service to be able to make queries using specific timeframes

    Compare with previous version

  • Just a heads up -- these are the current conflicts with EE:

    	both added:      app/assets/javascripts/blob/pdf/index.js
    	both modified:   app/assets/javascripts/environments/components/environment.js
    	both modified:   app/assets/javascripts/environments/components/environment_item.js
    	both modified:   app/assets/javascripts/environments/components/environments_table.js
    	both modified:   app/assets/javascripts/environments/stores/environments_store.js
    	both modified:   app/assets/javascripts/filtered_search/filtered_search_manager.js
    	both modified:   app/assets/javascripts/main.js
    	both modified:   app/assets/javascripts/merge_request_widget.js
    	both modified:   app/assets/javascripts/monitoring/prometheus_graph.js
    	both modified:   app/assets/stylesheets/framework/files.scss
    	both modified:   app/controllers/projects/merge_requests_controller.rb
    	both modified:   app/models/blob.rb
    	both modified:   app/models/ci/build.rb
    	both added:      app/models/concerns/repository_mirroring.rb
    	both modified:   app/models/group.rb
    	both modified:   app/models/members/group_member.rb
    	both modified:   app/models/merge_request.rb
    	both added:      app/models/project_services/mock_deployment_service.rb
    	both added:      app/models/project_services/mock_monitoring_service.rb
    	both modified:   app/models/repository.rb
    	both modified:   app/models/system_note_metadata.rb
    	both modified:   app/policies/group_policy.rb
    	both modified:   app/serializers/merge_request_entity.rb
    	both modified:   app/services/search/global_service.rb
    	both modified:   app/views/projects/blob/_header.html.haml
    	both modified:   app/views/projects/merge_requests/merge.js.haml
    	both modified:   app/views/shared/issuable/_search_bar.html.haml
    	both modified:   app/views/shared/issuable/form/_merge_params.html.haml
    	both modified:   config/application.rb
    	both modified:   config/initializers/8_gitaly.rb
    	both modified:   config/webpack.config.js
    	both added:      db/migrate/20170402231018_remove_index_for_users_current_sign_in_at.rb
    	both modified:   db/schema.rb
    	both modified:   doc/api/issues.md
    	both modified:   doc/workflow/notifications.md
    	both modified:   lib/gitlab/etag_caching/middleware.rb
    	both modified:   lib/gitlab/shell.rb
    	both modified:   lib/gitlab/workhorse.rb
    	both modified:   spec/controllers/projects/merge_requests_controller_spec.rb
    	both added:      spec/javascripts/blob/pdf/index_spec.js
    	both modified:   spec/javascripts/environments/environments_store_spec.js
    	both modified:   spec/lib/gitlab/workhorse_spec.rb
    	both modified:   spec/mailers/notify_spec.rb
    	both modified:   spec/models/blob_spec.rb
    	both modified:   spec/models/project_services/kubernetes_service_spec.rb
    	both modified:   spec/requests/api/issues_spec.rb
    	both modified:   spec/services/notification_service_spec.rb
    	both modified:   spec/services/system_note_service_spec.rb

    😨 I think it'll be best for me to wait to start working off of this til CE parts are finished.

    Edited by username-removed-408230
  • @grzesiek Would you be able to take a look over the BE changes on this MR?

    We've been gradually merging to mr-widget-redesign-review. FYI the major changes are on the FE, on the BE we've managed to return most of the data on the MergeRequestEntity.

    Minor refactorings on !10504 (merged)

  • I did an only partial review, and only of Backend changes. There's a lot and some of them are just quite messy, ci_status, pipeline_status, suboptimal can_. I wonder if we merge that will we actually have time to improve the backend/frontend API calls.

    TL;DR It seems to introduce the quite amount of technical debt. Looking at backend I'm not happy with what I see. It seems that it requires a few more days to improve the code. Maybe there's some way to ship that, but also this is Friday. And we got it to review only now.

    Edited by Kamil Trzcińśki
  • Jacob Schatz added 2 commits

    added 2 commits

    • ee55f0e1 - Prometheus sparkline for memory usage in Merge Request Widget
    • fba23f2b - Merge branch 'mr-widget-redesign-review-memgraph' into 'mr-widget-redesign-review'

    Compare with previous version

  • Jacob Schatz added 18 commits

    added 18 commits

    • d0ecd34a - MRWidget: Fix review comments.
    • e167b1eb - Backport relevant MR Widget EE changes to CE.
    • 29a96631 - Move methods to private on MR controller
    • 13684542 - Minor path refactoring on MR serializer
    • cecf1c9b - Rename isFrozen to preventMerge.
    • 78bb12c8 - Merge branch 'mr-widget-redesign' of gitlab.com:gitlab-org/gitlab-ce into mr-widget-redesign
    • 939298f2 - MRWidget: Set pipeline favicon.
    • 3a871072 - MRWidget: Fetch revert and cherry-pick modal HTML and append to body.
    • 1018afdd - MRWidget: Slightly refactor in ReadyToMerge component for testing.
    • e6a31d62 - Added tests for ReadyToMerge component.
    • 2ad49b96 - MRWidget: Added tests for main Vue component options.
    • aa12f2ab - MRWidget: Add mising tests and fix ESLint.
    • c281cbf8 - MRWidget: Added tests for service.
    • 84291580 - MRWidget: Added tests for deviseState function.
    • 5d3d3744 - MRWidget: Hack import/export stuff to make things work.
    • 87a66726 - Change deviseState refs to getStateKey.
    • 22495f04 - Fix import/export errors with stateMaps.
    • 25f85bda - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • Jacob Schatz added 4 commits

    added 4 commits

    • 1b4f0b92 - MRWidget: Fix getStateKey context issue.
    • 4c2b6b49 - MRWidget: Only add merged button container if user has access.
    • 53e7d8ec - MRWidget: Delete deprecated files and change necessary places.
    • 180a6417 - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • added 627 commits

    • 180a6417...d37f1f1c - 441 commits from branch master
    • 3493bf73 - Expose more information in merge request serializer
    • f4a96c0f - Refactor MergeRequestEntity for serializer
    • 8ac61f87 - MRWidget: Initial commit.
    • e962fd5e - MRWidget: Merged and Closed states with Store.
    • 1a8fa49a - MRWidget: Add locked state.
    • b91187ff - MRWidget: Add WIP state.
    • 43d7db34 - MRWidget: Add archived state.
    • 9ef9116a - MRWidget: Address MR feedbacks.
    • 12e290ac - MRWidget: Linter fixes.
    • 62e98ad1 - MRWidget: MR changes. Mostly import and export.
    • bc3ccba0 - Replace stubbed data in merge request entity with real one
    • f7f0cd1d - MRWidget: Resurrect lost files and add new states.
    • 13766da4 - MRWidget: Refactor store to set MR state properly.
    • 61369c44 - MRWidget: Add conflict resolution path.
    • 1260d320 - MRWidget: Show buttons in WIP widget if user can update MR.
    • 3cd4d8fa - MRWidget: Implement remove source branch.
    • 9376bd4e - MRWidget: Use component tag to remove multiple component tags.
    • a2dd10fd - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • dfd7c81b - MRWidget: Implemented ready to merge widget.
    • 79f6b2bd - MRWidget: Implement service and pass to components.
    • a7ff7017 - MRWidget: Implement merge action with current state of backend.
    • 3eb32bad - MRWidget: Address minor MR feedbacks.
    • 1d94b2b8 - MRWidget: Implemented checking state.
    • 78e6100b - MRWidget: Add help widget to RTM state.
    • c2e6dbfe - MRWidget: Export new fields and add them to store.
    • 475bb921 - MRWidget: Implement missing features in header.
    • 7f5bfdc3 - MRWidget: Rename files for consistency.
    • df8ea57b - MRWidget: Expose MR pipeline using PipelineEntity.
    • 30134a62 - MRWidget: Implement CI status in MR widget.
    • 054aedcd - MRWidget: Make SVG computed to update dynamically.
    • 0b912dbb - MRWidget: Slightly refactor SVG icon imports to reuse.
    • 455e242a - MRWidget: Review fixes. Mostly remove default data from required props.
    • a06f88d4 - MRWidget: Add TODO and FIXME comments for backend changes.
    • 02dde55f - MRWidget: Show pipeline status for conflicts state.
    • 0751adde - MRWidget: Make merge button red if pipeline failed.
    • 0e190cdc - MRWidget: Advanced options for merge button.
    • 90322036 - Add tests to MergeRequestSerializer
    • 29aebff5 - MRWidget: Advanced options for merge button.
    • 0ff3ee38 - MRWidget: Handle failed pipeline if project is only MWPS.
    • 7b31f2fb - Adjust target_branch_path link
    • 48ad6be8 - Remove TODO comment
    • 93a47098 - MRWidget: Make remove branch default.
    • 8a43a03f - MRWidget: Review fixes for !9877 (merged).
    • 87a8b374 - MRWidget: Implemented unresolved discussions state.
    • 1a108f91 - MRWidget: Fix unresolved discussion state.
    • c3e24bbb - MRWidget: Implement blocked pipeline state.
    • c2ed3a81 - Add related/closing issues sentences data to MergeRequestSerializer
    • 9f20dcb0 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • 3769c5bb - Use current_user instead user for request objects used on Entities
    • b56a8447 - Handle JSON requests for "/merge"
    • dfc95886 - Alter TODO comments to further improve their trackability
    • c875c16f - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 44efbc51 - MRWidget: Refactor to move merge help widget into main component.
    • 641bbe21 - MRWidget: Refactor to move pipelines into main component.
    • 3410a9f7 - MRWidget: Implemented related links widget.
    • 7d8fcf74 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • da855180 - MRWidget: Make issue and verb text methods easier.
    • db99c3e5 - VuePipelines: Refactor code to reuse svg maps.
    • f42902a4 - MR Widget Refactor Part 7
    • 6f5e97b8 - Handle JSON requests for branch removal
    • 017877a3 - MRWidget: Implemented remove WIP.
    • 842a2d34 - MRWidget: Fix missing prop in locked state.
    • 441fdb54 - MRWidget: Fix pipeline passed icon color.
    • 01a9f694 - MRWidget: Implement remove source branch in Merged state.
    • be93f838 - Add basic MergeRequest serializer
    • 17294823 - MRWidget: Improve code styling and remove some eslint flags.
    • de261fc5 - MRWidget: Prefer group info in pipeline status icon.
    • 10e9ab68 - MRWidget: Implemented deployments component.
    • ae782021 - MRWidget: Remove polling.
    • caee329e - MRWidget: Minor code styling.
    • 573a2399 - MRWidget: Import datetime utils.
    • 56bbe004 - MRWidget: Only render template element if there is a relatead link.
    • 1c991d23 - MRWidget: Group merge conflict buttons.
    • 9017217c - MRWidget: Make things good looking 😎
    • fb72025c - MRWidget: Fix unresolved discussions state.
    • 60ecfe39 - MRWidget: Fix existing widget JS bug.
    • e0585251 - MRWidget: Improve deployment component template and methods.
    • e393d2de - MRWidget: Added component tests.
    • f4652a5d - Move CI related info to MR / Pipeline serializers
    • ed7eda22 - MRWidget: Fixed and improved tests.
    • 7f098da8 - MRWidget: Fix locked component reference error.
    • 46a44205 - MRWidget: Fix deployment spec datetime issue.
    • f052ea8a - MRWidget: Add new tests for widget states.
    • 307ba4a5 - MRWidget: Fix status icon in the deploy widget.
    • 8537ae63 - MRWidget: Implemented coverage info.
    • a82412b8 - MRWidget: Remove unused component in deployment component.
    • 2d6c3813 - MRWidget: Implement CI error state in pipeline component.
    • e5d38072 - Return the updated MR as json on merge_check endpoint
    • 856a77e0 - MRWidget: Fetch merge data if the MR status is unchecked.
    • 2c7c917c - MRWidget: Move deployment endpoint data set to root component.
    • 3196b749 - MRWidget: ESLint fixes.
    • 7443fae7 - MRWidget: Export checkStatus method.
    • 7db85b9a - MRWidget: Call checkStatus to update widget in necessary places.
    • fa242cb1 - MRWidget: Styling improvements.
    • 85f5d854 - MRWidget: Change merge button class to danger.
    • a3f463fc - MRWidget: Update widget when note is added.
    • 1c779a96 - MRWidget: Fix some styling.
    • 38438a0f - MRWidget: Use deployments data if exists.
    • 60315651 - MRWidget: Minor code styling.
    • ed23cad1 - MRWidget: Add nofollow to links.
    • b825b1be - MRWidget: TODO messages for error handling.
    • 10105309 - MRWidget: Introduce eventHub.
    • bd0574e1 - MRWidget: Update widget when MWPS set.
    • 59c92a8c - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • 09700cd8 - MRWidget: Update widget after remove source branch.
    • ac329853 - Utils: Added simple poll utility.
    • 94d98d72 - MRWidget: Expose state and source_branch_exists in basic serializer.
    • bfc01f8f - MRWidget: Implement polling after merge action.
    • 878f9b32 - MRWidget: Initially do merge_check request.
    • d7503c45 - MRWidget: Add loading icon to merge button.
    • 752cf319 - MRWidget: Don't prefer array destructuring.
    • 2f277137 - MRWidget: Change prop name to avoid confusions.
    • b1fc7e66 - MRWidget: Improve merge buttons.
    • 5aeda2b7 - Adjust MR controller specs
    • 0b146780 - Adjust PipelineSerializer specs
    • 473b736c - Expose stages in ci_status endpoint.
    • 26046ec8 - MRWidget: Expose ci_status_path.
    • c9a0bb38 - MRWidget: Make pipelines empty object as default.
    • 41e06a0a - MRWidget: Implement CI polling.
    • 7e267850 - Move MR widget imports to dependencies.js.
    • e2879ffd - Abstract out deviseState from setState.
    • 48b7ced8 - Make dependencies import multi-line.
    • 2a5eefd5 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • 4c41e5c2 - Make baseComputed extensible.
    • 02afce33 - Make mrWidgetOptions extensible and revert config dir.
    • 6d1adba2 - Handle environment stopping as JSON
    • 0a54e2ee - Pipelines: Make stage svg a computed property.
    • 6d2350fb - MRWidget: Update pipelines data only if we have new status.
    • 5fefaa13 - MRWidget: Show some respect to ESLint.
    • b017b404 - MRWidget: Add download attribute to MR widget download buttons.
    • 314f433d - MRWidget: Implement failed to merge state.
    • 7406ba7b - MRWidget: Implement stopEnvironment.
    • ed624a1d - MRWidget: Implement polling for deployments.
    • 54196ed3 - MRWidget: Change icon of the Merge immediately option.
    • 7e6b0c8e - MRWidget: Fix tree view for MWPS state.
    • 1dcfd8ed - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • f27713fd - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • 866e59a2 - Add metrics URL to ci_environments_status endpoint
    • c23089f6 - MRWidget: Add tests for failed to merge state.
    • 558193c8 - MRWidget: Add missing tests for deployment widget.
    • 9300cdc8 - MRWidget: Tell main component to update store.
    • d0502d5f - MRWidget: Remove unnecessary test.
    • 949e7ad4 - MRWidget: Add tests for WIP component.
    • 56135d60 - MRWidget: Add more tests.
    • 667086d0 - Reuse MR ci status logic by creating a MergeRequestPresenter
    • 751bdfd7 - Move MR serializer specs to Entity level
    • a07f74cf - Adjust Rubocop offenses
    • 4e4620d0 - Add light gray shade
    • 15e5f2e8 - Styling enhancements for MR Widget
    • bc22af95 - Several updates to MR widget header
    • 1f400fbc - Add with stage for finished pipelines
    • 36a8ac2a - ESLint: Add missing semi-colon
    • 2410299d - Update styling as per UI specs
    • 8e22006e - Update styling as per UI specs
    • 130a03a5 - Update icon styles for MR ready dropdown
    • 4607704b - Adjust Rubocop offenses
    • 2e69f80f - MRWidget: Handle response and update widget in MWPS state.
    • ddacf245 - MRWidget: Add tests for missing branch state.
    • 102cbb6d - MRWidget: ESLint fixes.
    • 513c68b1 - MRWidget: Improve and simplfy deployment spec.
    • 620e4570 - MRWidget: Add tests for MWPS state.
    • a1c9488b - Fix specs and some code styling after merged MR.
    • 4598bb73 - MRWidget: Add tests for merged state.
    • 6d7b44e2 - MRWidget: Fix broken header spec.
    • 132b74a0 - MRWidget: Add type attrbute to button.
    • eaa6d130 - Extend prometheus service to be able to make queries using specific timeframes
    • 8282be43 - MRWidget: Fix review comments.
    • e71d5d5b - Backport relevant MR Widget EE changes to CE.
    • b0f37ee8 - Move methods to private on MR controller
    • 8c6bea45 - Minor path refactoring on MR serializer
    • 280fe258 - Rename isFrozen to preventMerge.
    • 769219f0 - MRWidget: Set pipeline favicon.
    • 9a6d7e41 - MRWidget: Fetch revert and cherry-pick modal HTML and append to body.
    • 03f2d4ca - MRWidget: Slightly refactor in ReadyToMerge component for testing.
    • 3dc566c6 - Added tests for ReadyToMerge component.
    • 9a864d27 - MRWidget: Added tests for main Vue component options.
    • 3c2fab70 - MRWidget: Add mising tests and fix ESLint.
    • 7b7b0755 - MRWidget: Added tests for service.
    • 84b2f91a - MRWidget: Added tests for deviseState function.
    • 7a472408 - MRWidget: Hack import/export stuff to make things work.
    • 052f9392 - Prometheus sparkline for memory usage in Merge Request Widget
    • 9ea64b99 - Change deviseState refs to getStateKey.
    • a1f24cba - Fix import/export errors with stateMaps.
    • 932823f6 - MRWidget: Fix getStateKey context issue.
    • 3e233c4a - MRWidget: Only add merged button container if user has access.
    • ae0928c4 - MRWidget: Delete deprecated files and change necessary places.

    Compare with previous version

  • added 188 commits

    • ae0928c4...6ca6ca89 - 2 commits from branch master
    • 8d9f1f79 - Expose more information in merge request serializer
    • 1e9b58be - Refactor MergeRequestEntity for serializer
    • ef235ca7 - MRWidget: Initial commit.
    • 34b09b64 - MRWidget: Merged and Closed states with Store.
    • 894af64e - MRWidget: Add locked state.
    • f3f09507 - MRWidget: Add WIP state.
    • b1e18b21 - MRWidget: Add archived state.
    • 57bbd923 - MRWidget: Address MR feedbacks.
    • 397d4a81 - MRWidget: Linter fixes.
    • 3ddd541c - MRWidget: MR changes. Mostly import and export.
    • 0a26e88e - Replace stubbed data in merge request entity with real one
    • e1f539af - MRWidget: Resurrect lost files and add new states.
    • 522a19ca - MRWidget: Refactor store to set MR state properly.
    • dbedc2f9 - MRWidget: Add conflict resolution path.
    • 033d1e2f - MRWidget: Show buttons in WIP widget if user can update MR.
    • 0080db66 - MRWidget: Implement remove source branch.
    • ad71b89b - MRWidget: Use component tag to remove multiple component tags.
    • ed905311 - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • c969c025 - MRWidget: Implemented ready to merge widget.
    • 90f66e9c - MRWidget: Implement service and pass to components.
    • 41b3a9d7 - MRWidget: Implement merge action with current state of backend.
    • 7cb79b17 - MRWidget: Address minor MR feedbacks.
    • 3d7ca3a4 - MRWidget: Implemented checking state.
    • 4b627075 - MRWidget: Add help widget to RTM state.
    • 16e03080 - MRWidget: Export new fields and add them to store.
    • c9d564f6 - MRWidget: Implement missing features in header.
    • be922d9c - MRWidget: Rename files for consistency.
    • c86ec0b6 - MRWidget: Expose MR pipeline using PipelineEntity.
    • ee57a094 - MRWidget: Implement CI status in MR widget.
    • 017a223b - MRWidget: Make SVG computed to update dynamically.
    • 20e1cb40 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • 24e9357e - MRWidget: Review fixes. Mostly remove default data from required props.
    • 1f5ed4e6 - MRWidget: Add TODO and FIXME comments for backend changes.
    • 600f4ecf - MRWidget: Show pipeline status for conflicts state.
    • 1090db14 - MRWidget: Make merge button red if pipeline failed.
    • 82b7dae5 - MRWidget: Advanced options for merge button.
    • 7e58994c - Add tests to MergeRequestSerializer
    • 4f702f82 - MRWidget: Advanced options for merge button.
    • e1ef2254 - MRWidget: Handle failed pipeline if project is only MWPS.
    • a907d13e - Adjust target_branch_path link
    • c0f83a11 - Remove TODO comment
    • 377d7842 - MRWidget: Make remove branch default.
    • ecdafb44 - MRWidget: Review fixes for !9877 (merged).
    • bba3a756 - MRWidget: Implemented unresolved discussions state.
    • 3bf4adec - MRWidget: Fix unresolved discussion state.
    • e117d5e1 - MRWidget: Implement blocked pipeline state.
    • 8fd1f29d - Add related/closing issues sentences data to MergeRequestSerializer
    • afa231d5 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • 29f03b36 - Use current_user instead user for request objects used on Entities
    • 99a66f68 - Handle JSON requests for "/merge"
    • d9da7312 - Alter TODO comments to further improve their trackability
    • 557d929d - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 1ae5a117 - MRWidget: Refactor to move merge help widget into main component.
    • ede9221e - MRWidget: Refactor to move pipelines into main component.
    • a39ee05f - MRWidget: Implemented related links widget.
    • b184d6da - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 7e7ab472 - MRWidget: Make issue and verb text methods easier.
    • eac67223 - VuePipelines: Refactor code to reuse svg maps.
    • 32913a97 - MR Widget Refactor Part 7
    • e889617c - Handle JSON requests for branch removal
    • 61594755 - MRWidget: Implemented remove WIP.
    • e25dcf49 - MRWidget: Fix missing prop in locked state.
    • 25bd7b59 - MRWidget: Fix pipeline passed icon color.
    • b5622d8f - MRWidget: Implement remove source branch in Merged state.
    • 00aad65c - Add basic MergeRequest serializer
    • 6b7d1229 - MRWidget: Improve code styling and remove some eslint flags.
    • e674f3f7 - MRWidget: Prefer group info in pipeline status icon.
    • 8dfbadda - MRWidget: Implemented deployments component.
    • b0b1fe37 - MRWidget: Remove polling.
    • bbb179e8 - MRWidget: Minor code styling.
    • 8b19dba2 - MRWidget: Import datetime utils.
    • bb8de23d - MRWidget: Only render template element if there is a relatead link.
    • 3669e250 - MRWidget: Group merge conflict buttons.
    • a1696668 - MRWidget: Make things good looking 😎
    • f3dde50d - MRWidget: Fix unresolved discussions state.
    • 9bb61b09 - MRWidget: Fix existing widget JS bug.
    • b274b4b8 - MRWidget: Improve deployment component template and methods.
    • 35e960c2 - MRWidget: Added component tests.
    • ab0b0b58 - Move CI related info to MR / Pipeline serializers
    • c4019c52 - MRWidget: Fixed and improved tests.
    • e7edaa47 - MRWidget: Fix locked component reference error.
    • d33694a3 - MRWidget: Fix deployment spec datetime issue.
    • b791e23b - MRWidget: Add new tests for widget states.
    • 76d1fe67 - MRWidget: Fix status icon in the deploy widget.
    • 979e8100 - MRWidget: Implemented coverage info.
    • 0a34cd6f - MRWidget: Remove unused component in deployment component.
    • 2129540e - MRWidget: Implement CI error state in pipeline component.
    • fd0ab0bb - Return the updated MR as json on merge_check endpoint
    • a8711330 - MRWidget: Fetch merge data if the MR status is unchecked.
    • 35e82e56 - MRWidget: Move deployment endpoint data set to root component.
    • e9005e14 - MRWidget: ESLint fixes.
    • 7e99cddb - MRWidget: Export checkStatus method.
    • d9924f00 - MRWidget: Call checkStatus to update widget in necessary places.
    • d0320dc3 - MRWidget: Styling improvements.
    • 98ed7627 - MRWidget: Change merge button class to danger.
    • 4e4313b7 - MRWidget: Update widget when note is added.
    • 8a25856a - MRWidget: Fix some styling.
    • 6e7d75f0 - MRWidget: Use deployments data if exists.
    • b526e007 - MRWidget: Minor code styling.
    • 65c0b1a8 - MRWidget: Add nofollow to links.
    • 331d8a41 - MRWidget: TODO messages for error handling.
    • b3c84211 - MRWidget: Introduce eventHub.
    • 4948f270 - MRWidget: Update widget when MWPS set.
    • 28a80d4a - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • 507b532c - MRWidget: Update widget after remove source branch.
    • 6712267f - Utils: Added simple poll utility.
    • 0210279f - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 5b2eeffe - MRWidget: Implement polling after merge action.
    • 17e3a3d1 - MRWidget: Initially do merge_check request.
    • 3872a75f - MRWidget: Add loading icon to merge button.
    • 5a19b5c4 - MRWidget: Don't prefer array destructuring.
    • 0a6411df - MRWidget: Change prop name to avoid confusions.
    • e909a744 - MRWidget: Improve merge buttons.
    • 8efb3dd3 - Adjust MR controller specs
    • b165d556 - Adjust PipelineSerializer specs
    • d494f8a9 - Expose stages in ci_status endpoint.
    • ed00ecb7 - MRWidget: Expose ci_status_path.
    • f879b594 - MRWidget: Make pipelines empty object as default.
    • 00bd9781 - MRWidget: Implement CI polling.
    • c3581834 - Move MR widget imports to dependencies.js.
    • c3b541ba - Abstract out deviseState from setState.
    • 269a2c68 - Make dependencies import multi-line.
    • 0024d9df - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • d4d02071 - Make baseComputed extensible.
    • 6868958e - Make mrWidgetOptions extensible and revert config dir.
    • 8ea6d901 - Handle environment stopping as JSON
    • 7f079a5d - Pipelines: Make stage svg a computed property.
    • 12730d96 - MRWidget: Update pipelines data only if we have new status.
    • dc57a313 - MRWidget: Show some respect to ESLint.
    • d8c7792a - MRWidget: Add download attribute to MR widget download buttons.
    • 846045b6 - MRWidget: Implement failed to merge state.
    • d6af0f76 - MRWidget: Implement stopEnvironment.
    • 3bf08f2b - MRWidget: Implement polling for deployments.
    • 44e1aecc - MRWidget: Change icon of the Merge immediately option.
    • 409c0750 - MRWidget: Fix tree view for MWPS state.
    • b8f16c9b - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 3a57d812 - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • 52c9122e - Add metrics URL to ci_environments_status endpoint
    • 98a03db5 - MRWidget: Add tests for failed to merge state.
    • 7b40af5d - MRWidget: Add missing tests for deployment widget.
    • ca04f5db - MRWidget: Tell main component to update store.
    • 47322022 - MRWidget: Remove unnecessary test.
    • 593ee716 - MRWidget: Add tests for WIP component.
    • b692bfd8 - MRWidget: Add more tests.
    • a72364f5 - Reuse MR ci status logic by creating a MergeRequestPresenter
    • 16720c82 - Move MR serializer specs to Entity level
    • 9bbe64cc - Adjust Rubocop offenses
    • df52237f - Add light gray shade
    • d219128d - Styling enhancements for MR Widget
    • 7351d924 - Several updates to MR widget header
    • 37bf6ffe - Add with stage for finished pipelines
    • c4aef8f5 - ESLint: Add missing semi-colon
    • 8087898f - Update styling as per UI specs
    • ee353e4a - Update styling as per UI specs
    • 4812ac2a - Update icon styles for MR ready dropdown
    • 733dc4e3 - Adjust Rubocop offenses
    • be64b937 - MRWidget: Handle response and update widget in MWPS state.
    • b7255041 - MRWidget: Add tests for missing branch state.
    • a343294f - MRWidget: ESLint fixes.
    • cf6c8a18 - MRWidget: Improve and simplfy deployment spec.
    • d745fbe6 - MRWidget: Add tests for MWPS state.
    • ac8a2e39 - Fix specs and some code styling after merged MR.
    • 1c5bf7c7 - MRWidget: Add tests for merged state.
    • f3e1f268 - MRWidget: Fix broken header spec.
    • 59e0b66c - MRWidget: Add type attrbute to button.
    • 911d23a9 - Extend prometheus service to be able to make queries using specific timeframes
    • b9ce7fe6 - MRWidget: Fix review comments.
    • 89a4f8a9 - Backport relevant MR Widget EE changes to CE.
    • 028eac1d - Move methods to private on MR controller
    • b4768da8 - Minor path refactoring on MR serializer
    • 1543cb44 - Rename isFrozen to preventMerge.
    • 4342d0c9 - MRWidget: Set pipeline favicon.
    • e24361bb - MRWidget: Fetch revert and cherry-pick modal HTML and append to body.
    • 81c60f1d - MRWidget: Slightly refactor in ReadyToMerge component for testing.
    • 6a05ea91 - Added tests for ReadyToMerge component.
    • 1671e190 - MRWidget: Added tests for main Vue component options.
    • ed91880a - MRWidget: Add mising tests and fix ESLint.
    • acbdfb99 - MRWidget: Added tests for service.
    • ceceab78 - MRWidget: Added tests for deviseState function.
    • ac1a5664 - MRWidget: Hack import/export stuff to make things work.
    • af81e36a - Prometheus sparkline for memory usage in Merge Request Widget
    • 93c575c7 - Change deviseState refs to getStateKey.
    • 4f436314 - Fix import/export errors with stateMaps.
    • 1bb9adca - MRWidget: Fix getStateKey context issue.
    • 12dfa13d - MRWidget: Only add merged button container if user has access.
    • 73402508 - MRWidget: Delete deprecated files and change necessary places.

    Compare with previous version

  • To sum-up. If we remove ci_status and merge that in main json of merge request. I will be more than happy. As this will reduce a lot of technical debt of current implementation.

  • @ayufan My only concern with that would be polling all MR data unnecessarily to retrieve the ci_status endpoint data. The only reason ci_status endpoint exists at the moment is to avoid that. Other than that, I would be more than happy to remove this endpoint 😄

  • Right, but the question is how do you pull it now. You also have to poll every some time, so it doesn't change much. If pushing this extra data cost like 10% extra, then it is definitely worth, otherwise, we have to maintain a lot of backend and frontend code to handle that. Fetching the status of pipeline, when you also fetch merge request status, it will be crazy cheap.

  • So this is our interval today:

          this.ciStatusInterval = new gl.SmartInterval({
            callback: this.fetchCIStatus,
            startingInterval: 10000,
            maxInterval: 30000,
            hiddenInterval: 120000,
            incrementByFactorOf: 5000,
          });

    So it's a constant polling on this condition:

          if (this.mr.hasCI) {
            this.initCIPolling();
          }

    How cheap stages data is @ayufan?

    Edit: Everything indicates we must really kill ci_status endpoint, I'll go for that.

    Edited by Oswaldo Ferreir
  • @oswaldo

    stages is a single DB call that executes quite complicated query, but we will simplify it to single cheap DB query in next or next after release. Right now, the cost of running stages is around 0.5-4ms.

    Edited by Kamil Trzcińśki
  • @oswaldo @ayufan I believe my implementation is much more clever. In current master we always poll whether the project has CI or not. See the screenshot below. In my implementation I check project CI status to initiate polling and in the new widget we have the same polling code as before.

    Screen_Shot_2017-04-10_at_12.02.59

  • @fatihacet What we're planning to change is not quite how we poll. As we've discussed, ci_status information is quite replicated. We got it on MergeRequestSerializer, ci_status and pipeline_status endpoint at the moment.

  • Oswaldo Ferreir added 350 commits

    added 350 commits

    • 73402508...0b5a8a34 - 164 commits from branch master
    • 286ed69a - Expose more information in merge request serializer
    • 007f12ec - Refactor MergeRequestEntity for serializer
    • 7db62c2b - MRWidget: Initial commit.
    • 8c5f3fc7 - MRWidget: Merged and Closed states with Store.
    • 71486e86 - MRWidget: Add locked state.
    • 5a93165b - MRWidget: Add WIP state.
    • df01f6de - MRWidget: Add archived state.
    • abf57624 - MRWidget: Address MR feedbacks.
    • 27900e74 - MRWidget: Linter fixes.
    • 8602a509 - MRWidget: MR changes. Mostly import and export.
    • fc1ef762 - Replace stubbed data in merge request entity with real one
    • 992d7929 - MRWidget: Resurrect lost files and add new states.
    • 6caedbc4 - MRWidget: Refactor store to set MR state properly.
    • 35bd829e - MRWidget: Add conflict resolution path.
    • 6a046a0a - MRWidget: Show buttons in WIP widget if user can update MR.
    • 7f7cfba2 - MRWidget: Implement remove source branch.
    • 6a25ae37 - MRWidget: Use component tag to remove multiple component tags.
    • d551810f - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • f0a7a58b - MRWidget: Implemented ready to merge widget.
    • f6461a21 - MRWidget: Implement service and pass to components.
    • b325a81a - MRWidget: Implement merge action with current state of backend.
    • b8809010 - MRWidget: Address minor MR feedbacks.
    • ce7bdf74 - MRWidget: Implemented checking state.
    • e7b14c3e - MRWidget: Add help widget to RTM state.
    • 2992439d - MRWidget: Export new fields and add them to store.
    • 1b7a799d - MRWidget: Implement missing features in header.
    • 3764b48e - MRWidget: Rename files for consistency.
    • c11f469c - MRWidget: Expose MR pipeline using PipelineEntity.
    • 475dc215 - MRWidget: Implement CI status in MR widget.
    • efc9d7ff - MRWidget: Make SVG computed to update dynamically.
    • 53f25180 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • 3d347eab - MRWidget: Review fixes. Mostly remove default data from required props.
    • 68789b03 - MRWidget: Add TODO and FIXME comments for backend changes.
    • 291ce729 - MRWidget: Show pipeline status for conflicts state.
    • 378d044f - MRWidget: Make merge button red if pipeline failed.
    • a3475278 - MRWidget: Advanced options for merge button.
    • b8de9964 - Add tests to MergeRequestSerializer
    • 50affbc4 - MRWidget: Advanced options for merge button.
    • f096ba2b - MRWidget: Handle failed pipeline if project is only MWPS.
    • 1a4efd69 - Adjust target_branch_path link
    • 19125120 - Remove TODO comment
    • be8a882f - MRWidget: Make remove branch default.
    • a96cbb80 - MRWidget: Review fixes for !9877 (merged).
    • 4d13962c - MRWidget: Implemented unresolved discussions state.
    • 2a69ae11 - MRWidget: Fix unresolved discussion state.
    • 839691b4 - MRWidget: Implement blocked pipeline state.
    • 2850cca6 - Add related/closing issues sentences data to MergeRequestSerializer
    • f1d78dbe - Add tests for can_update_merge_request info on MergeRequestSerializer
    • 7bd1edb5 - Use current_user instead user for request objects used on Entities
    • 876a32f3 - Handle JSON requests for "/merge"
    • 05b47743 - Alter TODO comments to further improve their trackability
    • e4cd7805 - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 3b24dd93 - MRWidget: Refactor to move merge help widget into main component.
    • a05a3b46 - MRWidget: Refactor to move pipelines into main component.
    • ee72fc1b - MRWidget: Implemented related links widget.
    • 24b68b79 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 80439be0 - MRWidget: Make issue and verb text methods easier.
    • f988b554 - VuePipelines: Refactor code to reuse svg maps.
    • e2959e5e - MR Widget Refactor Part 7
    • 154ebd58 - Handle JSON requests for branch removal
    • 363044a7 - MRWidget: Implemented remove WIP.
    • 105b9ce1 - MRWidget: Fix missing prop in locked state.
    • c4e0ff02 - MRWidget: Fix pipeline passed icon color.
    • fdef77d6 - MRWidget: Implement remove source branch in Merged state.
    • 5f4ece44 - Add basic MergeRequest serializer
    • 19b13603 - MRWidget: Improve code styling and remove some eslint flags.
    • 2ccbff4a - MRWidget: Prefer group info in pipeline status icon.
    • 9c55045e - MRWidget: Implemented deployments component.
    • 41ef3cf0 - MRWidget: Remove polling.
    • 22ed1961 - MRWidget: Minor code styling.
    • 95373e72 - MRWidget: Import datetime utils.
    • 963e2ddf - MRWidget: Only render template element if there is a relatead link.
    • dba3501d - MRWidget: Group merge conflict buttons.
    • 4589e1d2 - MRWidget: Make things good looking 😎
    • f4e97e62 - MRWidget: Fix unresolved discussions state.
    • cd1ef072 - MRWidget: Fix existing widget JS bug.
    • 980edf69 - MRWidget: Improve deployment component template and methods.
    • 99a79f3a - MRWidget: Added component tests.
    • f5445a06 - Move CI related info to MR / Pipeline serializers
    • 30989f6f - MRWidget: Fixed and improved tests.
    • 7406a28a - MRWidget: Fix locked component reference error.
    • b942ecea - MRWidget: Fix deployment spec datetime issue.
    • e4615f89 - MRWidget: Add new tests for widget states.
    • 44473223 - MRWidget: Fix status icon in the deploy widget.
    • 92b3d258 - MRWidget: Implemented coverage info.
    • 393d1f28 - MRWidget: Remove unused component in deployment component.
    • b92ca1d3 - MRWidget: Implement CI error state in pipeline component.
    • 25c763e0 - Return the updated MR as json on merge_check endpoint
    • d30a7de0 - MRWidget: Fetch merge data if the MR status is unchecked.
    • 5f963a82 - MRWidget: Move deployment endpoint data set to root component.
    • d625d74d - MRWidget: ESLint fixes.
    • 93d832cc - MRWidget: Export checkStatus method.
    • 74c7da17 - MRWidget: Call checkStatus to update widget in necessary places.
    • edb7bec3 - MRWidget: Styling improvements.
    • 71ff0258 - MRWidget: Change merge button class to danger.
    • 81fd5695 - MRWidget: Update widget when note is added.
    • ca76bcd9 - MRWidget: Fix some styling.
    • a3d45e18 - MRWidget: Use deployments data if exists.
    • e29c637c - MRWidget: Minor code styling.
    • 855b9b10 - MRWidget: Add nofollow to links.
    • f14230ae - MRWidget: TODO messages for error handling.
    • b37ac353 - MRWidget: Introduce eventHub.
    • d30dbb28 - MRWidget: Update widget when MWPS set.
    • 6941ac45 - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • 671bd24b - MRWidget: Update widget after remove source branch.
    • 698e4a0e - Utils: Added simple poll utility.
    • 3a4a34a6 - MRWidget: Expose state and source_branch_exists in basic serializer.
    • a2a1d01d - MRWidget: Implement polling after merge action.
    • 5de31c98 - MRWidget: Initially do merge_check request.
    • 5f1e8c8d - MRWidget: Add loading icon to merge button.
    • 68bffe99 - MRWidget: Don't prefer array destructuring.
    • 5e37d40f - MRWidget: Change prop name to avoid confusions.
    • 3d134a3d - MRWidget: Improve merge buttons.
    • 24ecb2e1 - Adjust MR controller specs
    • 26daa4b4 - Adjust PipelineSerializer specs
    • 3667f37e - Expose stages in ci_status endpoint.
    • 8f9eebae - MRWidget: Expose ci_status_path.
    • 8b2f0f78 - MRWidget: Make pipelines empty object as default.
    • 983f5c4f - MRWidget: Implement CI polling.
    • b41a5f3a - Move MR widget imports to dependencies.js.
    • 6e8172dd - Abstract out deviseState from setState.
    • 28ad3081 - Make dependencies import multi-line.
    • 578bba70 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • bce416b9 - Make baseComputed extensible.
    • 55c60afc - Make mrWidgetOptions extensible and revert config dir.
    • 2af75ecb - Handle environment stopping as JSON
    • e8389cf5 - Pipelines: Make stage svg a computed property.
    • d06d0391 - MRWidget: Update pipelines data only if we have new status.
    • cf2539da - MRWidget: Show some respect to ESLint.
    • 530cb334 - MRWidget: Add download attribute to MR widget download buttons.
    • f36742a9 - MRWidget: Implement failed to merge state.
    • f212ba36 - MRWidget: Implement stopEnvironment.
    • 7396da53 - MRWidget: Implement polling for deployments.
    • b613ceef - MRWidget: Change icon of the Merge immediately option.
    • 7a4d3799 - MRWidget: Fix tree view for MWPS state.
    • 264f2484 - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 24f4f0c3 - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • 97888269 - Add metrics URL to ci_environments_status endpoint
    • c65fc9dc - MRWidget: Add tests for failed to merge state.
    • d61f62bf - MRWidget: Add missing tests for deployment widget.
    • 74e4cefa - MRWidget: Tell main component to update store.
    • 533646a5 - MRWidget: Remove unnecessary test.
    • 52ca3d4d - MRWidget: Add tests for WIP component.
    • 6d0bf947 - MRWidget: Add more tests.
    • 4031f9f5 - Reuse MR ci status logic by creating a MergeRequestPresenter
    • a2b8897a - Move MR serializer specs to Entity level
    • c9bd39ef - Adjust Rubocop offenses
    • 55838183 - Add light gray shade
    • eb362264 - Styling enhancements for MR Widget
    • 3672e7a1 - Several updates to MR widget header
    • 935c1d0d - Add with stage for finished pipelines
    • d0d6c39c - ESLint: Add missing semi-colon
    • 87e73408 - Update styling as per UI specs
    • b27e6de5 - Update styling as per UI specs
    • 7cccda2c - Update icon styles for MR ready dropdown
    • 2dc7a84b - Adjust Rubocop offenses
    • 09e61145 - MRWidget: Handle response and update widget in MWPS state.
    • 1b6c94b1 - MRWidget: Add tests for missing branch state.
    • 86cc34e1 - MRWidget: ESLint fixes.
    • 3c3bebcb - MRWidget: Improve and simplfy deployment spec.
    • 6fa3591e - MRWidget: Add tests for MWPS state.
    • 0ab62d16 - Fix specs and some code styling after merged MR.
    • c825e557 - MRWidget: Add tests for merged state.
    • 17340c1c - MRWidget: Fix broken header spec.
    • d9d8f83a - MRWidget: Add type attrbute to button.
    • 681984c1 - Extend prometheus service to be able to make queries using specific timeframes
    • 397f2e88 - MRWidget: Fix review comments.
    • c934e56b - Backport relevant MR Widget EE changes to CE.
    • 22eb2e23 - Move methods to private on MR controller
    • 52e12985 - Minor path refactoring on MR serializer
    • ac3b28f3 - Rename isFrozen to preventMerge.
    • 12225dcd - MRWidget: Set pipeline favicon.
    • e5562946 - MRWidget: Fetch revert and cherry-pick modal HTML and append to body.
    • f5e5c136 - MRWidget: Slightly refactor in ReadyToMerge component for testing.
    • 3fe25f50 - Added tests for ReadyToMerge component.
    • 951c3211 - MRWidget: Added tests for main Vue component options.
    • de427c37 - MRWidget: Add mising tests and fix ESLint.
    • f96c55ac - MRWidget: Added tests for service.
    • 53b9e0e2 - MRWidget: Added tests for deviseState function.
    • 26cf74b4 - MRWidget: Hack import/export stuff to make things work.
    • 20c4dbcd - Prometheus sparkline for memory usage in Merge Request Widget
    • 44183ca9 - Change deviseState refs to getStateKey.
    • 018d4c52 - Fix import/export errors with stateMaps.
    • 7585fc3d - MRWidget: Fix getStateKey context issue.
    • bbb41693 - MRWidget: Only add merged button container if user has access.
    • 162b4d33 - MRWidget: Delete deprecated files and change necessary places.

    Compare with previous version

  • mentioned in issue #30831 (closed)

  • added 389 commits

    • 162b4d33...7d7dfee4 - 203 commits from branch master
    • 28839b0b - Expose more information in merge request serializer
    • 7eb3090a - Refactor MergeRequestEntity for serializer
    • 3a2b2f21 - MRWidget: Initial commit.
    • 874956f8 - MRWidget: Merged and Closed states with Store.
    • c986b80e - MRWidget: Add locked state.
    • 2e360e7e - MRWidget: Add WIP state.
    • 41bad592 - MRWidget: Add archived state.
    • 00573f1c - MRWidget: Address MR feedbacks.
    • 11dd2b1f - MRWidget: Linter fixes.
    • 39f459d9 - MRWidget: MR changes. Mostly import and export.
    • dec76e16 - Replace stubbed data in merge request entity with real one
    • c30bcdb5 - MRWidget: Resurrect lost files and add new states.
    • ed0c17d2 - MRWidget: Refactor store to set MR state properly.
    • 7b038518 - MRWidget: Add conflict resolution path.
    • 1fe64641 - MRWidget: Show buttons in WIP widget if user can update MR.
    • dc13969b - MRWidget: Implement remove source branch.
    • 53ea5bf8 - MRWidget: Use component tag to remove multiple component tags.
    • e48ae0f9 - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • 15c3e228 - MRWidget: Implemented ready to merge widget.
    • c60dcf96 - MRWidget: Implement service and pass to components.
    • f5ca522c - MRWidget: Implement merge action with current state of backend.
    • 39971191 - MRWidget: Address minor MR feedbacks.
    • 4e47a33c - MRWidget: Implemented checking state.
    • a3beef1b - MRWidget: Add help widget to RTM state.
    • d2bdab2b - MRWidget: Export new fields and add them to store.
    • 5a1baf9b - MRWidget: Implement missing features in header.
    • cbd7b34d - MRWidget: Rename files for consistency.
    • 637de1f9 - MRWidget: Expose MR pipeline using PipelineEntity.
    • dfbd6b80 - MRWidget: Implement CI status in MR widget.
    • 3b29839d - MRWidget: Make SVG computed to update dynamically.
    • c948aa41 - MRWidget: Slightly refactor SVG icon imports to reuse.
    • 5baa0636 - MRWidget: Review fixes. Mostly remove default data from required props.
    • 1dd3c8bc - MRWidget: Add TODO and FIXME comments for backend changes.
    • 6f46f531 - MRWidget: Show pipeline status for conflicts state.
    • ace93dc2 - MRWidget: Make merge button red if pipeline failed.
    • 549b5703 - MRWidget: Advanced options for merge button.
    • 244ac7b3 - Add tests to MergeRequestSerializer
    • 7ad32498 - MRWidget: Advanced options for merge button.
    • a3f57fcb - MRWidget: Handle failed pipeline if project is only MWPS.
    • 1455b8c8 - Adjust target_branch_path link
    • 19ffdd04 - Remove TODO comment
    • 8f68b25d - MRWidget: Make remove branch default.
    • 31b324cb - MRWidget: Review fixes for !9877 (merged).
    • 91bf9c48 - MRWidget: Implemented unresolved discussions state.
    • 240305f8 - MRWidget: Fix unresolved discussion state.
    • 96a169ae - MRWidget: Implement blocked pipeline state.
    • 252f05ab - Add related/closing issues sentences data to MergeRequestSerializer
    • df2bd5e8 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • 5f969ac4 - Use current_user instead user for request objects used on Entities
    • 71f91ba4 - Handle JSON requests for "/merge"
    • e6068c5a - Alter TODO comments to further improve their trackability
    • f5f38022 - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • b4967311 - MRWidget: Refactor to move merge help widget into main component.
    • 695af433 - MRWidget: Refactor to move pipelines into main component.
    • d23597a3 - MRWidget: Implemented related links widget.
    • b5d7fb63 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • e1ffcc00 - MRWidget: Make issue and verb text methods easier.
    • abf3b790 - VuePipelines: Refactor code to reuse svg maps.
    • 5909b391 - MR Widget Refactor Part 7
    • 0bf298c4 - Handle JSON requests for branch removal
    • 2636a007 - MRWidget: Implemented remove WIP.
    • 182842d7 - MRWidget: Fix missing prop in locked state.
    • 85b9d786 - MRWidget: Fix pipeline passed icon color.
    • b5dae0a8 - MRWidget: Implement remove source branch in Merged state.
    • f0112253 - Add basic MergeRequest serializer
    • 6a350418 - MRWidget: Improve code styling and remove some eslint flags.
    • c283a97d - MRWidget: Prefer group info in pipeline status icon.
    • e0b11a72 - MRWidget: Implemented deployments component.
    • 6fde2485 - MRWidget: Remove polling.
    • f5055e7b - MRWidget: Minor code styling.
    • 75a6ba32 - MRWidget: Import datetime utils.
    • ee8ac7c7 - MRWidget: Only render template element if there is a relatead link.
    • 4ca0b021 - MRWidget: Group merge conflict buttons.
    • cbb9c7de - MRWidget: Make things good looking 😎
    • a00a5718 - MRWidget: Fix unresolved discussions state.
    • ca787906 - MRWidget: Fix existing widget JS bug.
    • 4e22074e - MRWidget: Improve deployment component template and methods.
    • 584aba46 - MRWidget: Added component tests.
    • e44d7daa - Move CI related info to MR / Pipeline serializers
    • 34e44755 - MRWidget: Fixed and improved tests.
    • d779de7b - MRWidget: Fix locked component reference error.
    • 0b84446a - MRWidget: Fix deployment spec datetime issue.
    • 8130ac99 - MRWidget: Add new tests for widget states.
    • c4ddd117 - MRWidget: Fix status icon in the deploy widget.
    • 836d6753 - MRWidget: Implemented coverage info.
    • 9cf75532 - MRWidget: Remove unused component in deployment component.
    • c41260a9 - MRWidget: Implement CI error state in pipeline component.
    • 83fcf39b - Return the updated MR as json on merge_check endpoint
    • 550f9acd - MRWidget: Fetch merge data if the MR status is unchecked.
    • 98be5da5 - MRWidget: Move deployment endpoint data set to root component.
    • c0ea37ab - MRWidget: ESLint fixes.
    • 6ed7d422 - MRWidget: Export checkStatus method.
    • 56f4140e - MRWidget: Call checkStatus to update widget in necessary places.
    • 4d7c483b - MRWidget: Styling improvements.
    • 7150da4d - MRWidget: Change merge button class to danger.
    • ba4b0dde - MRWidget: Update widget when note is added.
    • bee0d5e6 - MRWidget: Fix some styling.
    • 5e3a7791 - MRWidget: Use deployments data if exists.
    • f4e016ce - MRWidget: Minor code styling.
    • b420a550 - MRWidget: Add nofollow to links.
    • ef0c8def - MRWidget: TODO messages for error handling.
    • d9304e68 - MRWidget: Introduce eventHub.
    • 9c739985 - MRWidget: Update widget when MWPS set.
    • dd24935a - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • d6268f92 - MRWidget: Update widget after remove source branch.
    • 7eb39135 - Utils: Added simple poll utility.
    • cd9fed54 - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 28fced06 - MRWidget: Implement polling after merge action.
    • 65e5e960 - MRWidget: Initially do merge_check request.
    • 865bf483 - MRWidget: Add loading icon to merge button.
    • c94b9324 - MRWidget: Don't prefer array destructuring.
    • b43c4d78 - MRWidget: Change prop name to avoid confusions.
    • 381518dc - MRWidget: Improve merge buttons.
    • 04d644f3 - Adjust MR controller specs
    • 483ffd2a - Adjust PipelineSerializer specs
    • 675d55e2 - Expose stages in ci_status endpoint.
    • a2ca868a - MRWidget: Expose ci_status_path.
    • 6a30f54c - MRWidget: Make pipelines empty object as default.
    • 2d2d0a25 - MRWidget: Implement CI polling.
    • e7ec8cd5 - Move MR widget imports to dependencies.js.
    • 945145bb - Abstract out deviseState from setState.
    • 866e69ce - Make dependencies import multi-line.
    • b500e838 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • 4b6ee620 - Make baseComputed extensible.
    • bc4a40f8 - Make mrWidgetOptions extensible and revert config dir.
    • 8086b6bb - Handle environment stopping as JSON
    • 2697a7ef - Pipelines: Make stage svg a computed property.
    • 431bb572 - MRWidget: Update pipelines data only if we have new status.
    • fcc5396f - MRWidget: Show some respect to ESLint.
    • 4637f267 - MRWidget: Add download attribute to MR widget download buttons.
    • cbd5f65a - MRWidget: Implement failed to merge state.
    • 11face3d - MRWidget: Implement stopEnvironment.
    • eb45c612 - MRWidget: Implement polling for deployments.
    • 6dc554f6 - MRWidget: Change icon of the Merge immediately option.
    • 442d2a13 - MRWidget: Fix tree view for MWPS state.
    • 33d28380 - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 4a5ffddc - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • 4dcd64e3 - Add metrics URL to ci_environments_status endpoint
    • f3e4c20e - MRWidget: Add tests for failed to merge state.
    • 4043e005 - MRWidget: Add missing tests for deployment widget.
    • 343a6a26 - MRWidget: Tell main component to update store.
    • cb724a02 - MRWidget: Remove unnecessary test.
    • 72a5e676 - MRWidget: Add tests for WIP component.
    • 0dd4be4b - MRWidget: Add more tests.
    • ae42bc1e - Reuse MR ci status logic by creating a MergeRequestPresenter
    • 78efc7c2 - Move MR serializer specs to Entity level
    • 9ceaedbf - Adjust Rubocop offenses
    • 3ff19152 - Add light gray shade
    • 1cf328a3 - Styling enhancements for MR Widget
    • b42d213a - Several updates to MR widget header
    • 378a6192 - Add with stage for finished pipelines
    • 59ae18a6 - ESLint: Add missing semi-colon
    • ffda3c65 - Update styling as per UI specs
    • 61a63fe4 - Update styling as per UI specs
    • 9b5ca7ca - Update icon styles for MR ready dropdown
    • 68a1f3a7 - Adjust Rubocop offenses
    • 028253d8 - MRWidget: Handle response and update widget in MWPS state.
    • 9236539a - MRWidget: Add tests for missing branch state.
    • 830eaaab - MRWidget: ESLint fixes.
    • 5051a32e - MRWidget: Improve and simplfy deployment spec.
    • 23a9b57a - MRWidget: Add tests for MWPS state.
    • 63953390 - Fix specs and some code styling after merged MR.
    • e5fddcb5 - MRWidget: Add tests for merged state.
    • 49f5fa4d - MRWidget: Fix broken header spec.
    • 93c7caee - MRWidget: Add type attrbute to button.
    • 2b800453 - Extend prometheus service to be able to make queries using specific timeframes
    • fe16efe9 - MRWidget: Fix review comments.
    • 4aff5800 - Backport relevant MR Widget EE changes to CE.
    • 6e110287 - Move methods to private on MR controller
    • 43d21971 - Minor path refactoring on MR serializer
    • 11321d21 - Rename isFrozen to preventMerge.
    • d37c2b4a - MRWidget: Set pipeline favicon.
    • 5415a50c - MRWidget: Fetch revert and cherry-pick modal HTML and append to body.
    • 1bcc3ec2 - MRWidget: Slightly refactor in ReadyToMerge component for testing.
    • e891ab8d - Added tests for ReadyToMerge component.
    • c8c9024b - MRWidget: Added tests for main Vue component options.
    • 4092bd34 - MRWidget: Add mising tests and fix ESLint.
    • 4ec1848a - MRWidget: Added tests for service.
    • ff9f5036 - MRWidget: Added tests for deviseState function.
    • ca9eb292 - MRWidget: Hack import/export stuff to make things work.
    • 75247ff0 - Prometheus sparkline for memory usage in Merge Request Widget
    • 23796e40 - Change deviseState refs to getStateKey.
    • 8def7521 - Fix import/export errors with stateMaps.
    • 4df98568 - MRWidget: Fix getStateKey context issue.
    • 05d69279 - MRWidget: Only add merged button container if user has access.
    • c156688d - MRWidget: Delete deprecated files and change necessary places.

    Compare with previous version

  • added 251 commits

    • c156688d...bdaf3dfd - 65 commits from branch master
    • 27ef1643 - Expose more information in merge request serializer
    • 1c8c60d4 - Refactor MergeRequestEntity for serializer
    • bc43557a - MRWidget: Initial commit.
    • 15db5c85 - MRWidget: Merged and Closed states with Store.
    • 5ba3116e - MRWidget: Add locked state.
    • a8311f54 - MRWidget: Add WIP state.
    • e44bf3e6 - MRWidget: Add archived state.
    • 89c8b5d0 - MRWidget: Address MR feedbacks.
    • 6eca7e16 - MRWidget: Linter fixes.
    • b72ff27f - MRWidget: MR changes. Mostly import and export.
    • 89119bc9 - Replace stubbed data in merge request entity with real one
    • 641f7a4a - MRWidget: Resurrect lost files and add new states.
    • 1c7a4027 - MRWidget: Refactor store to set MR state properly.
    • 42dd29ba - MRWidget: Add conflict resolution path.
    • 936824d7 - MRWidget: Show buttons in WIP widget if user can update MR.
    • 8c1d84a9 - MRWidget: Implement remove source branch.
    • 563c01c5 - MRWidget: Use component tag to remove multiple component tags.
    • 0500a0d5 - MRWidget: Slightly refactor existing widget code to work only for old widget.
    • a2c865c7 - MRWidget: Implemented ready to merge widget.
    • 9ab6b026 - MRWidget: Implement service and pass to components.
    • d0f0e7fa - MRWidget: Implement merge action with current state of backend.
    • 153e5460 - MRWidget: Address minor MR feedbacks.
    • 06f96554 - MRWidget: Implemented checking state.
    • ce433e94 - MRWidget: Add help widget to RTM state.
    • 964e3026 - MRWidget: Export new fields and add them to store.
    • 808a7117 - MRWidget: Implement missing features in header.
    • 17b90bc6 - MRWidget: Rename files for consistency.
    • 75db95b9 - MRWidget: Expose MR pipeline using PipelineEntity.
    • 9b0a8f23 - MRWidget: Implement CI status in MR widget.
    • 279935b8 - MRWidget: Make SVG computed to update dynamically.
    • 832c070a - MRWidget: Slightly refactor SVG icon imports to reuse.
    • eab5c728 - MRWidget: Review fixes. Mostly remove default data from required props.
    • 296f0184 - MRWidget: Add TODO and FIXME comments for backend changes.
    • f73d6c4c - MRWidget: Show pipeline status for conflicts state.
    • c24c12a1 - MRWidget: Make merge button red if pipeline failed.
    • 95deebf2 - MRWidget: Advanced options for merge button.
    • 17fa6fb4 - Add tests to MergeRequestSerializer
    • 2afb9622 - MRWidget: Advanced options for merge button.
    • 679accdf - MRWidget: Handle failed pipeline if project is only MWPS.
    • 7290cc80 - Adjust target_branch_path link
    • bdf9397a - Remove TODO comment
    • 44359852 - MRWidget: Make remove branch default.
    • eade0076 - MRWidget: Review fixes for !9877 (merged).
    • 7fcee481 - MRWidget: Implemented unresolved discussions state.
    • c71238f3 - MRWidget: Fix unresolved discussion state.
    • b0e16fed - MRWidget: Implement blocked pipeline state.
    • 77fd283c - Add related/closing issues sentences data to MergeRequestSerializer
    • c1390757 - Add tests for can_update_merge_request info on MergeRequestSerializer
    • 5602eef5 - Use current_user instead user for request objects used on Entities
    • bc6c13b4 - Handle JSON requests for "/merge"
    • 91ba6aae - Alter TODO comments to further improve their trackability
    • d77f619d - Adjust "new issue to resolve discussions" link on MergeRequestEntity
    • 802a1d55 - MRWidget: Refactor to move merge help widget into main component.
    • dfb6a3fa - MRWidget: Refactor to move pipelines into main component.
    • ff958941 - MRWidget: Implemented related links widget.
    • ae5f4e58 - Handle JSON requests properly on cancel_merge_when_pipeline_succeeds endpoint
    • 0289621e - MRWidget: Make issue and verb text methods easier.
    • 7e2097b8 - VuePipelines: Refactor code to reuse svg maps.
    • 54f5e337 - MR Widget Refactor Part 7
    • ed0c2cf3 - Handle JSON requests for branch removal
    • bc9cb424 - MRWidget: Implemented remove WIP.
    • 1284090f - MRWidget: Fix missing prop in locked state.
    • b2c055b3 - MRWidget: Fix pipeline passed icon color.
    • c8a90494 - MRWidget: Implement remove source branch in Merged state.
    • 7b55d253 - Add basic MergeRequest serializer
    • dcbf312d - MRWidget: Improve code styling and remove some eslint flags.
    • 28f76300 - MRWidget: Prefer group info in pipeline status icon.
    • 82d08ff2 - MRWidget: Implemented deployments component.
    • b3c02e8a - MRWidget: Remove polling.
    • 57ba9070 - MRWidget: Minor code styling.
    • 1ced1a67 - MRWidget: Import datetime utils.
    • 34174ab0 - MRWidget: Only render template element if there is a relatead link.
    • 6eb80767 - MRWidget: Group merge conflict buttons.
    • 8d5c6e86 - MRWidget: Make things good looking 😎
    • f5c1f315 - MRWidget: Fix unresolved discussions state.
    • b8e5e8f6 - MRWidget: Fix existing widget JS bug.
    • efc6dd3b - MRWidget: Improve deployment component template and methods.
    • 1d18bbd3 - MRWidget: Added component tests.
    • ff575b8a - Move CI related info to MR / Pipeline serializers
    • 86d2486c - MRWidget: Fixed and improved tests.
    • 6062d412 - MRWidget: Fix locked component reference error.
    • a742b9ba - MRWidget: Fix deployment spec datetime issue.
    • c8981d5c - MRWidget: Add new tests for widget states.
    • abcba3dc - MRWidget: Fix status icon in the deploy widget.
    • f9946b27 - MRWidget: Implemented coverage info.
    • f846f5d2 - MRWidget: Remove unused component in deployment component.
    • e4ae2733 - MRWidget: Implement CI error state in pipeline component.
    • 9661e334 - Return the updated MR as json on merge_check endpoint
    • 441b0da4 - MRWidget: Fetch merge data if the MR status is unchecked.
    • 955ba814 - MRWidget: Move deployment endpoint data set to root component.
    • 38252e00 - MRWidget: ESLint fixes.
    • 03044811 - MRWidget: Export checkStatus method.
    • 1476f51a - MRWidget: Call checkStatus to update widget in necessary places.
    • 5507eb6e - MRWidget: Styling improvements.
    • be0e1211 - MRWidget: Change merge button class to danger.
    • 0c8afe24 - MRWidget: Update widget when note is added.
    • 6591889f - MRWidget: Fix some styling.
    • 06c93dca - MRWidget: Use deployments data if exists.
    • 5e61e3c2 - MRWidget: Minor code styling.
    • ee620ad7 - MRWidget: Add nofollow to links.
    • 6c320b4e - MRWidget: TODO messages for error handling.
    • ba3f1599 - MRWidget: Introduce eventHub.
    • aae1a2ee - MRWidget: Update widget when MWPS set.
    • 69dee0d2 - MRWidget: Add callback support to eventHub's MRWidgetUpdateRequested event.
    • 4c6b3b72 - MRWidget: Update widget after remove source branch.
    • ae9f0cd8 - Utils: Added simple poll utility.
    • bec7cadb - MRWidget: Expose state and source_branch_exists in basic serializer.
    • 275c478c - MRWidget: Implement polling after merge action.
    • 5a78647f - MRWidget: Initially do merge_check request.
    • 7853e0d8 - MRWidget: Add loading icon to merge button.
    • 08f75b9f - MRWidget: Don't prefer array destructuring.
    • 031521bb - MRWidget: Change prop name to avoid confusions.
    • 40d846b8 - MRWidget: Improve merge buttons.
    • 936d3f68 - Adjust MR controller specs
    • 49ffa8e3 - Adjust PipelineSerializer specs
    • 78df71d4 - Expose stages in ci_status endpoint.
    • 8256b8d8 - MRWidget: Expose ci_status_path.
    • fff08082 - MRWidget: Make pipelines empty object as default.
    • 69f65b91 - MRWidget: Implement CI polling.
    • a4303305 - Move MR widget imports to dependencies.js.
    • 964c1f99 - Abstract out deviseState from setState.
    • 0a4d93fd - Make dependencies import multi-line.
    • 555854d0 - Break BaseTemplate, stateToComponentMap and statesToShowHelpWidget into separate config files.
    • 059b62cf - Make baseComputed extensible.
    • 5be1b1f2 - Make mrWidgetOptions extensible and revert config dir.
    • 2721c8b0 - Handle environment stopping as JSON
    • e60fa4d9 - Pipelines: Make stage svg a computed property.
    • 43326611 - MRWidget: Update pipelines data only if we have new status.
    • d6b0f245 - MRWidget: Show some respect to ESLint.
    • 8a0037bd - MRWidget: Add download attribute to MR widget download buttons.
    • c98b32f9 - MRWidget: Implement failed to merge state.
    • 89c956bb - MRWidget: Implement stopEnvironment.
    • ebcd7d8e - MRWidget: Implement polling for deployments.
    • dc96468b - MRWidget: Change icon of the Merge immediately option.
    • fa8d7d96 - MRWidget: Fix tree view for MWPS state.
    • d60bc82b - Properly show Cherry-pick and Revert links (Action on current MR or Fork)
    • 88550d64 - Add commit_change_content endpoint for loading Cherry-pick / Revert modal content
    • eda24000 - Add metrics URL to ci_environments_status endpoint
    • 6b217c4d - MRWidget: Add tests for failed to merge state.
    • e42f9360 - MRWidget: Add missing tests for deployment widget.
    • abd2170a - MRWidget: Tell main component to update store.
    • ca89378d - MRWidget: Remove unnecessary test.
    • c2c29c5c - MRWidget: Add tests for WIP component.
    • 0e4d8810 - MRWidget: Add more tests.
    • 2c8016e6 - Reuse MR ci status logic by creating a MergeRequestPresenter
    • 156f5ba6 - Move MR serializer specs to Entity level
    • 68d11c98 - Adjust Rubocop offenses
    • c087e31e - Add light gray shade
    • 0703de18 - Styling enhancements for MR Widget
    • c981c290 - Several updates to MR widget header
    • 5c48e3ea - Add with stage for finished pipelines
    • d90d3580 - ESLint: Add missing semi-colon
    • 357ec252 - Update styling as per UI specs
    • 487690b2 - Update styling as per UI specs
    • caff92b4 - Update icon styles for MR ready dropdown
    • f3acab27 - Adjust Rubocop offenses
    • 65e32a15 - MRWidget: Handle response and update widget in MWPS state.
    • 5ae41ef0 - MRWidget: Add tests for missing branch state.
    • 50b8ff88 - MRWidget: ESLint fixes.
    • 352dfe1f - MRWidget: Improve and simplfy deployment spec.
    • 620246c8 - MRWidget: Add tests for MWPS state.
    • d1720e06 - Fix specs and some code styling after merged MR.
    • a4ba37c2 - MRWidget: Add tests for merged state.
    • b88a073a - MRWidget: Fix broken header spec.
    • 3a1a4e2a - MRWidget: Add type attrbute to button.
    • f4d0a950 - Extend prometheus service to be able to make queries using specific timeframes
    • 0b71f753 - MRWidget: Fix review comments.
    • bc27a2d0 - Backport relevant MR Widget EE changes to CE.
    • cee0367b - Move methods to private on MR controller
    • 3cecfeb9 - Minor path refactoring on MR serializer
    • 1340aaec - Rename isFrozen to preventMerge.
    • 833a94e0 - MRWidget: Set pipeline favicon.
    • 9ba305ad - MRWidget: Fetch revert and cherry-pick modal HTML and append to body.
    • fdfd07f5 - MRWidget: Slightly refactor in ReadyToMerge component for testing.
    • f3bb8e3e - Added tests for ReadyToMerge component.
    • 937b2f1a - MRWidget: Added tests for main Vue component options.
    • c0460420 - MRWidget: Add mising tests and fix ESLint.
    • e04ac515 - MRWidget: Added tests for service.
    • 1367ad8a - MRWidget: Added tests for deviseState function.
    • 81a66b03 - MRWidget: Hack import/export stuff to make things work.
    • 06e8f43e - Prometheus sparkline for memory usage in Merge Request Widget
    • 960de3a7 - Change deviseState refs to getStateKey.
    • 3c8e469b - Fix import/export errors with stateMaps.
    • c3c7e6d2 - MRWidget: Fix getStateKey context issue.
    • 21af4df1 - MRWidget: Only add merged button container if user has access.
    • e0a27ddf - MRWidget: Delete deprecated files and change necessary places.

    Compare with previous version

  • Oswaldo Ferreir mentioned in merge request !10548 (merged)

    mentioned in merge request !10548 (merged)

  • Jacob Schatz added 120 commits

    added 120 commits

    • d73ef2cb - MRWidget: Slightly refactor to fix ESLint errors and some unit tests.
    • 4ea8c5fd - MRWidget: Only render metrics component if data have metrics URL.
    • 2e7b94ed - Fix copy and enable JavaScript for related issues spec.
    • dad98433 - fix cherry_pick_spec failure
    • 6ad7c326 - Fix environments stop
    • f73adbde - MRWidget: Fix MR feature tests.
    • 7d81b3a9 - MRWidget: Fix revert feature tests.
    • ef33da5b - Stop environment is now a button, not a link
    • 680dbe9b - fix deploy-time check
    • b667fcc9 - MRWidget: Only update mr widget if we are in merge requests page.
    • 7ed5d6d3 - MergeRequestsSerializer perf. improvements
    • 78d33cab - MRWidget: Fix merge request accept feature spec.
    • 39ff5941 - Fix specs in only_allow_merge_if_build_succeeds_spec.rb
    • 1f9e8287 - Set specs as pending for not implemented features
    • fc5bcb6b - Remove @merge_request_json assignment
    • 74e4d213 - make eslint happy
    • 14764a45 - make eslint disable explicit
    • 21f75b55 - make fetchMetrics static to avoid class-methods-use-this
    • 536d306b - Remove unnecessary backend code
    • 8289ce0a - Fix rubocop offenses
    • 49c67db1 - MRWidget: Fix deployments widget spec.
    • 90a431a3 - MRWidget: Fix failing specs.
    • 48de1820 - MRWidget: Fix checkStatus calls in Notes.js.
    • 2de25b9b - Change merge button text in merge request specs.
    • b8869a89 - Change merge button text in merge request spec.
    • 110b80d8 - Remove unnecessary MR helper method
    • 7cfa3634 - Remove unnecessary format handler for remove_wip
    • f33a62ae - MRWidget: Fix remove source branch test.
    • 3afe7335 - MRWidget: Fix remove branch feature test.
    • e122ccac - MRWidget: Fix remove source branch test.
    • 55d07ab2 - MRWidget: Make modify commit message a button.
    • 0b515608 - MRWidget: Fix deleted source branch spec.
    • cb1c0c7d - MRWidget: Fix unresolved discussions spec.
    • be36d0e0 - MRWidget: Add required class to merge button for tests.
    • 83c5f2ae - MRWidget: Fix widget specs for deploy URL and merge button.
    • cb830b29 - MRWidget: Fix widget spec to assert new conflicts text.
    • 988cb7f1 - MRWidget: Fix target branch spec.
    • 51f12f6c - MRWidget: Remove unncessary commit message link text.
    • b05b2b15 - MRWidget: Removed deprecated edit MR spec.
    • 0a8667b2 - MRWidget: Fix MWPS spec.
    • a3fbfc12 - MRWidget: Add js support to needed specs.
    • 85dade83 - Fix intermitent merge_event and closed_event spec
    • 26eac87e - Adjust wrong conflict resolution
    • cd960a59 - Use add_reporter instead injecting team member
    • b0cba9fa - Remove unnecessary to_json calls
    • 0d4ce095 - Remove unnecessary AR object reload
    • 78d2efc7 - Unify polling and remove pipeline_status request
    • 99bd1120 - Change ci_environments_status_url to ci_environments_status_path
    • d0b26ca7 - Move conflict_resolution_path logic to MR presenter
    • 1b3250ed - Create MR entities basic json schemas
    • 82f9c934 - Use basic entity for fetching TimeTracking data
    • 70bb8541 - Remove requirement declaration for MR entities schema
    • 19f9b873 - MRWidget: Add full stop after coverage data.
    • c15bb223 - MRWidget: Add coverage data into mock data.
    • feb86374 - MRWidget: Remove deprecated specs.
    • 34b736b9 - MRWidget: Update CI favicon when we have new data.
    • d0886b3f - MRWidget: Fix broken specs and ESLint offences.
    • ece2190a - MRWidget: Fix branch missing spec.
    • 5ec2c61d - MRWidget: Remove store in service dependency.
    • 64014df7 - MRWidget: Fix MWPS spec.
    • e6aafe77 - MRWidget: Remove merged_buttons_spec.
    • 6f618d80 - MRWidget: Update MR status text when MR is merged.
    • 5d1152a3 - MRWidget: Fix edit commit message spec.
    • 7a4795bd - Adjust "user" to "current_user" pipeline entity reference
    • ccd0156d - MRWidget: Only update status text if window.mergeRequest available.
    • 1c6f7233 - MRWidget: Fix commit message spec.
    • 8599a939 - MRWidget: Fix deleted source branch spec.
    • ad2abc49 - MRWidget: Fix MR resolve discussions issue path to fix specs.
    • 79745ad8 - MRWidget: Change discussion resolve path in spec and mock data.
    • 43ab8e33 - Increase number of queries due to coverage exposure
    • 7af5874f - Keep same behavior of denied access for HTML requests on "access_denied!"
    • e59422bc - Adjust branch removal action when no source_project
    • 94f38b53 - Adjust format handling on spec request
    • 28138c22 - Move markdown calls to MR presenter
    • 3358c4f3 - Move cancel_merge_when_pipeline_succeeds_path test to presenter
    • 3f1a932f - Move merge_path test to presenter
    • 149612cc - Move create_issue_to_resolve_discussions_path test to presenter
    • fea0b83d - Add branch existence before trying to build path to branch
    • 091888d3 - Remove extra lines
    • cbe1edf4 - Adjust typo
    • c20ac05e - MRWidget: Format template literals to match styleguide.
    • 2f8148d4 - Adjust remove_wip MR presenter specs
    • 0ef1cb68 - Add source branch link with correct namespace on MR serializer
    • 44fd2e08 - Use merge_request object delegation on MR presenter
    • e9fc7c3f - Adjust rubocop offenses
    • 43118aa4 - Adjust rubocop offenses [2]
    • 27c3e174 - Update MR json schema
    • 7c78ee5b - Present merge error when failed to merge (on background)
    • eae6d0ec - Adjust jslint
    • 924e497d - Update MR basic schema
    • 0120d08e - MRWiidget: Improvements for Vue style guide.
    • 67acd71e - MRWidget: Fix unit tests.
    • 95ad0858 - Remove ci_status route definition
    • 9ccd6c1c - Improve MR presenter memoizing on MR serializer
    • 2f8f8bf9 - Move MR entity knowledge to serializer
    • c778a4a2 - Improve MergeRequestSerializer#represent comments
    • 880660b1 - Return "assign to closed issues link" on MR serializer
    • ceeaa4b5 - Fix typo on MR json schema
    • a084e539 - Make rubocop happy
    • f6cf3b56 - Return correct path to target branch commits on MR serializer
    • 28ae5f9c - Allow nilClass on "assign_to_closing" on MR json schema
    • 0fa9c7b4 - MRWidget: Do some styling for the merge failed widget state.
    • 740617ca - MRWidget: Add event listeners to stop and resume polling.
    • 5eef3140 - MRWidget: Request to stop and resume polling when failed to merge.
    • f24df6e1 - MRWidget: Added missing tests.
    • 94a5d45e - MRWidget: Added missing tests for related links widget.
    • e89fb1d4 - MRWidget: Implement assing issues to me link.
    • db3dadaf - MRWidget: Make ESLint happy again.
    • 6ca2dff4 - MRWidget: Decrease merge request counter on the main nav.
    • 5d2e13d6 - MRWidget: Add catch statements for service requests.
    • d2dd329c - MRWidget: Show a spinner while removing source branch.
    • 529843c8 - MRWidget: Fix broken closed state spec.
    • ca530bc0 - MRWidget: Fix ESLint no-new errors.
    • c80e2c75 - Re-enable "assign to issues link" feature spec
    • 2d6e9b3c - MRWidget: Add auto merge failed state.
    • 60e2fdef - MRWidget: Fix minor ESLint issue.
    • 7fbf98e1 - MRWidget: Minor styling improvements.
    • e34af9a8 - MRWidget: Minor styling fix.
    • 812328e3 - Pipelines: Update stage tooltip.
    • 41df3f93 - Merge branch 'mr-widget-redesign' into 'mr-widget-redesign-review'

    Compare with previous version

  • Oswaldo Ferreir changed milestone to %9.2

    changed milestone to %9.2

  • added 1 commit

    • f7ddd0d6 - Merge request widget redesign

    Compare with previous version

  • Oswaldo Ferreir added Deliverable ~874211 ~13921 labels

    added Deliverable ~874211 ~13921 labels

  • Oswaldo Ferreir unmarked as a Work In Progress

    unmarked as a Work In Progress

  • Oswaldo Ferreir changed title from WIP: Vue MR Request Widget to Merge request widget redesign

    changed title from WIP: Vue MR Request Widget to Merge request widget redesign

  • added 312 commits

    Compare with previous version

  • added 12 commits

    Compare with previous version

  • added 3 commits

    • c87c391c - Notes: Fix a bad merge conflict resolution.
    • db647ac5 - MRWidget: Use new favicon path.
    • 5b4260cd - MRWidget: Update pipeline import statement.

    Compare with previous version

  • added 2 commits

    • 8a2dfda8 - MRWidget: Add catch blocks for promises and make ESLint happy.
    • 04d87d2b - MRWidget: Make checkMergeRequestStatus a static method.

    Compare with previous version

  • Grzegorz Bizon mentioned in merge request !10722

    mentioned in merge request !10722

  • added 1 commit

    • 70b27516 - Merge request widget redesign

    Compare with previous version

  • @brycepj We're green on 70b27516 😄

    Would you mind cherry-picking it into EE (mr-widget-redesign-review-ee would be perfect to adjust the EE compatibility check)?

    Edited by Oswaldo Ferreir
  • 👍 FYI, here are the conflicts I'm seeing locally.

    deleted by them: app/assets/javascripts/merge_request_widget.js
    deleted by them: app/assets/javascripts/merge_request_widget/ci_bundle.js
    both modified:   app/assets/stylesheets/pages/merge_requests.scss
    both modified:   app/controllers/projects/merge_requests_controller.rb
    both modified:   app/helpers/merge_requests_helper.rb
    both modified:   app/serializers/merge_request_entity.rb
    deleted by them: app/views/projects/merge_requests/merge.js.haml
    deleted by them: app/views/projects/merge_requests/widget/_open.html.haml
    deleted by them:
    app/views/projects/merge_requests/widget/open/_accept.html.haml
    both modified:   app/views/shared/issuable/form/_merge_params.html.haml
    both modified:   config/webpack.config.js
    both modified:   spec/controllers/projects/merge_requests_controller_spec.rb
    both modified:   spec/features/merge_requests/closes_issues_spec.rb
    added by us:
    spec/javascripts/merge_request_widget/merge_request_widget_spec.js
    both modified:   spec/serializers/pipeline_serializer_spec.rb

    I'm assuming anything deleted by them I can just delete. I might need some help resolving other conflicts though.

  • mentioned in issue #31402 (moved)

  • Grzegorz Bizon resolved all discussions

    resolved all discussions

  • Jacob Schatz added 2 commits

    added 2 commits

    • bde9a776 - Display Prometheus sparkline in Merge Request widget
    • 0e8309b1 - Merge branch '26944-mr-widget-prometheus-sparkline-dot' into 'mr-widget-redesign-review'

    Compare with previous version

  • Maintainer

    Spec is failing: https://gitlab.com/gitlab-org/gitlab-ce/builds/15688863

    Perhaps this should change?

        allowed_to_create_button.click

    ->

        allowed_to_create_button.trigger('click')
  • Oswaldo Ferreir added 1182 commits

    added 1182 commits

    Compare with previous version

  • added 1 commit

    • 2fb655f2 - Merge request widget redesign

    Compare with previous version

  • kushalpandya added 1 commit

    added 1 commit

    • 850c8c34 - Fix rspec failure for award slash commands

    Compare with previous version

  • Oswaldo Ferreir added 2 commits

    added 2 commits

    • 50ac4e6d - EE backport
    • cd8a8e0d - Add wait_for_vue_resource for MR requests spinach tests

    Compare with previous version

  • added 1 commit

    • a7338874 - MRWidget: Backport EE changes.

    Compare with previous version

  • added 1 commit

    • 24f29a6a - MRWidget: Fix Spinach spec.

    Compare with previous version

  • Oswaldo Ferreir added 2 commits

    added 2 commits

    • a8710516 - Add wait_for_vue_resource where its needed
    • 10b6daf4 - Update MR json schema

    Compare with previous version

  • added 1 commit

    • 0c1f0a90 - Testing: Commenting after hook for waiting complete request

    Compare with previous version

  • added 1 commit

    • 3b03989c - Apply wait_for_vue_resource [2]

    Compare with previous version

  • added 1 commit

    • 3b03989c - Apply wait_for_vue_resource [2]

    Compare with previous version

  • added 1 commit

    • 579d35aa - Improve request blocker middleware to support Vue requests

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    • 96595b27 - Return 0 if no window.activeVueResources

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    • c53180f1 - Remove unnecesary time_tracking_bundle.js file

    Compare with previous version

  • Oswaldo Ferreir added 2 commits

    added 2 commits

    • 36878cce - Intermittence adjustments regarding Spinach and Vue
    • 392532b8 - Remove unnecesary time_tracking_bundle.js file

    Compare with previous version

  • Oswaldo Ferreir added 99 commits

    added 99 commits

    Compare with previous version

  • Oswaldo Ferreir added 10 commits

    added 10 commits

    • 90249def - Merge request widget redesign
    • ac535551 - Fix rspec failure for award slash commands
    • 63c33277 - EE backport
    • 9321e400 - Add wait_for_vue_resource for MR requests spinach tests
    • 80d0d1ca - MRWidget: Backport EE changes.
    • 51f3b9d2 - MRWidget: Fix Spinach spec.
    • fdb2effc - Add wait_for_vue_resource where its needed
    • d1dddc1b - Update MR json schema
    • 66ff9e90 - Intermittence adjustments regarding Spinach and Vue
    • 1175d277 - Remove unnecesary time_tracking_bundle.js file

    Compare with previous version

  • mentioned in issue #31946 (closed)

  • added 1 commit

    • bc9e7572 - Re-use method for checking all Vue request are done

    Compare with previous version

  • Oswaldo Ferreir added 14 commits

    added 14 commits

    • bc9e7572...e98f12af - 3 commits from branch master
    • 54e6b28a - Merge request widget redesign
    • f6b1772b - Fix rspec failure for award slash commands
    • ee60d2ad - EE backport
    • 6cdf2f32 - Add wait_for_vue_resource for MR requests spinach tests
    • 2546ea1b - MRWidget: Backport EE changes.
    • ca0a0e65 - MRWidget: Fix Spinach spec.
    • f71bbee7 - Add wait_for_vue_resource where its needed
    • eb38b641 - Update MR json schema
    • 85e17fcb - Intermittence adjustments regarding Spinach and Vue
    • 9d7de114 - Remove unnecesary time_tracking_bundle.js file
    • 8319d4aa - Re-use method for checking all Vue request are done

    Compare with previous version

  • kushalpandya added 1 commit

    added 1 commit

    • bf68f031 - Fix CI status icon map name and import path

    Compare with previous version

  • added 1 commit

    • 0285e371 - Add wait_for_vue_resource after ordering issue

    Compare with previous version

  • added 1 commit

    • fd0dc9a2 - Retry build with new commit [stuck state]

    Compare with previous version

  • added 1 commit

    • 72332dc4 - Pass current_user to BuildSerializer

    Compare with previous version

  • added 1 commit

    • d1b4347c - Keep the pattern of using current_user instead of user on serializers

    Compare with previous version

  • added 1 commit

    • d0edab4b - Keep the pattern of using current_user instead of user on serializers

    Compare with previous version

  • added 1 commit

    • b023b905 - Keep the pattern of using current_user instead of user on serializers

    Compare with previous version

  • Jacob Schatz approved this merge request

    approved this merge request

  • Jacob Schatz mentioned in commit 8db76243

    mentioned in commit 8db76243

  • merged

  • kushalpandya mentioned in merge request !11209 (merged)

    mentioned in merge request !11209 (merged)

  • mentioned in issue #14413 (closed)

  • Picked into 9-2-stable, will go into 9.2.0-rc1

  • Jacob Schatz mentioned in commit 1ba06c8c

    mentioned in commit 1ba06c8c

  • mentioned in issue #29590 (closed)

  • Winnie Hellmann mentioned in merge request !11763 (closed)

    mentioned in merge request !11763 (closed)

  • mentioned in issue gitaly#221

  • mentioned in issue gitlab#9451

  • Please register or sign in to reply
    Loading