GithubHelp home page GithubHelp logo

gitmerger's People

Contributors

bhaalsen avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gitmerger's Issues

Branch name should not do a partial match

One of our older tickets caused a semi-wrong action for the automerge...a different repository with a longer branch name (already merged, but left as remote) has been changed as a result.

Ticket JRA-123 was closed, and branch JRA-1239 was accepted as match. This shouldn't happen.

Cannot decide on branch shows class name

Looks like #1 is broken:

Found 2 branches matching 'JRA-1234', cannot decide which one to merge: GitMerger.RepositoryHandling.GitRepositoryBranch, GitMerger.RepositoryHandling.GitRepositoryBranch

This should show the actual branch name; not the type name.

Limit output in Jira Comment

Jira Comments are limited to 32767 characters, so very verbose merge failures may not make it:

GitMerger.IssueTracking.JiraBasicRestClient: Request to 'http://jira-server/rest/api/2/issue/JRA-1234/comment' apparently failed: The remote server returned an error: (400) Bad Request.
{"errorMessages":[],"errors":{"comment":"The entered text is too long. It exceeds the allowed limit of 32767 characters."}}

This should probably be one or more of those things:

  • Limit the number of charaters for output (each of them) and truncate them either way (best is probably to keep the front parts?)
  • Limit the total length of the comment and try to re-trim parts if necessary
  • Retry with a shorter/different comment when it fails (because right now, only the log file has the error)

Changes during wait time, the second one

Just like #6, we don't consider the actual close status (again). This is checked before the wait time, but not afterwards. #6 added the check for "Disable Automerge", but we should probably do all the checks again (in case the ticket was closed prematurely and shoud not merge yet)

Automatic Revert (similar to GitHub)

GitHub Pull Requests provide a "Revert" button at the end that create another Pull Request that does the inverse. It would probably be nice to provide a link with the issue comment that does this (or rather, shows a HTML form requiring additional confirmation before the revert is attempted). May supersede #2, but may also take longer to implement (especially with failure cases).

This should also add another issue comment with infos about how to get the changes merged correctly. https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.html describes why this is the case; and why a simple additional merge won't work.

No-op merge causes failure

Steps to reproduce:

  1. Create a branch to be merged
  2. Merge the branch by hand, but leave the remote branch
  3. Trigger a merge

Since the Merge has no effect, the following amend (GitRepositoryManager.cs line 133) changes the manually merged commit, and thus fails the push afterwards (even after resetting and re-pulling, since the result is the same there).

Allow branches and/or namespaces to be excluded

Work is done in ticket JRA-1337, but for collaboration purposes another branch JRA-1337_review has been pushed as well. As result, the merger could not decide which one to use (and due to #1 nobody was informed).

Extend the configuration to provide a list of namespaces (that is, for example, review in review/JRA-1337 or private in private/JRA-1337) to be excluded, or even make it a regex (so partial matches without a namespace; such as a _review or _testing are possible).

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.