Hacker News new | comments | ask | show | jobs | submit login
More contributions on your profile (github.com)
240 points by cheshire137 on May 19, 2016 | hide | past | web | favorite | 120 comments

It is good to see the streak go. To quote Jeff Atwood, “If I have learned anything from the Internet, it is this: be very, very careful when you put a number next to someone's name. Because people will do whatever it takes to make that number go up.” I hope this move helps focussing a bit more on quality over quantity.


What about HN karma?

HN used to show the average number of votes/post on your profile and it certainly affected my posting habits. It made me less likely to carry on conversations in the comments or post on stories that either had too much activity or had been on the front page for too long.

There were some benefits too (I started writing more substantial comments), but the net effect had some unintended problems, so I'm pretty happy they got rid of that metric.

Karma has some problems too, and could no doubt do with some adjustments, but I think that it's more useful to have it than not.

I mostly agree. The one thing I really miss is a bookmarklet I made that would highlight the top five posts on a comments page. This was especially useful for quickly finding the gems on pages with hundreds of comments. I wish there was an easy way to discover highly voted comments deeper in the threads.

I generally don't find heavily up voted stuff too useful because it represents the HN monoculture / groupthink.

I'd rather highlight comments that are controversial: they have been voted on a large number of times, with nearly 50% up vote and 50% down vote.

Those comments at least usually represent an interesting diff from either what I already think or what is stock monoculture canon on HN.

Yep. I try to work from the bottom up on threads likely to have group-think. The troll stuff is usually grayed out by the time I get to it. The answers with little info are easy to skim over. That gets to the dissenting opinions quickly.

Our team made http://quickmarklets.com at the TechCrunch Disrupt hackathon. It can currently only be used on http websites (until we host it on https) but it lets you do what you say, on mobile phones.

Do you think it's useful btw to have bookmarklets on the mobile web? Until now, you were limited to safari extensions and intents which you had to install through the app store.

Slashdot back in the day (say circa 2000) had the karma problem. First, people would post snarky comments to get points for being funny, so Malda, Bates, et al. stopped counting "funny" towards karma. Then people started posting group think, all just to see their numbers go up. So /. capped karma at 50, which was beyond the point where you actually accrued any benefits for having good karma. Eventually they moved to a labeled five point likert scale. Apparently that stopped the nonsense since there literally was nowhere to go beyond "excellent".

HN could probably do something similar and mitigate karma ranking.

> Karma has some problems too, and could no doubt do with some adjustments, but I think that it's more useful to have it than not.

I agree that it could use adjustments.

Real-life karma is a good thing, but karma points are mostly a bandaid for "no other way of trying to keep trolling and other poor quality communication down".

The serious downside of having karma is providing undeserved power and prestige via a high status and ability to have certain actions to those that don't necessarily deserve it.

But the only way to get rid of it and get similar benefit is to have a community that can elect users into power that deserve it, like StackOverflow's elections. It would be even better if you gave the power to everyone and they were all wise enough and dependable enough to wield that power as needed, but that is unlikely to happen anytime soon.

I made a custom CSS to remove the Karma next to your profile after getting tired of seeing it and being influenced by it


Especially HN karma.

Just upvoted you, you will be happy to know.

HN has changed over the years, too. For example, each comment used to show its point count to every user, but it was eventually changed to be hidden to everyone but the user who made the comment.

Every now and then i'll make a post without thinking about my words and it'll come off as rude, ignorant, egotistical, etc. Thankfully it usually gets downvoted to hell. But I always feel bad afterwards and will usually take a week or so off, or spend a week logged off, until I get back to posting again. Sometimes I'll just reset my karma entirely by making a new account. It's an interesting phenomena.

I set my top bar to black for a while, to keep my eye from going to the karma display automatically every time.

I assume HN karma is why people complain when a story they submitted makes it to the front page under someone else's submission.

In the absence of karma you'd expect that would make a person happy: the story they liked is getting attention! But people get mad if they miss out on the karma of getting a story voted up.

