@@ -842,6 +842,24 @@ private ContextMenu CreateContextMenuForLocalBranch(ViewModels.Repository repo,
842842 menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
843843 menu . Items . Add ( createBranch ) ;
844844 menu . Items . Add ( createTag ) ;
845+
846+ if ( upstream != null )
847+ {
848+ var remote = repo . Remotes . Find ( x => x . Name . Equals ( upstream . Remote , StringComparison . Ordinal ) ) ;
849+ if ( remote != null && remote . TryGetCreatePullRequestURL ( out var prURL , upstream . Name ) )
850+ {
851+ var createPR = new MenuItem ( ) ;
852+ createPR . Header = App . Text ( "BranchCM.CreatePRForUpstream" , upstream . FriendlyName ) ;
853+ createPR . Icon = App . CreateMenuIcon ( "Icons.CreatePR" ) ;
854+ createPR . Click += ( _ , e ) =>
855+ {
856+ Native . OS . OpenBrowser ( prURL ) ;
857+ e . Handled = true ;
858+ } ;
859+
860+ menu . Items . Add ( createPR ) ;
861+ }
862+ }
845863 menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
846864 TryToAddCustomActionsToBranchContextMenu ( repo , menu , branch ) ;
847865
@@ -1060,6 +1078,9 @@ public ContextMenu CreateContextMenuForRemoteBranch(ViewModels.Repository repo,
10601078 e . Handled = true ;
10611079 } ;
10621080
1081+ menu . Items . Add ( delete ) ;
1082+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1083+
10631084 var createBranch = new MenuItem ( ) ;
10641085 createBranch . Icon = App . CreateMenuIcon ( "Icons.Branch.Add" ) ;
10651086 createBranch . Header = App . Text ( "CreateBranch" ) ;
@@ -1080,6 +1101,26 @@ public ContextMenu CreateContextMenuForRemoteBranch(ViewModels.Repository repo,
10801101 e . Handled = true ;
10811102 } ;
10821103
1104+ menu . Items . Add ( createBranch ) ;
1105+ menu . Items . Add ( createTag ) ;
1106+
1107+ var remote = repo . Remotes . Find ( x => x . Name . Equals ( branch . Remote , StringComparison . Ordinal ) ) ;
1108+ if ( remote != null && remote . TryGetCreatePullRequestURL ( out var prURL , branch . Name ) )
1109+ {
1110+ var createPR = new MenuItem ( ) ;
1111+ createPR . Header = App . Text ( "BranchCM.CreatePR" ) ;
1112+ createPR . Icon = App . CreateMenuIcon ( "Icons.CreatePR" ) ;
1113+ createPR . Click += ( _ , e ) =>
1114+ {
1115+ Native . OS . OpenBrowser ( prURL ) ;
1116+ e . Handled = true ;
1117+ } ;
1118+
1119+ menu . Items . Add ( createPR ) ;
1120+ }
1121+
1122+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1123+
10831124 var archive = new MenuItem ( ) ;
10841125 archive . Icon = App . CreateMenuIcon ( "Icons.Archive" ) ;
10851126 archive . Header = App . Text ( "Archive" ) ;
@@ -1099,16 +1140,10 @@ public ContextMenu CreateContextMenuForRemoteBranch(ViewModels.Repository repo,
10991140 e . Handled = true ;
11001141 } ;
11011142
1102- menu . Items . Add ( delete ) ;
1103- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1104- menu . Items . Add ( createBranch ) ;
1105- menu . Items . Add ( createTag ) ;
1106- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
11071143 menu . Items . Add ( archive ) ;
11081144 menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
11091145 TryToAddCustomActionsToBranchContextMenu ( repo , menu , branch ) ;
11101146 menu . Items . Add ( copy ) ;
1111-
11121147 return menu ;
11131148 }
11141149
0 commit comments