AutoOpenInactive bugfix and action prepare return values #361
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR originated as an unexpected behavior on my production RT instance. I noticed that tickets were being moved into open status unexpectedly -- for example, a new ticket that the requestor made the first reply to would be opened by the requestor's reply.
I initially thought this was a bug in
AutoOpen
, so I went looking through the code of it and other actions. I came across a sort of red herring -- that thePrepare
guards were returning true instead of false. These actually don't have a functional effect because theCommit
phase will return early if the last part ofPrepare
is not reached, but they do make the debug log messages more confusing since, really,Commit
should never be run ifPrepare
fails to satisfy all of its guard clauses.Eventually, though, I realized that
AutoOpenInactive
was running not just oninactive
statuses (but also oninitial
statuses), and so it was the culprit of my "new tickets being auto-opened" problem.I am submitting these two commits to fix the bug in
AutoOpenInactive
so that its behavior matches its documentation and name (only operating on tickets in aninactive
status), and to clean up thePrepare
blocks of three RT Actions so that the return value semantics are more correct.