I am pretty sad about this, because this is gone due to people getting butthurt about other's contribution numbers or some sort of comparison, rather than what it was good for: A self-motivating tool.

The notion of "cheating" the contribution graph is senseless, because it's not a competition. However, what it was great for was motivation to yourself to write code (however minor) every day.

I used the streak count to help push myself to keep working on a project I would've otherwise quickly set aside. My last streak was 27 days. I found when I broke a streak, my motivation to commit was much lower, and I would let my project lie for several days at a time.

Yeah, I'm sad about this too. I sort of knew the counter was there, but never paid any attention to it... until very recently. I started to use it as a self-motivating tool to always do even minimum amount of work one of the numerous after-hours projects I have.

So now that I started to use it, they cut it out. sigh

There is an analogous productivity method called "Don't Break the Chain" involving a prominently-placed real calendar, and big red crosses denoting daily successes. It triggers the same (rightly) proud sensation. Anecdotally I preferred it to GitHub streaks (as I rarely look at my profile).

Any habit tracker site/app will also do this for you - I automate mine with GitHub API data, and get a similar effect (the app notifies of streaks daily).

Do you have an example app that will do this for you?

I use coach.me - the automation is via their undocumented mobile APIs https://github.com/jmaddi/liftapp-client (Lift is coach.me's previous branding)

I like https://chains.cc/, though I'm not aware of any way to automate it.

Commit on iOS is a well made example.

OrgMode also handles this out of the box (or at least what you'd call out of the box on OrgMode...)

I use dontbreakthechain.com

Definitely same here. I started working on some personal projects for Github this winter and ended up getting a long streak of about a month from it. Since then, I've been in the habit of getting long streaks and try to do 2+ commits every day, but as soon as I fall off that streak it takes me 2-3 days to think about contributing again. Not only does it motivate me to write code (almost) every day (which I'd argue is important to developing programming skill), but it also pushes me to share code I was already going to write, which I think is a win-win for everybody.

I'm with you. I liked the steak count as a source of personal motivation, but we still have that don't we? Now you need to look at the squares, but an unbroken sequence of colored squares is just as motivating as a number, isn't it?

Then why remove the numbers? Counting squares is a pain. They should at least let you see these numbers on your own profile. Mind you, someone could easily make a browser extension to do this, basically.

The problem with a browser extension is that it wouldn't count commits past 365 days. Would be better to leave the feature in and have a browser extension to opt out of it.

I'm kind of surprised streaks and such, are things people feel so strongly about. This is how it's used in my product.


The heatmaps are created based on the search results, so if you want to see your contributions, you'll just search for your email. Searches are at the branch level and you can search across multiple branches from different repositories, and so forth.

My intentions for the heatmaps was never to help you visualize commit streaks though. Their purpose was to help you visualize search results, to make it easier for you to drill into certain timelines.

But it only shows up to 1 year...

I wish they made the number available on the page only the account owner could see.

Non-broken streaks are also how Seinfeld keeps motivated:


That's how I was using the feature. Now I'm sad it's gone.

Agreed, mine was the only streak I ever paid attention to and for the last few months it really kept me going, making at least one little contribution per day.

I've seen a few applicants who had faked Github profile graph data. I found this a good indicator of the developer personality/ethics, and we happily passed on them.

If you've passed on them how could you know whether or not it was actually a good indicator of personality/ethics?

How do you fake it? And how do you know if someone's faked it? :S

By using tools like Rockstar - https://github.com/avinassh/rockstar

(PS: I wrote it)

https://github.com/gelstudios/gitfiti and similar are pretty easy to spot. As a user I'd be biased to someone who used that for fun over someone who ('faking' or in all seriousness) has a ton of repos with lots of activity that are ultimately just things like node's left-pad...

Checking their actual commits. If their activity is menial like adding a letter to a file over and over, they obviously aren't legitimately writing that much code.

I actually don't like this change.

Private contributions don't benefit the greater community unless the project is eventually open sourced.

