DEV Community

Tamir Bahar
Tamir Bahar

Posted on

Write'em Pull Requests

This micro-post is provided as a service to some of my friends, who find it too difficult and time consuming to submit pull requests.

In the past, contributing to open-source was sometimes difficult. You had to contact the maintainers, email them patches, and all sorts of nasty things.
Then, circa 2008, GitHub came along. With GitHub you clone the repo locally, make your changes, push to your own fork, and create a PR. Simple enough.
If you wish to avoid the CLI, though, GitHub allows you to go a step further.

Say you are using my GraphGrabber plugin for IDA Pro, and find that it fails in IDA 7.0. The Qt layout is different now, and line 51 needs to be changed

diff --git a/ b/                            
index 8c301b7..5d8191c 100644                                             
--- a/                                                     
+++ b/                                                     
@@ -48,7 +48,12 @@ def graph_zoom_fit():                                  

 def grab_graph():                                                        
-    widget = sark.qt.get_widget('IDA View-A').children()[0].children()[0]
+    widget = sark.qt.get_widget('IDA View-A').children()[0]              
+    try:                                                                 
+        widget = widget.children()[0]                                    
+    except IndexError:                                                   
+        pass                                                             
     width = widget.width()                                               
     height = widget.height()                                             
Enter fullscreen mode Exit fullscreen mode

All you have to do now, is click the Fork this project and edit the file button
Edit this file

Edit the file in-place


And propose the change


That's it. You're Done!

Now, sure, there are better ways to do this. Details on reproduction of the error would be nice. And when it is not a bugfix, some further discussion and decisions may be required. But this is a start. And once something is started, it is often easier to follow through then without starting it.

Top comments (1)

saschadev profile image
Der Sascha

Nice short post!