Hacktoberfest / hacktoberfest-2020

Hacktoberfest - App to manage the annual open-source challenge, used for the 2019 & 2020 seasons.

Home Page:https://hacktoberfest.digitalocean.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hacktoberfest exportable badge

C0DK opened this issue · comments

Feature description

I'd love to flash my hacktoberfest successes on various social media (maybe my github personal page) via a badge i.e like this (just possibliy better styled), with a link to my contributions. Currently i can only flash my proud success physically, but only a few non-virtual connections of mine, know what Hacktoberfest is, so that is a bit moot.

Hacktoberfest profiles are private by design, to avoid leaking any private information etc. If we want to link to contributions, the best thing to do would be to link to a GitHub search for a user's PRs. (Note, we'd need a different solution if we move to multi-provider)

As for badge design, I have been talking with the folks over at shields.io at this -- I don't think we should roll our own custom badge service, we should let them handle that as they're the experts. However, there is a limitation on their end currently with custom images on badges and our logo is too large in bytes for them to support at present.

After experimenting with shields.io, I was able to include the Hacktoberfest logo into the badge by using an optimized SVG (prepared with SVGOMG) as the data, rather than PNG. I ungrouped the SVG elements before optimization to cut down on space further. The size of the encoded base64 data is 5684 bytes, well under the size limitation of 8192 bytes for total header size. The badge can be further tweaked if needed using additional URL parameters.

