Coder Social home page Coder Social logo

Comments (3)

ewingjm avatar ewingjm commented on August 24, 2024

Making use of the full pull request functionality in Azure DevOps would be difficult as we would need to block the Development Hub while a pull request was pending. This introduces a dependency from the merging process on the source control process and also means that we'd have to move unreviewed solution changes to the master instance in order to create the PR. In order to avoid this, we'd need one PR/commit for the source branch and one commit for the solution changes after the source branch had been approved. Having these two separate commits would be an issue as we'd then trigger any CI/CD processes twice.

The review of the source branch in the solution merge should form part of the solution merge review (as this is in effect the pull request replacement) but I appreciate this means we lose out on some of the Azure DevOps pull request functionality e.g. comment resolution and validation builds. I suspect the main issue is the lack of PR validation build.

My suggestion would be that we capture an Azure DevOps build definition ID on the solution records in a Validation Build field and have a Flow trigger this build for the source branch when a solution merge is created. The result of that build could then be fed back to the solution merge record.

from development-hub.

ewingjm avatar ewingjm commented on August 24, 2024

It would be a lot more complicated, but there is probably a way that we could automatically create a PR when a solution merge is created with a source branch (allowing for line-by-line comments and other PR functionality) then trigger the merge process only after both the solution merge is approved and all policies are resolved on the pull request. The same PR could then be updated post-merge and completed automatically. A line could be added to the PR description requesting that it not be completed as it is an automated PR.

from development-hub.

ewingjm avatar ewingjm commented on August 24, 2024

then trigger the merge process only after both the solution merge is approved and all policies are resolved on the pull request

@markcunninghamuk @ksulikow after discussing with Kriss, we might be able to go even further than this and offer the solution extract changes with the pull request. This would involve changing the process so that there is in effect no 'Approve' or 'Reject' at the point of creating the solution merge, but instead we do something like the following:

  1. Create a solution merge as 'Queued'
  2. Check if any solution merge is 'Creating pull request', 'Rejected' or 'Awaiting review' - if not, then continue to 3
  3. Update status to 'Creating pull request' (for example)
  4. Merge the development solution into the target environment
  5. Trigger a pipeline which creates a pull request with the extracted changes (along with any code changes if a source branch is supplied)
  6. On approval of the pull request, update the solution merge to 'Merged' OR on reject of the pull request, update the solution merge to 'Rejected'

This then results in the following scenarios:

Merged

If a solution merge was created after this one, start the merge process.

Rejected

The following buttons appear on the solution merge:

  • Update - merge and push further updates to the development solution (e.g. to fix pull request comments)
  • Cancel - reset the target instance, set the solution merge to an inactive status, and start the merge process on any solution merge created after this one

This would be a significant change to how the Development Hub has been envisaged to work up until now, but it would greatly improve the review/validation process and would highlight any unexpected changes that could come through with the development solution. The branch could also be used to deploy from in order to run automated tests. In addition, it would solve #31.

from development-hub.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.