Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-9521

Allow plugins to perform commit message and file content checks when editing a file in the browser

    • We collect Bitbucket feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

      The 'File Edit' feature was introduced in 4.13.0 and allows plugins to prevent a file edit from being committed by raising the cancelable FileEditRequestedEvent.

      The event in it's current form provides the repository, branch and the affected path, which is fine for permission-based checks. It does not however include the commit message or the new file content, which makes the event insufficient for plugin-proved checks that enforce commit message standards, or do content checks.

      Adding the following fields to the event would make the event more useful:

      • commit message
      • updated file content

      Workaround

       The File Edit feature can be globally disabled by adding the following setting to BITBUCKET_HOME/shared/bitbucket.properties and restarting:

      feature.in.browser.editing=false
      feature.file.editor=false

            [BSERV-9521] Allow plugins to perform commit message and file content checks when editing a file in the browser

            Katherine Yabut made changes -
            Workflow Original: JAC Suggestion Workflow [ 3394438 ] New: JAC Suggestion Workflow 3 [ 3616624 ]
            Status Original: RESOLVED [ 5 ] New: Closed [ 6 ]

            YACC receives the event, but only applies its checks when the "request.getTrigger()" equals StandardRepositoryHookTrigger.REPO_PUSH or StandardRepositoryHookTrigger.BRANCH_CREATE.

            This means YACC ignores events (even though it receives them) where the trigger equals StandardRepositoryHookTrigger.FILE_EDIT.

            Consider opening a bug in the YACC bug tracker.

            (p.s. I'm with Bit-Booster, and our competing free commit checker, Control Freak, properly checks file edits.  But we're not DC certified yet - hopefully soon.)

            Julius Davies [bit-booster.com] added a comment - - edited YACC receives the event, but only applies its checks when the "request.getTrigger()" equals StandardRepositoryHookTrigger.REPO_PUSH or StandardRepositoryHookTrigger.BRANCH_CREATE. This means YACC ignores events (even though it receives them) where the trigger equals StandardRepositoryHookTrigger.FILE_EDIT. Consider opening a bug in the YACC bug tracker. (p.s. I'm with Bit-Booster, and our competing free commit checker, Control Freak , properly checks file edits.  But we're not DC certified yet - hopefully soon.)

            So the problem already exists? Because we seee in Version 516.6 that the YACC hooks are not fired!

            Thomas Beck added a comment - So the problem already exists? Because we seee in Version 516.6 that the YACC hooks are not fired!
            Monique Khairuliana (Inactive) made changes -
            Workflow Original: BSERV Suggestions Workflow [ 2685982 ] New: JAC Suggestion Workflow [ 3394438 ]
            Owen made changes -
            Workflow Original: Stash Workflow [ 1652700 ] New: BSERV Suggestions Workflow [ 2685982 ]
            Status Original: Closed [ 6 ] New: Resolved [ 5 ]
            Michael Heemskerk (Inactive) made changes -
            Description Original: The 'File Edit' feature was introduced in 4.13.0 and allows plugins to prevent a file edit from being committed by raising the cancelable {{FileEditRequestedEvent}}.

            The event in it's current form provides the repository, branch and the affected path, which is fine for permission-based checks. It does not however include the commit message or the new file content, which makes the event insufficient for plugin-proved checks that enforce commit message standards, or do content checks.

            Adding the following fields to the event would make the event more useful:
             * commit message
             * updated file content

            h4. Workaround

             
            New: The 'File Edit' feature was introduced in 4.13.0 and allows plugins to prevent a file edit from being committed by raising the cancelable {{FileEditRequestedEvent}}.

            The event in it's current form provides the repository, branch and the affected path, which is fine for permission-based checks. It does not however include the commit message or the new file content, which makes the event insufficient for plugin-proved checks that enforce commit message standards, or do content checks.

            Adding the following fields to the event would make the event more useful:
             * commit message
             * updated file content

            h4. Workaround

             The File Edit feature can be globally disabled by adding the following setting to {{BITBUCKET_HOME/shared/bitbucket.properties}} and restarting:
            {noformat}
            feature.in.browser.editing=false
            feature.file.editor=false{noformat}
            Michael Heemskerk (Inactive) made changes -
            Description Original: The 'File Edit' feature was introduced in 4.13.0 and allows plugins to prevent a file edit from being committed by raising the cancelable {{FileEditRequestedEvent}}.

            The event in it's current form provides the repository, branch and the affected path, which is fine for permission-based checks. It does not however include the commit message or the new file content, which makes the event insufficient for plugin-proved checks that enforce commit message standards, or do content checks.

            Adding the following fields to the event would make the event more useful:
             * commit message
             * updated file content
            New: The 'File Edit' feature was introduced in 4.13.0 and allows plugins to prevent a file edit from being committed by raising the cancelable {{FileEditRequestedEvent}}.

            The event in it's current form provides the repository, branch and the affected path, which is fine for permission-based checks. It does not however include the commit message or the new file content, which makes the event insufficient for plugin-proved checks that enforce commit message standards, or do content checks.

            Adding the following fields to the event would make the event more useful:
             * commit message
             * updated file content

            h4. Workaround

             

            Most of the changes for the new repository-hook API is included in the 5.0.0 EAP-2 release, but unfortunately the trigger for 'edit-file' is not yet included in that EAP release.

            See https://community.developer.atlassian.com/t/announcement-bitbucket-server-5-0-early-access-program-eap-release/1913 for instructions on how to access the eap2 release.

            Michael Heemskerk (Inactive) added a comment - Most of the changes for the new repository-hook API is included in the 5.0.0 EAP-2 release, but unfortunately the trigger for 'edit-file' is not yet included in that EAP release. See https://community.developer.atlassian.com/t/announcement-bitbucket-server-5-0-early-access-program-eap-release/1913 for instructions on how to access the eap2 release.

            Thanks so much for fixing this. We might finally be able to update to the new version, this Issues was the only thing blocking us from updating.

            Is there a possibility to preview the API changes in order to prepare for the release of the new version?

            Florian Peschka added a comment - Thanks so much for fixing this. We might finally be able to update to the new version, this Issues was the only thing blocking us from updating. Is there a possibility to preview the API changes in order to prepare for the release of the new version?

            In 5.0, the file content and commit message have been made available to the FileEditRequestedEvent. In addition, a new unified repository-hooks API has been added that allow plugins to provide hooks that get called before refs are updated, whenever these updates can be vetoed. The new hooks API also invokes hooks when a file is edited or created in the browser.

            Michael Heemskerk (Inactive) added a comment - In 5.0, the file content and commit message have been made available to the FileEditRequestedEvent . In addition, a new unified repository-hooks API has been added that allow plugins to provide hooks that get called before refs are updated, whenever these updates can be vetoed. The new hooks API also invokes hooks when a file is edited or created in the browser.

              mheemskerk Michael Heemskerk (Inactive)
              mheemskerk Michael Heemskerk (Inactive)
              Votes:
              12 Vote for this issue
              Watchers:
              19 Start watching this issue

                Created:
                Updated:
                Resolved: