{"id":17017435,"url":"https://github.com/kaustubhgupta/portfoliofy","last_synced_at":"2025-07-04T07:04:48.323Z","repository":{"id":40622315,"uuid":"301131440","full_name":"kaustubhgupta/PortfolioFy","owner":"kaustubhgupta","description":"🔥 Dynamically Self Updating Portfolio GitHub Action","archived":false,"fork":false,"pushed_at":"2022-06-27T05:58:06.000Z","size":13143,"stargazers_count":123,"open_issues_count":6,"forks_count":20,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-08T20:17:21.395Z","etag":null,"topics":["docker","github-actions","github-api","github-pages","github-stats","hacktoberfest","portfolio","project","pygithub","pygithub-examples","python"],"latest_commit_sha":null,"homepage":"https://www.kaustubhgupta.me/PortfolioFy","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaustubhgupta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-04T13:04:00.000Z","updated_at":"2025-03-26T04:42:52.000Z","dependencies_parsed_at":"2023-01-11T17:21:55.342Z","dependency_job_id":null,"html_url":"https://github.com/kaustubhgupta/PortfolioFy","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/kaustubhgupta/PortfolioFy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhgupta%2FPortfolioFy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhgupta%2FPortfolioFy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhgupta%2FPortfolioFy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhgupta%2FPortfolioFy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaustubhgupta","download_url":"https://codeload.github.com/kaustubhgupta/PortfolioFy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhgupta%2FPortfolioFy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263464184,"owners_count":23470473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","github-actions","github-api","github-pages","github-stats","hacktoberfest","portfolio","project","pygithub","pygithub-examples","python"],"created_at":"2024-10-14T06:36:38.701Z","updated_at":"2025-07-04T07:04:48.291Z","avatar_url":"https://github.com/kaustubhgupta.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![PortfolioFy](https://socialify.git.ci/kaustubhgupta/PortfolioFy/image?description=1\u0026font=KoHo\u0026forks=1\u0026issues=1\u0026language=1\u0026owner=1\u0026pattern=Floating%20Cogs\u0026pulls=1\u0026stargazers=1\u0026theme=Light) \n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/python%20-%2314354C.svg?\u0026style=for-the-badge\u0026logo=python\u0026logoColor=white\" align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/github%20actions%20-%232671E5.svg?\u0026style=for-the-badge\u0026logo=github%20actions\u0026logoColor=white \"align=\"center\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.producthunt.com/posts/portfoliofy?utm_source=badge-featured\u0026utm_medium=badge\u0026utm_souce=badge-portfoliofy\" target=\"_blank\"\u003e\u003cimg src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=297755\u0026theme=dark\" alt=\"PortfolioFy - 🔥 Dynamically Self Updating Portfolio GitHub Action | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\nDevelopers create hundreds of repositories, and hardly a few of them are presentable and showcased on social media/LinkedIn. This GitHub action allows you to generate your self-updating portfolio consisting of Projects, Hackathons, or maybe the latest Blogs.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./images/combinedPreview.png\" align=\"center\"\u003e\n\u003c/p\u003e\n\nAn index file is pushed by this action which with the help of GitHub pages can be deployed as soon as it is committed to the repository. If you write blogs, then you can add [Blog Post Workflow](https://github.com/marketplace/actions/blog-post-workflow) to the main workflow for updating your portfolio. !\n\n## Getting Your Profile Ready ⚡\n\n- The repositories need to have a `project`  topic to add to the project section and a `hackathon` topic to add them in the hackathon section. If you add both the topics to the same repository then it will be reflected in both sections!\n\n- A GitHub personal access token will be needed which can be obtained by going to Settings \u003e Developer Settings \u003e Personal Access Tokens.\n  \u003cdiv align=\"center\"\u003e \u003cimg src=\"./images/config.PNG\" align=\"center\"\u003e \u003c/div\u003e\n\n_Note: If you give private repositories access then they will be added to the sections but their links will not work_\n\n## Repository Setup 😉\n\nGitHub actions can be integrated into any repository. Create a new folder called `.github/workflows/\u003cany-name\u003e.yml`. Paste the following starter code:\n\n```yml\nname: Latest portfolio\non:\n  schedule:\n    - cron: '0 0 * * *'\n    # This makes the action run at the end of every day. Customize this accordingly or you can also trigger this action for GitHub events (Pull, Push). Check the GitHub actions page for that.\n  workflow_dispatch:\n\njobs:\n  updating-portfolio:\n    name: update-index-with-project\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: kaustubhgupta/PortfolioFy@main \n        with:\n          gh_token: ${{ secrets.TOKEN }} # Create a secret to store the access token \n```\n\n## Available Options 🤔\n(To know more about each parameter, jump to [this](https://kaustubhgupta.github.io/PortfolioFy/#/./pages/Git-Actions-Parameters) page in the documentation)\n\n| Option         | Default Value | Description                                                                  | Required | Example |\n| -------------- | ------------- | ---------------------------------------------------------------------------- | -------- | ------- |\n| `gh_token`     | NA            | GitHub Personal Access token                                                 | Yes      |  NA     |\n| `theme`        | `1`           | Level of the webpage you want to render: 1 or 2                                   | No       |  `1`      | \n| `blogs`        | `False`       | Include blogs in your Portfolio              | No       |  `True`   |\n| `hackathons`   | `False`       | Include repositories that are tagged as `hackathon` topic | No       |  `True` |\n| `stats_choice` | `1`           | Type/Style of GitHub stats you want to include. A total of `8` types of GitHub stats are available. See the sections below for more information     | No       |  `6` |\n| `stats_customization` | Comming Soon | Customize the GitHub stats chosen by passing additional parameters supported | Comming Soon | Comming Soon| \n| `social_links` | `False`       | Links for Linkedin, Twitter, Dev. to, Medium, or Stackoverflow can be included. All handles are not necessary, you can provide them as comma-separated list as per need in any order | No       | `'https://www.linkedin.com/in/kaustubh-gupta/, https://twitter.com/Kaustubh1828, https://medium.com/@kaustubhgupta1828, https://dev.to/kaustubhgupta, https://stackoverflow.com/users/14681298/kaustubh'`|\n| `resume_link` | `False` | Link for resume uploaded online | No | `'https://drive.google.com/fnskaml...'` |\n| `allow_footer` | `True` | Whether you want to display the credits of the creator at the end of the webpage | No | `False` |\n| `project_sort_by` | `'stars'` | Control the sorting of projects by `'stars'` or `'forks'` | No | `'forks'` |\n\n## Documentation 📜\nThe detailed documentation for this project is available [here](https://kaustubhgupta.github.io/PortfolioFy)\n\n\n## Regarding Blog Updates\n\nThere is an action called [Blog Post Workflow](https://github.com/marketplace/actions/blog-post-workflow). You can easily integrate this in your workflow via this template: (Highly recommended!)\n\n```yml\nname: Latest blog post workflow\non:\n  push: # Every time index.html is pushed, this action runs and updates the blogs section!\n\njobs:\n  update-readme-with-blog:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: gautamkrishnar/blog-post-workflow@master\n        with:\n          feed_list: \u003cYour feedlist\u003e\n          max_post_count: \u003cYour Choice\u003e\n          readme_path: index.html\n          template: \"\u003ch2 class='h2-blog'\u003e\u003ca class='a-lightblue' href=$url\u003e$title\u003c/a\u003e\u003c/h2\u003e\" # It is suggested not to modify this\n          gh_token: ${{ secrets.TOKEN }}\n```\n\nMake sure to enable the blogs parameter in the main workflow:\n\n```yml\n.\n.\n- uses: actions/checkout@v2\n        - uses: kaustubhgupta/PortfolioFy@main\n          with:\n            gh_token: ${{ secrets.TOKEN }}\n            blogs: True\n```\n\n## Examples\n- [My Portfolio](https://www.kaustubhgupta.me/)\n- [My Workflow File](https://github.com/kaustubhgupta/kaustubhgupta.github.io/blob/master/.github/workflows/website.yml)\n- [My Blogs Workflow File](https://github.com/kaustubhgupta/kaustubhgupta.github.io/blob/master/.github/workflows/blog.yml)\n\n## Happy?? Do Star ⭐ this Repo. 🤩\n\n## Special Mentions 😃\n\n- [Anurag Hazra](https://github.com/anuraghazra) (GitHub stats)\n- [Simon Lecoq](https://github.com/lowlighter/metrics) (GitHub stats)\n- [Casper](https://github.com/vn7n24fzkq) (GitHub stats)\n- [Jonah Lawrence](https://github.com/DenverCoder1) (GitHub stats)\n- [Joshua Clifford Reyes](https://github.com/LordDashMe) (GitHub stats)\n- [ryo-ma](https://github.com/ryo-ma) (GitHub stats)\n- [Vincent Voyer](https://github.com/vvo) (GitHub stats)\n- [Ashutosh Dwivedi](https://github.com/Ashutosh00710) (GitHub Stats)\n- [Gautam Krishna R](https://github.com/marketplace/actions/blog-post-workflow) (Blogpost Action)\n- [Start Bootstrap](https://startbootstrap.com/theme/resume) (Amazing themes)\n\n## License 📝\n\n[![MIT Licence](https://img.shields.io/github/license/kaustubhgupta/PortfolioFy)](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaustubhgupta%2Fportfoliofy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaustubhgupta%2Fportfoliofy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaustubhgupta%2Fportfoliofy/lists"}