Control Freak Plugin does not support cherry-pick commits

Issue #103 resolved
Former user created an issue

It seems the Control Freak plugin does not support the scenario where another user cherry-picks these commits to push them into a bugfix branch .

I'm looking DEFECT_ID: FI-** in second line of commit message and taking all the jira defects and validating one by one with JQL . But in Cherry-pick commits the commits authors would be different and Jira states and assignee would be different due to this validations are failing and control freak rejecting the pushes . For time being I'm excluding the users and allow them to push.

Is there any way in control freak that we can exclude the cherry-pick commits ?

Scenario :

• User cherry-pick some merges from the feature/dev8095 branch into her bugfix/ha_rearch_plus_double_swo_fao branch • When user did a push, it got rejected with the error in her email below

[bash-4.1:fi]$ git push origin bugfix/ha_rearch_plus_double_swo_fao
Counting objects: 583, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (151/151), done.
Writing objects: 100% (403/403), 133.63 KiB, done.
Total 403 (delta 309), reused 311 (delta 247)
remote: Resolving deltas: 100% (309/309), completed with 147 local objects. remote: Control Freak: Push rejected. Commits on "bugfix/ha_rearch_plus_double_swo_fao" must satisfy JIRA policy. remote:
remote: Control Freak remote: ----- remote: Push rejected. Commits on "bugfix/ha_rearch_plus_double_swo_fao" must satisfy JIRA policy. remote: remote: Some referenced JIRA tickets failed the JQL validation check. remote: remote: JQL: "project = "FastIron" and type = "Defect TRACKER" and status = "Assigned" and "Assigned Engineer" = currentUser()" remote: remote: Failing JIRA tickets: remote: remote: [FI-201202, FI-203193, FI-204455]. remote: remote: Either remove references to those tickets from your commit messages, remote: or adjust the tickets in JIRA so they satisfy the JQL validation. remote: ----- remote: To ssh://git@bitbucket.rks-cloud.com:7999/icx/fi.git ! [remote rejected] bugfix/ha_rearch_plus_double_swo_fao -> bugfix/ha_rearch_plus_double_swo_fao (pre-receive hook declined) error: failed to push some refs to 'ssh://git@bitbucket.rks-cloud.com:7999/icx/fi.git'

The above failing jira tickets are came from cherry-picked commits,I'm looking the way do not validate the commits came from cherry-pick .

Plugin settings and git commit log has been attached in this ticket for reference .

BR Ashok G

Comments (9)

  1. Julius Davies [bit-booster.com] repo owner

    Hi Ashok,

    Thanks for sending in this feature request.

    We have an idea for implementing this (based on “git patch-id” under the hood). It will take a couple weeks to get this done. I’ll keep you posted.

    p.s. Would you be open to adjusting your review on the marketplace page? That 1-star review you left is really hurting us. But if that’s your honest rating for this plugin, I respect that.

  2. Ashok G

    Hi Sylvie Davies,

    Thanks for considering and working on it . please let me know once the fix available .

    BR

    Ashok G

  3. Ashok G

    Also some times even though the Jira is proper as per the JQL configured in the plugin but still it gets rejected saying the validation failed .

    Example :

    bash-4.1$ git push origin HEAD
    Counting objects: 11, done.
    Delta compression using up to 2 threads.
    Compressing objects: 100% (6/6), done.
    Writing objects: 100% (6/6), 819 bytes, done.
    Total 6 (delta 5), reused 0 (delta 0)
    remote: Control Freak: Push rejected. Commits on "bugfix/FI-206048_v1" must satisfy JIRA policy.
    remote:
    remote: Control Freak
    remote: -----
    remote: Push rejected. Commits on "bugfix/FI-206048_v1" must satisfy JIRA policy.
    remote:
    remote: Some referenced JIRA tickets failed the JQL validation check.
    remote:
    remote: JQL: "project = "FastIron" and type = "Defect TRACKER" and status = "Assigned" and "Assigned Engineer" = currentUser()"
    remote:
    remote: Failing JIRA tickets:
    remote:
    remote: [FI-206048].
    remote:
    remote: Either remove references to those tickets from your commit messages,
    remote: or adjust the tickets in JIRA so they satisfy the JQL validation.
    remote: -----
    remote:
    To ssh://git@bitbucket.rks-cloud.com:7999/icx/fi.git
    ! [remote rejected] HEAD -> bugfix/FI-206048_v1 (pre-receive hook declined)
    error: failed to push some refs to ‘ssh://git@bitbucket.rks-cloud.com:7999/icx/fi.git'’

    In this case the reported defect id is valid one as per JQL but still getting error like above , I’m getting these type of issues monthly 5 to 6 out of 250 developers but I could not find the fix , to unblock the users I will exclude them from the validations.

    BR

    Ashok G

  4. Julius Davies [bit-booster.com] repo owner

    This was finally implemented today. Sorry it took so long. It was a lot more complicated than I expected.

    Note: “git cherry-pick” MUST be invoked using “git cherry-pick -x” argument. The “-x” argument is critical for the “ignore-cherry-picks” feature of Control-Freak to work.

  5. Log in to comment