First of all, I love Github. While working with Github on my opensource projects and also giving feedback to other projects, I sometimes feel like “hmm, If I could do my current task that other way”. So even if its mid april and christmas and eastern is over, I thought I put together a wishlist for what I would like to see on Github. Just a pool of ideas.
(Un)Subscribing to issues
I would like to get notified on several issues. Well, I need to comment on that issue to get notification on this one right now. A “Subscribe” button would be cool to get notifications from a particular issue, without the need of commenting. And the way vice versa. I commented on an issue but no longer want to get notified about this one, I would welcome an unsubscribe button.
Like button for issues
A little bit of Facebook on Github? Maybe? The idea behind is, that people can express an interesst in issues. That would offer an overview for project contributors to see, what the community is interessted in. Contributors can mix items which they have a motivation to work on with items the community has an interesst in. I could imagine a visually representation of this, supporters are shown in a tile view with their avatars on the right side when viewing an issue below the metadata. I know there was voting once, but… 8x8px triangles to vote? For some reasons this got out of issues with the rewrite of version 2. Of course, this is not applicable for every project, an admin setting would be nice to turn this feature on and off – delegating this decision from Github to project owners.
Symlinking organization repositories
Similar to the unix ln -s command, I wish this for repositories. Like my personal repositories are located in my username ‘namespace’ but I also contribute to repositories that live in organizations. The sad thing is that existing tools read your personal repositories and are able to display them anywhere else on the web using the github api. Examples would be LinkedIn or GitView that I use on my projects page. The problem here is, I comitted my major code to organization repos and unfortunately those don’t get listet above. That’s sad, because I cannot show others what I’ve done. The idea is to “symlink” these to my personal ‘namespace’. Symlink definitely is the wrong word here, what about “starring”? I could imagine the following: A button next to the “fork” button on each organization project where I have write access. The icon? Maybe a star. Clicking the the star, creates a symlink on my personal page. Repos there show either a smiley or the fork icon, this would then be a star icon. Of course, the tagline would say “Starred from [....]“. If you click the link, you are relocated to the original location under the organizations ‘namespace’. And yes, the api will retrieve those starred repos so they are visible on linkedin or via gitview and other 3rd party listers.
Repo ‘standards’ /w Ohloh
Source Code Analysis
Ohloh is another service to help with open source projects. The coolest thing back in time when Ohloh was born, was the sourcecount feature. They counted code lines and even further made an analysis based on that, by counting code, comment and blank lines and doing statistics e.g. on the comment-code ratio in a project. Project owners complained their repos got counted wrong when they included libraries like dojo or ext and their projects are expressed as javascript as their main language, even if it wasn’t. The Ohloh guys give us project owners the ability to filter source code on enlistments. Github now displays the language(s) of repos. Their tool linguist recognizes a bunch of common libraries and filters them out. I might remember that they also give us committers an option to commit a “.source”(?) file in the repo root to filter additional matches, though I can’t find the link anymore – or was it just my imagination telling me I read this somewhere, I really cannot remember.
However, Github and Ohloh doing the same here and it would be really nice to have something like a repo-standard on such things. I could think of committing a file with metadata about my project, that Github, Ohloh and others (e.g. Composer) can use for these purposes. So I don’t need to repeat myself defining the meta of my project on various locations.
Tags
When I started using Github, I found the watchlist very helpful. Not because I see the projects activity in my stream but as a reminder to a project. I clicked watch on repositories to store them in my watchlist as I might have an interesst in this project for a certain use-case. This was nice in the beginning, because with a handful projects in the watchlist, it was easy to remind what each project does. Well, by today I’m watching 85 repositories. It’s messy to remember which projects I watched for which purpose. Tagging projects here could help. Like project owners can give tags, that would also help consumers (like me) find the project again we are looking for. Would be cool to have a tagging system here but probably not only in the context of Github, but in the context of the repository, like Ohloh could read a possible metadata file from the vcs and filling the Ohloh database with the read data.
Customizing Github
There are so many services around Github and they pull data from Github, modify it and commit back. A tool that comes into my mind is the css playground dabblet. It saves the snippets as gists, which I think is a very clever storage. Unfortunately opening is only possible from dabblet itself, not Github. If I could install a dabblet app into my Github that itself places a link on my gists page to open that gist in dabblet, that would be hilarious. I know there are bookmarklets existent to realize what I want, but I discourage bookmarklets at all, by having the bookmark toolbar not visible in my browser (and if it’s up to several services, I could pack have my screen full of bookmarklets but that’s another story) I don’t want that, keeping my browser chrome as slim as possible. Another thing is, that would be bound to my personal browser, if I switch workstations (or even browsers) my setup is gone, so having this “in the cloud” is a plus.
Of couse dabblet is just an example here, I think there are much more services that can benefit from a customizable Github and as apps would be installed on a user basis, the original Github stays clean as we already love it.
Messages/Notifications/Subscriptions
Well, I have this idea in my head for a longer time than Githubs announcement to remove private messages. My idea is instead of redirecting the user to the private message page to open a popup showing the latest messages, similar to facebook. Plus having a button within the popup to mark a message as read. Additionally I would suggest a better notification system: Which messages to receive and where to receive them. As email or as private message, checkbox for each, so you have the option to receive them as both.
Subscriptions manager. Would be cool to have an overview, to which items I subscribed and get notifications (and where, email + pm).
Github announced to shut down private message and people should display an email publicy on their profile. Sorry Github, I don’t love you on this one, I read this as an invitation for spammers and harvester to fetch email adresses for free.
Gists
On the gists page, the blue link to my gists is an eye-catcher. The description is gray beside it. Unfortunately I am not a computer and I am very bad at mapping the commit shas of my gists to its content. The description here helps a lot unfortunately it’s not popping into my eye, as it is decent in the background. Would be cool to have title and description for a gist.
Go Github Go!
Hey Github, the community loves you and so I’m not alone with my wishlist, found another one in the web and I think there are plenty tweets to @github with feature requests. That’s mine, hope you enjoy some of my ideas as much as I do and hey, maybe some of them get implemented.
gossi






