Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-43148

Support native Git for pipeline creation and editing

    • Blue Ocean 1.0-rc4, Blue Ocean 1.2-beta2, Blue Ocean 1.2-beta3, Blue Ocean 1.2-beta4, Blue Ocean 1.2, Blue Ocean 1.3

      Improvement on roadmap

      This improvement is on the Blue Ocean project roadmap. Check the roadmap page for updates.

      Scope

      • User can click New Pipeline then pick Git and author a new Jenkinsfile using the Editor and save it back to the repository.
      • User can click Edit Pipeline then author the existing Jenkinsfile using the Editor and save their changes back to the repository
        • In a new branch
        • On the current branch

      Notes

      There are a number of security and user experience concerns that the team have to solve to get this working. 

       

      Design brief

      The user experience should match the equivalent Github feature as much as possible.
      The largest notable difference is that creating and editing with plain Git has noticeably more network traffic than Github. This means the user may have to wait for Blue Ocean to retrieve the content of the repository before showing them the Editor or before their save action is completed.

      Loading the editor

      • Developer clicks the edit action
      • Developer sees a progress dialog with a message "Loading your Jenkinsfile"
        • This could take a while as we have to do a shallow clone of the repository
        • How much progress information do we get from the clone? If we can easily get this info we can use a determinate progress indicator rather than a indeterminate one.
      • Developer should be able to cancel the load if it takes too long
      • Developer sees the Editor

      Saving from the editor

      1. Developer clicks save
      2. Developer sees the save dialog and then confirms
        • May commit back to new branch or current branch
      3. Developer sees progress dialog with message "Saving your pipeline"
      4. Developer lands back on the Activity screen

      Technical notes

      Unlike Github, Blue Ocean needs to make a shallow clone of the repository on the master in order to perform any operations. It is important to do whatever we can to make the editor work for developers at the best possible speed.

          [JENKINS-43148] Support native Git for pipeline creation and editing

          Michael Neale created issue -
          Michael Neale made changes -
          Epic Link New: JENKINS-36291 [ 172300 ]
          Michael Neale made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          James Dumay made changes -
          Summary Original: git load/save round tripping for editor New: Developer can load and save pipelines from the editor using native git
          James Dumay made changes -
          Description Original: It would be nice to PoC (at least) a git load/save for round tripping. 

          This will help for wider support as well as proving out an SCM generic api 
          New: *Scope*
           * User can click New Pipeline then pick Git and author a new Jenkinsfile using the Editor and save it back to the repository.
           * User can click Edit Pipeline then author the existing Jenkinsfile using the Editor and save their changes back to the repository
           ** In a new branch
           ** On the current branch

          *Notes*

          There are a number of security and user experience concerns that the team have to solve to get this working. 

           

          *Design* *brief*
           The largest notable difference is that creating and editing with plain Git has noticeably more network traffic than Github. This means the user may have to wait for Blue Ocean to retrieve the content of the repository before showing them the Editor or before their save action is completed.

          +Loading the editor+
           * Developer clicks the edit action
           * Developer sees a progress dialog with a message "Loading your Jenkinsfile"
           ** This could take a while as we have to do a shallow clone of the repository
           ** How much progress information do we get from the clone? If we can easily get this info we can use a determinate progress indicator rather than a indeterminate one.
           * Developer should be able to cancel the load if it takes too long
           * Developer sees the Editor

          +Saving from the editor+
           # Developer clicks save
           # Developer sees the save dialog and then confirms
           ** May commit back to new branch or current branch
           # Developer sees progress dialog with message "Saving your pipeline"
           # Developer lands back on the Activity screen
          Issue Type Original: Task [ 3 ] New: Story [ 10002 ]
          James Dumay made changes -
          Description Original: *Scope*
           * User can click New Pipeline then pick Git and author a new Jenkinsfile using the Editor and save it back to the repository.
           * User can click Edit Pipeline then author the existing Jenkinsfile using the Editor and save their changes back to the repository
           ** In a new branch
           ** On the current branch

          *Notes*

          There are a number of security and user experience concerns that the team have to solve to get this working. 

           

          *Design* *brief*
           The largest notable difference is that creating and editing with plain Git has noticeably more network traffic than Github. This means the user may have to wait for Blue Ocean to retrieve the content of the repository before showing them the Editor or before their save action is completed.

          +Loading the editor+
           * Developer clicks the edit action
           * Developer sees a progress dialog with a message "Loading your Jenkinsfile"
           ** This could take a while as we have to do a shallow clone of the repository
           ** How much progress information do we get from the clone? If we can easily get this info we can use a determinate progress indicator rather than a indeterminate one.
           * Developer should be able to cancel the load if it takes too long
           * Developer sees the Editor

          +Saving from the editor+
           # Developer clicks save
           # Developer sees the save dialog and then confirms
           ** May commit back to new branch or current branch
           # Developer sees progress dialog with message "Saving your pipeline"
           # Developer lands back on the Activity screen
          New: *Scope*
           * User can click New Pipeline then pick Git and author a new Jenkinsfile using the Editor and save it back to the repository.
           * User can click Edit Pipeline then author the existing Jenkinsfile using the Editor and save their changes back to the repository
           ** In a new branch
           ** On the current branch

          *Notes*

          There are a number of security and user experience concerns that the team have to solve to get this working. 

           

          *Design* *brief*

          The user experience should match the equivalent Github feature as much as possible.
           The largest notable difference is that creating and editing with plain Git has noticeably more network traffic than Github. This means the user may have to wait for Blue Ocean to retrieve the content of the repository before showing them the Editor or before their save action is completed.

          +Loading the editor+
           * Developer clicks the edit action
           * Developer sees a progress dialog with a message "Loading your Jenkinsfile"
           ** This could take a while as we have to do a shallow clone of the repository
           ** How much progress information do we get from the clone? If we can easily get this info we can use a determinate progress indicator rather than a indeterminate one.
           * Developer should be able to cancel the load if it takes too long
           * Developer sees the Editor

          +Saving from the editor+
           # Developer clicks save
           # Developer sees the save dialog and then confirms
           ** May commit back to new branch or current branch
           # Developer sees progress dialog with message "Saving your pipeline"
           # Developer lands back on the Activity screen

          *Technical notes*

          Unlike Github, Blue Ocean needs to make a shallow clone of the repository on the master in order to perform any operations. It is important to do whatever we can to make the editor work for developers at the best possible speed.
          James Dumay made changes -
          Sprint Original: Blue Ocean 1.0-rc4 [ 281 ] New: Blue Ocean 1.0-rc4, Blue Ocean - techdebt sprint 1 [ 281, 291 ]
          James Dumay made changes -
          Priority Original: Major [ 3 ] New: Critical [ 2 ]
          James Dumay made changes -
          Sprint Original: Blue Ocean 1.0-rc4, Blue Ocean - techdebt sprint 1 [ 281, 291 ] New: Blue Ocean 1.0-rc4, Blue Ocean 1.2 [ 281, 296 ]
          James Dumay made changes -
          Rank New: Ranked lower
          James Dumay made changes -
          Rank New: Ranked higher

            kzantow Keith Zantow
            michaelneale Michael Neale
            Votes:
            42 Vote for this issue
            Watchers:
            49 Start watching this issue

              Created:
              Updated:
              Resolved: