@@ -113,6 +113,7 @@ func (r *Repository) process(ctx context.Context, pr *github.PullRequest) error
113113 r .markers .MergeMethodPrefix + conf .MergeMethodMerge ,
114114 r .markers .MergeMethodPrefix + conf .MergeMethodRebase ,
115115 r .markers .MergeMethodPrefix + conf .MergeMethodFastForward ,
116+ r .markers .MergeNoRebase ,
116117 }
117118 err = r .removeLabels (ctx , pr , labelsToRemove )
118119 ignoreError (ctx , err )
@@ -161,26 +162,15 @@ func (r *Repository) process(ctx context.Context, pr *github.PullRequest) error
161162 }
162163
163164 // Need to be up to date?
164- if needUpdate {
165- if upToDateBranch {
166- err := r .merge (ctx , pr , mergeMethod )
167- if err != nil {
168- return err
169- }
170- } else {
171- err := r .update (ctx , pr )
172- if err != nil {
173- return fmt .Errorf ("failed to update: %w" , err )
174- }
175- }
176- } else {
177- err := r .merge (ctx , pr , mergeMethod )
165+ if needUpdate && ! upToDateBranch && ! hasLabel (pr , r .markers .MergeNoRebase ) {
166+ err := r .update (ctx , pr )
178167 if err != nil {
179- return err
168+ err = fmt . Errorf ( "failed to update: %w" , err )
180169 }
170+ return err
181171 }
182172
183- return nil
173+ return r . merge ( ctx , pr , mergeMethod )
184174}
185175
186176func (r * Repository ) callHuman (ctx context.Context , pr * github.PullRequest , message string ) {
0 commit comments