https://img.shields.io/badge/hacktoberfest-2020-blue?labelColor=072540&color=lightgray&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDcwIiBoZWlnaHQ9IjQzMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZmY4YWUyIj48cGF0aCBkPSJNMTEyLjg0IDI0Ni4wOWMtMy41MDUtNS4zMTgtMTAuNjk3LTYuNzY5LTE2LjAxNi0zLjI2My0yLjUzOCAxLjY5Mi00LjM1MSA0LjI5MS00Ljk1NiA3LjMxMi0uNjA0IDMuMDIyIDAgNi4xMDQgMS42OTMgOC43MDMgMS4wODcgMS42MzIgMy4zODQgMy41MDUgNS40MzkgMy43NDd2OC4wOThjMCAyLjI5Ny0xLjk5NSA3LjczNi03LjY3NiA3LjczNmgtMjAuOTd2LTIwLjY2OWMxLjU3LS42NjUgMi45Ni0xLjU3MSA0LjE3LTIuOTAxIDQuMjMtNC43NzQgMy44MDctMTIuMDg3LS45NjgtMTYuMzE3LTQuNzc0LTQuMjMxLTEyLjA4Ny0zLjgwOC0xNi4zMTguOTY3LTIuMDU0IDIuMjk2LTMuMDgyIDUuMjU4LTIuOSA4LjM0czEuNTcgNS45MjIgMy44NjcgNy45NzdjLjI0Mi4xODIuNDg0LjQyMy43MjYuNjA1Ljk2Ny43MjUgMS45OTQgMS4yMDggMy4wODIgMS42MzF2MjcuMzE3Yy0xLjYzMi42NjUtMy4yMDMgMS42MzItNC40NzIgMy4wMjItNC4yMzEgNC43NzUtMy44MDggMTIuMDg3Ljk2NyAxNi4zMTguMjQxLjE4MS40ODMuNDIzLjcyNS42MDQgNC43NzQgMy42MjYgMTEuNjA0IDMuMDIyIDE1LjY1My0xLjUxMSAzLjkyOC00LjQxMiAzLjkyOC0xMS40MjItLjA2LTE1LjM1LS42MDUtLjYwNS0xLjA4OC0xLjA4OC0xLjUxMi0xLjQ1MWgxOC4xOTFjMTEuMTgxIDAgMTYuMTM2LTkuNDI4IDE2LjEzNi0xNS44MzR2LTcuOTE3Yy43MjYtLjMwMiAxLjQ1MS0uNjA0IDIuMTE2LTEuMDg4bC43MjUtLjU0NGMyLjE3Ni0xLjY5MiAzLjYyNi00LjA0OSA0LjIzLTYuODI5LjQ4NC0zLjA4Mi0uMTItNi4xNjUtMS44NzMtOC43MDN6bS01Mi4yNzcgMS4zOWMtLjA2LTEuMzkuMzYzLTIuNzggMS4zMy0zLjgwNyAxLjg3My0yLjA1NSA0Ljk1NS0yLjM1NyA3LjEzMS0uNjY1LjEyLjA2LjI0Mi4xODEuMzAyLjI0MiAyLjE3NiAxLjkzNCAyLjM1NyA1LjI1OC40MjMgNy40MzMtMS45MzQgMi4xNzYtNS4zMTggMi4zNTctNy40MzMuNDIzLTEuMDI4LS45MDYtMS42MzItMi4yMzYtMS43NTMtMy42MjZ6bTkuNDg4IDUyLjA5NmMtMS45MzQgMi4xNzUtNS4yNTggMi4zNTctNy40MzMuNDIzcy0yLjM1Ny01LjI1OC0uNDIzLTcuNDM0YzEuODczLTIuMDU1IDQuOTU2LTIuMzU3IDcuMTMxLS42NjUuMTIxLjA2MS4yNDIuMTgyLjMwMi4yNDIgMi4xNzYgMS45MzQgMi40MTggNS4yNTguNDIzIDcuNDM0em0zOC4zMTctNDYuMDUyYTUuMzQ0IDUuMzQ0IDAgMDEtMi4yMzcgMy4zMjRjLTEuMTQ4Ljc4NS0yLjU5OCAxLjAyNy0zLjk4OC43ODUtMS4zOS0uMzAyLTIuNTk5LTEuMDg3LTMuMzI0LTIuMjM2LS43ODUtMS4xNDgtMS4wMjctMi41OTktLjc4NS0zLjk4OS4yNDEtMS4yNjkuOTA2LTIuMzU3IDEuOTMzLTMuMDgyLjEyMS0uMDYuMjQyLS4xODEuMzYzLS4yNDEgMi40MTctMS42MzIgNS43NDEtLjk2NyA3LjMxMiAxLjUxLjc4NiAxLjA4OCAxLjAyOCAyLjUzOS43MjYgMy45Mjl6TTE4Ny43OCAxMzYuMDR2NzkuNTMzbDE4Ljg1Ni0xOC45MTZWNzguODY3bC0zNC4zMjctMzQuMzI4LS4xMjEuMTItLjEyMS0uMTJoLTE4LjYxNGwzNC4zMjcgMzQuMzI4ek0yOTAuNDYgOTAuMjkxdjI1MS42NWwyMi44NDUgMjIuODQ1IDkuNDI4LTkuNDI4LTEzLjQxNy0xMy40MTdWNzguODYxbC0zNC4zMjctMzQuMzI4aC0xOC44NTZsMzQuMzI3IDM0LjMyOHpNMTUzLjQ1IDQ0LjU0MWgtLjMwMmwuMTgxLjEyek0yNDQuNjQgMjA3Ljk2bC01Ni44NyA1Ni44N1YzODcuN2wtMjIuOTA1IDIyLjkwNWgxOC45MTZsMjIuODQ1LTIyLjkwNVYyNjQuODNsMzguMDE0LTM4LjAxNHpNMTMwLjU0IDkwLjU5M0w5Ni4yNzIgMTI0Ljg2aDE4Ljg1NmwyNC45LTI0LjgzOXpNMzU1LjA2IDM0MS45NGgtMTguODU2bDExLjQyMyAxMS40MjMtMzQuMzI4IDM0LjMyNy0yMi44NDUgMjIuOTA1aDE4Ljg1NmwyMi44NDUtMjIuOTA1IDExLjQ4My0xMS40MjIgMjIuODQ1LTIyLjkwNXoiLz48L2c+PHBhdGggZD0iTTMxMy4zIDM2NC43OWwtMjIuODQ1LTIyLjg0NVY3OC44NjVsLTM0LjMyNy0zNC4zMjhMMjIxLjggNzguODY1bDIyLjg0NSAyMi44NDR2NTYuOTMxbC01Ni44NyA1Ni45M1Y3OC44NmwtMzQuMzI3LTM0LjMyOC0uMTIxLjEyLS4xODItLjEyLTY4LjU5NCA2OC42NTUgMTEuNzI0IDExLjY2NCAzNC4yNjctMzQuMjY3IDExLjQ4MyAxMS40MjJ2Mjg1LjY4bDIyLjg0NSAyMi45MDUgMjIuOTA1LTIyLjkwNXYtMTIyLjg3bDU2Ljg3LTU2Ljg3djE1Ni44M2w0NS44MSA0NS44MSAyMi44NDUtMjIuOTA1IDM0LjMyOC0zNC4zMjgtMTEuNDIzLTExLjQyMnoiIGZpbGw9IiM5YzQ2NjgiLz48ZyBmaWxsPSIjOTNjMmRiIj48cGF0aCBkPSJNMTY2Ljg2IDkzLjg1N2gtNC41OTN2MjczLjI5aDQuNTkzek0yNzAuOTQgMjk1LjQxbC00LjU5MyA0LjEwOVY5My44NTloNC41OTN6Ii8+PHBhdGggZD0iTTE2Ni42OCAyNjIuNTNsLTMuNTA1LTMuNzQ3IDEwMy42NS0xMDMuNjUgMy41MDUgMy43NDd6TTI3OS40NiAyNjIuOTZjLTguMDM4LTEuNTcyLTEyLjk5NCAyMC40ODctMTcuODI4IDQxLjIxNy02LjQwNyAyNy4zNzctNi4yMjUgNDAuMDA4LTcuMzc0IDY2LjIzNy0uNDgzIDEwLjgxOC42MDUgMjQuMTE0LjYwNSAyNC4xMTRzOS4xMjYtMjMuMDg2IDE5LjE1OC0zNi44NjZjNy40MzMtMTAuMTUzIDE1LjQ3MS0xOC45MTYgMjcuMDE1LTIzLjI2NyAxMy44MzktNS4yNTggMjguMDQyLTguMjggMjguNzY3LTE1LjgzNC4yNDItOC44MjQtMTEuNDIyLTExLjU0NC0xMi42MzEtMTMuMzU3LS45MDctLjk2Ny0xLjA4OC0yLjUzOCAxLjQ1LTQuMjMgNS4wNzctMi45NjIgMTAuNDU2LTUuMzE5IDE1Ljg5NS02Ljg5IDE0LjIwMi00LjExIDM3Ljk1NC02LjY0OCAzOS40MDQtMTQuOTI4IDEuNjkyLTkuODUxLTEyLjQ1LTEyLjE0Ny0xNS4xMDktMTQuNTA0LTIuOTAxLTIuNTM4LTQuNTkzLTguMzQgNi40MDYtOS45MTIgMTAuMjE0LTEuNTEgMjIuOTY2LS43MjUgMzEuOTEtMi4yOTYgOC45NDUtMS41NzEgMjEuMTUzLTguMzQgMTcuODI5LTE0Ljk4OC0zLjMyNC02LjU4OC0yMC4wMDQtMy4wODItMTYuMTM2LTExLjk2NiAyLjE3NS00Ljg5NiAyMS4zMzMtMTMuODQgMzAuOTQzLTE4LjYxNSAxMi42MzEtNS44MDEgMjMuMDI2LTE3LjA0MiAxNS4zNS0yNy40MzctMTAuOTM5LTEyLjg3My00NS43NDkgNC40NzItNTcuODM3IDEyLjI2OC0xMi4wMjYgNy44NTctMTYuODAxIDEwLjE1My0xNy4yODQgMy43NDcuNDIzLTE2Ljg2Mi01LjI1OC0yMS44MTctMTQuOTg4LTExLjY2NC05LjY3IDEwLjE1My0xNi45MjIgMjguMjIzLTIyLjI0MSAzOC4xOTUtNS4zMTggOS45NzItOC43MDIgMTEuMTItMTAuODc4IDguNjQzLTIuMTc2LTIuNDc4LS4zNjMtMTQuOTI4LTQuMjkxLTE2LjU2cy0xMy44NCAzLjY4Ny0yMy40NDkgMzQuMjA3Yy0yLjc4IDguNzYzLTQuODk1IDIyLjI0LTUuMzc5IDIzLjg3Mi0uNzI1IDIuMzU3LTIuNDc4IDQuNDcyLTMuODA3IDMuMTQzLTIuNDc4LTIuMjM3LTEuNDUxLTExLTUuNS0xMi4zMjktLjA2IDAgMCAwIDAgMHoiLz48L2c+PHBhdGggZD0iTTI0Ny42MSA0MjkuNjRjMS4wODgtMTQuNjI1IDguNDAxLTkwLjIzIDQ0LjcyMy0xMzkuNzMgNDIuNTQ3LTU3Ljk1OCAxMDguNDItODguMzU3IDEwOS4wOS04OC42NTlsMS45MzQgNC4yOTFjLS42NjUuMzAyLTY1LjQ1MiAzMC4yNzgtMTA3LjIxIDg3LjIwOS0zNS41MzYgNDguNDA5LTQyLjcyOCAxMjIuODYtNDMuODE2IDEzNy4yNXoiIGZpbGw9IiNmZjhhZTIiLz48cGF0aCBkPSJNMzk2LjE4IDExMi44Vjg4LjMyNGgtMjQuNDc2VjExMi44ek05Ni43OCAzNzYuMjd2LTI0LjQ3Nkg3Mi4zMDR2MjQuNDc2eiIgZmlsbD0iIzkzYzJkYiIvPjxwYXRoIGQ9Ik0zNzEuNzcgMTM3LjI4di0yNC40NzdoLTI0LjQ3NnYyNC40Nzd6IiBmaWxsPSIjOWM0NjY4Ii8+PGcgZmlsbD0iIzkzYzJkYiI+PHBhdGggZD0iTTY4LjI5NCAxMzIuNzhTNTMuNzkgMTYwLjU4MSAyMiAxNDcuNTI3YzAgMCAxMi43NTItMzAuNzAyIDQ2LjI5NC0xNC43NDd6TTgyLjI1NCAxNDIuODFzMjIuNjY0IDI1LjQ0MyAwIDQ4LjU5Yy0uMDYgMC0yNC4wNTMtMjUuNTY0IDAtNDguNTl6TTMyOC4yOSAxMDIuOThzOS40ODgtMjUuMjAxLTMuNjI2LTQ2LjUzNWMtMTYuMTk3LTI2LjI5LTguMzQtNDUuMjY2LTMuMzI0LTU2LjQ0NyAwIDAgMjYuMTA4IDMzLjE3OSAyOC44MjggNTEuOTE0IDIuNzggMTkuMDk4LTIuNjU5IDI5LjA3LTIxLjg3OCA1MS4wNjh6Ii8+PC9nPjwvc3ZnPg==

You should be able to use the icon on the dedicated Hacktoberfest badge that shields has: https://img.shields.io/github/hacktoberfest/2020/digitalocean/hacktoberfest

My point would simply be to actually highlight exactly what my contributions were, be it opt-in, but i guess a github query is decent for doing exactly that. I'm, however, not able to figure out how i search for only pullrequests on all of github by a specific user. Any ideas (or examples) would be appreciated.

Other than that, i like the example shown by @staceybellerose - and i might use that if i find a satisfactory link to supply.

I'm, however, not able to figure out how i search for only pull requests on all of github by a specific user. Any ideas (or examples) would be appreciated.

Hey @C0DK, you can follow the steps to get all of your pull requests on Github

  1. Modify your user name and paste this into the Github search is:pr author:<your username> archived:false is:public
  2. Press enter
  3. You'll get the link to your Pull Requests in the browser search bar which you can share with others!

I hope it helps 👍

Oh. My. God. I think i love you.

As this is out of scope for the Hacktoberfest app itself, I will close the issue. But, it sounds like some great external solutions have been provided above.