The contribution graph was a nice way to show off how much one contributes to open source, thereby encouraging folks to contribute to open source projects. It's a vanity metric in the first place, so why not use it to help motivate more contributions to open source software?

Because Github has a different incentive: they want as many hobbyist developers as possible using private repos.

They are definitely working on strengthening their value proposition for paying customers. And I really can't blame them, as they are competing against free. GitLab is free. Bitbucket and Microsoft Visual Studio Team Service (VSS) are free for 5 or less users.

What they (GitHub) really need to work on, if it isn't on their radar is a marketplace/extension system. And this is where I think Microsoft may leap frog everybody.

I've only spent a day looking at building extensions for VSS, but I'm really impressed by how much thought they put into making 3rd party solutions, first class citizens. And I think this comes from the fact they understand enterprise.

In enterprise, there are so many crazy edge cases and if you don't have a reasonable answer to how you can address them, customers will pass on you.

We released this last October as a way of broadcasting the work we've been doing in the ecosystem thus far: https://github.com/integrations. There's lots more to be done in that area, and we're learning a ton from our integration partners along the way. Enterprise readiness is one of the big areas we want to keep refining too.

I hope supported injection points is something that will be supported in the future. The way of integrating on top of GitHub with a browser extension, is really a hassle and it's the reason why I'm going to discontinue my Chrome extension.

I would like to bring advanced Git analytics and search to GitHub, but it's not worth the effort considering how easily I can drop it into Bitbucket and VSS.

I like it because if a potential employer were to look at my github it'd look pretty lame. Seeing a boatload of anonymized activity sends the message "hey, what you see mught not be indicative" instead of them saying meh and moving on

I agree. Unfortunately I thought the same was with GitHub's "private repositories are paid" idea, until they switched to unlimited ones.

Anyway as a friend of mine says : "GitHub is Facebook for developers", so I guess the social features are still playing a role in the decisions.

It also makes it somewhat obvious if you quit or got fired from a job (that uses github).

You don't get green boxes for repositories you no longer have access to.

Actually, I found after enabling the new feature I regained a lot of squares from a private organization I am no longer a member of. These squares didn't even show up when I was logged in before.

This is so weird. -.-. I'm having the opposite.

Only if you remove your work email from your account. I still have green boxes for things I don't have access to. But I made sure to leave my work email in my account settings, if you remove it, then you lose all the green boxes.

Do you mean that the committer email is used? (so, if you use your personal email on your work .gitconfig, you're fine already)

Yes, or if you you use the hidden <user_email>@users.noreply.github.com.

I did some contract work for several months where they just gave me access to the organization and removed it when I left. I have nothing for that time.

I'm going to miss streaks. I don't think it's important that you could technically abuse them with an auto-committer, but it's not like streaks are competetive or anything. They're just a tool to encourage you to contribute to FOSS every day.

(rewrote this comment to provide more substance)

Agreed. The presence of a streak counter on Github did more for my productivity than any other feature or factor. They're a tremendously powerful self-motivation tool. Whenever I'm not on a streak I always find some excuse to sit around and do nothing instead of working on a cool project. A huge portion of all the open source work I've ever done has been because I didn't want to break a Github streak.

You could argue that I can always track my streak myself, but the fact that it was a public metric with visible milestones (e.g 100 days) matters. Even though it's a somewhat meaningless vanity metric, I know people will notice it, and people will notice if I miss a day and break it.

I don't mind the private repos change as much, but it could do with showing private contributions in a different colour (or maybe a diagonal slice of the box). With private contributions the boxes lose some meaning because now all it tells you is "does this person's employer use Github" rather than showing how much open source work they do.

I think a more interesting way to do streaks would have been to acknowledge and even encourage occasional time off. Treat them a bit like roller coasters.

For instance: the first contribution in a vacuum is 1 point; contributions for X days in a row are worth 3 points each; if you then “miss” only a day or two, you still get 2 points for the next contribution (unless you wait like a month, in which case it becomes 1 again). And to discourage absurd amounts of continuous work and burnout, contributions could also fall to 2 points after something like 14 consecutive days, where they might return to 3 if you take just 1 day off.

You could test a few of these counting strategies with the API - I'd be interested to see it.

> They're just a tool to encourage you to contribute to FOSS every day.

The “every day” is a problem. Contributing to FOSS is a good thing, but encouraging people to write code every single day can lead to unhealthy habits.

> but it's not like streaks are competetive or anything

There are, just like your number of commits or your number of followers.

Writing code every day doesn't necessarily mean doing more than a few short lines. I like to think of it as a mental exercise, like how solving puzzles every day helps you think better. Also, there are days where I have kept a streak just by documenting something or writing up issues of a repository, which are things that don't involve programming but are still useful skill related to programming (and are much more relaxed than havong to write 100 lines of code for some project).

I don't think people's unhealthy behaviors are my problem. As someone who doesn't code for my job, having this helped keep me motivated for hobby programming. And I don't think it's inherently "unhealthy" to write code on a weekend. Coding can be fun, and done for enjoyment.

I'm really glad to see this change, for similar reasons expressed elsewhere in this thread.

Next up, GitHub, is doing a better job of determining what is a "contribution". Specifically, issue triage doesn't count as contribution. If I open an issue, I get a contribution, but if I close an issue, I don't. I do a lot of issue triage, and the lack of symmetry always bugged me: if someone opens up an invalid bug report, and I do the triage work, determine that bug was already fixed on master, and close it, they get a contribution, but I don't!

In other words, once you start quantifying what is and isn't a contribution, you also start to quantify what kind of labor is valued and not valued. I'd like to see some kind of revision to these rules that makes sure people who do valuable work are getting recognized for it.

I love the pace of changes at GitHub after the "Dear GitHub" letter, it feels like they woke up from years-long hibernation.

Did they address anything in that letter?

Yep, all the three major issues have been mostly addressed: https://github.com/dear-github/dear-github

Have they addressed not being able to add custom text when someone goes to the new issue tab?

If you are talking about templates, then yes: https://github.com/blog/2111-issue-and-pull-request-template...

I wasn't. The third thing in the "Dear GitHub" letter was that people wanted to make the "Please check the CONTRIBUTING.md" customisable.

As somebody who enjoyed having the streak to self-motivate, I started reading this post super-excited: a common complaint I've heard about streaks was the requirement to open-source, and I know lots of people who like to code but wanted the freedom to experiment without their code being scrutinized.

Then I got to the loss of the commit streak counter. The main impact there is that it's now not reasonably possible for me to track my streak anymore, since GitHub only serves up 366 squares. So what they've effectively done for me is remove that little bit of excitement that can help motivate me to improve my skills when I'd otherwise slack off.

I'm going to see what I need to do to get the calculation for longer streaks, but it seems likely it'll have to be something custom that relies on my local filesystem for git data, which is annoying.

You are not taking a single day off in a year?

I've brushed my teeth every single day for almost a year now. Maybe it's time for a day off before I get burned out on toothbrushing? If someone sees coding a bit every day as a healthy habit, a great way to start the day, I'm not sure why there should be anything wrong with never taking a day off from it.

I've written code every day for the past 997 days. Which is now going to be much more work to keep track of, courtesy of this change :)

I'll likely be working this weekend on something that polls github for each day moving backwards, or modifying a friend's code that parses local repo metadata.

I was about to say "if private repo contributions count toward the code streaks, then someone could write a commit-bot to artificially inflate their code streak completely undetected."

But the code streak is being removed too, which conveniently makes this potential loophole a nonissue! (However, it wouldn't surprise me if commit bots are used regardless to give an impression of coding-every-day on the graph.)

Is there a risk that people still want a very green profile? With private repos you can use a commit bot without getting caught. I think public information should be based on public commits.

Why is it a risk? If you're applying for a job and potential employers see your all-green contribution graph, there is a very high chance they'll ask you to elaborate on that. At least now it is possible to actually show metrics for writing code that cannot be published or open sourced. Unfortunately quite a few recruiters care about it(because being a rockstar on github is a trend), but the initial screening process would filter out those with faked commit graphs.

I have a public repo that has bogus commits to make my profile green. The repo is even very helpfully named if you take the two seconds dsto look at just the name.

But as others have pointed out, Dropbox wants people to have private repos. Bizdev wins I guess.

There are also commit bots for other contribution graph hacks:


This one will also adds instant C++ history to make you a "Rock Star" C++ programmer.


ha ha thanks for the mention, I am the author of that tool (:

I think that the fact that GitHub doesn't count pushing to non-master branches as "contributing to free software" is quite silly. If I do a lot of work on a feature branch and it isn't merged, it doesn't count as "work". Not that I really care about imaginary green internet squares.

>Now that every paid plan includes unlimited private repositories, you can experiment all you want in private and still add to your contribution graph. For more information, read our help guide for toggling private contributions on your profile.

I think this can also be used to show fake contribution within private repos with a bot like these https://github.com/gelstudios/gitfiti it becomes easy to show more activity without doing much work.

The private repository visibility is great. Not showing streak count though super sucks, I'm midway on my best personal streak I've ever had. It may not be much to some people, but to me making progress on my personal project 67 days in a row was a huge motivator. On days when things aren't going great, I still try to do some work because heck I'm not going to end a 67-day streak just because I had a bad day.

Hmmm. This does not help those of us doing work on code hosted in places other than GitHub and entrenches their position as the default system for managing software. It's tempting to game the system as well, setting up a private repo that I can commit to automatically every day.

I don't think either of these things are positive!

I'm sad they still don't provide an option to hide all contributions. There is a huge difference between presenting all contributions in an immediately visible chart smack on someone's landing page vs. tacitly allowing the "same data" to be public but requiring people to do a lot of work to actually track down a given user's public contributions if they are so interested.

I don't mind really if someone wants to do that work. If third party sites pop up that do that work and turn it into visualizations, that's OK too, because you can always dispute the accuracy or intentions of third parties.

But I am not OK with my contributions being extremely easy to visualize just by looking at the landing page of my profile.

I've had several recruiters and interviewers comment on it, and ask me antagonistic and probing questions about my commit history to a particular side project repo that I just have for fun. Even when I explain that I've had significant family issues in the past year or so which has greatly impacted my ability to do as much OSS development as I want, they never seem satisfied. It just gives them an extra lever to use to reject someone for political bullshit reasons.

Since this is common from recruiters and employers, it's only fair, in my view, that they should have to really work a lot harder to aggregate that data themselves. Or at least allow me to control whether or not my own user landing page does or doesn't present that data directly.

Hilariously, at the bottom of the page GitHub says you can send them feedback by notifying @github on Twitter ... except I don't have or want a Twitter account ... so I can't even provide feedback.

Maybe they could bring back streaks but make them only visible to yourself as a purely motivational thing?

I like the change. I keep all my online coursework (Coursera and the like) in Github. This is code and work that cannot be public because it would violate the class code of conduct. It always made me a little sad to see big barren streaks in my contribution graph. Especially when I knew I had been coding more than usual and working on really interesting stuff.

Never thought of this use case! Sounds like GitHub did the right thing.

Why does anyone pay for private github repos when they're free on bitbucket?

Students can obtain unlimited private GitHub repos for free via the GitHub Student Pack:


Shitty as a high-school student at a school that doesn't have official student emails since they'll just immediately reject my application for the student pack :(

Having to apply for it still sounds a lot less convenient than just using bitbucket where it's free to begin with. What does github offer better besides brand recognition?


I've used both and the only one I'd complain about is GitHub, especially their terrible desktop client.

Not necessarily. I know a few people who had emailed their ID cards (which had validity) as a proof for student status because they didn't have a student email. You could give it a shot.

They take this away after 2 years. Bitbucket gives students an Ultimate account for free, forever.

Or they could use GitLab which is free software (the community edition). And you can also make private repos without fee as well.

I dont pay for private GitHub repos but I do prefer their UI over Bitbucket's.

I think this is a great change. I don't go after internet points myself, but I think the graph has various other benefits than just showing how many times one can do a git commit in an hour. For example if I am sending an issue or a PR to an repo maintained by a single person, I can do some preliminary judging of response times and how likely is the change going to land by just from seeing the graph. Obviously private repos skewed this a lot: some people seem to have disappeared from the end of the earth, but in reality they might just be busy working on something else, privately.

In general, the graph also works as personal log across ALL of my projects: everything I do is in GitHub, and I can easily see what kind of projects I have worked on in the past year and analyse my progress across all the projects I contribute to. I think it's a great tool with tons of benefits.

This is great for people applying for a new job. So much activity happens in private repos that it can look like you aren't that active at all. (Not that showing off activity is necessary or sufficient, but it's still nice. Recruiters and hiring managers do look.)

I wish it was possible to turn off the graph entirely; I don't see why I would want to make it so completely obvious when I'm on holidays or for one reason or another not working on GitHub based repos.

Did they ever start showing contributions to commits to forks? If I remember correctly, they only only counted stuff you had direct access/commit bits to, which I found annoying...

If you open a pull request to the base repo and it gets accepted, then it shows in the history.

I wish it would show contributions to branches other than master.

Your contributions will eventually be counted when your branch is merged to master.

Poor John Resig!...IIRC, his streak goes back 3+ years https://github.com/jeresig

I really really like this change - just general proof even if weak as hell that I've been constantly working and coding is a big deal if I don't have a ton of personal projects.

With this change, I guess github has changed from being about open source to being about enterprise customers. Which is fine for a company which is about making money.

That said, I think it's sad. It's a shame, but I guess that's just another signal that open source projects should find another home more fitting to their ideals (like gitlab).

To me, this is good news. It's a small, tiny, stupid thing, but I have several personal projects that I maintain as my own private repos and not seeing them counted there always felt a little wrong.

The number of contributions in my chart just increased 20-fold.

You have to logout to see how others see your profile.

Toggling the 'contributions settings' to 'public only' on my profile still shows me all my private contributions.

You can also open a private browsing window.

I am happy and sad about this.

I am happy because it means that the contribution graph looses it's importance. I could just use a cron script that auto commits 1-3 commits every day and noone could verify the importance of these commits. This is good because many people just got into the habit of updating their dotfiles once a day or do some very very insignificant things to keep the streak going.

On the other side it's sad because the graph only showed involvement with open source. Private repositories shouldn't be in there to taint the image.

I hope that with this people stop with artificial streak pushing and actually show their open source contributions only.

This is stupid. They might as well let users define which squares they want filled with a config file.

Before this I could determine what kind of open source work someone did by looking at this graph and clicking on random days of activity to see details.

Now the "everyone is equally awesome and meritocracy is a swear word" attitude has eliminated the last of the usefulness of this particular feature.

Couldn't they solve this by just having a drop down to toggle display of public or private commits?

> Now the "everyone is equally awesome and meritocracy is a swear word"

I think you mean everyone except those who point out how that completely doesn't work in the real world. Those people get down-voted to the abyss ;)

Oops,I have to break my code streaks up.It make me realize that quality is important, not quantity.

Is it me, or is the newly moved contributions text 1 pixel too high?

And here I was hoping to see gists count towards streaks...

so sad, cannot get 'long streak' :(

This is a nice change. If you care, you can avoid areas of emptiness from your profile by adding your private repo commits.

One thing this doesn't address (and I assume GH would never allow) is commits from other sources, like BitBucket, GitLab, etc.

> One thing this doesn't address (and I assume GH would never allow) is commits from other sources, like BitBucket, GitLab, etc.

Huh? A git commit is a git commit, doesn't matter whether it was made with the git cli, github (ie libgit2), or any other tool. Commits don't store what tool was used to make them.

> Huh? A git commit is a git commit

I believe the parent post is referring to commits made to a repo that isn't being hosted on GitHub.

One workaround could be to host your fork on GitHub and even though the origin may be on a different hosting service.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact