{"id":19205472,"url":"https://github.com/zwacky/goodreads-profile-workflow","last_synced_at":"2025-05-12T17:15:37.853Z","repository":{"id":38387289,"uuid":"352367770","full_name":"zwacky/goodreads-profile-workflow","owner":"zwacky","description":"Show what you're currently reading and recently read on your GitHub profile readme.","archived":false,"fork":false,"pushed_at":"2024-04-08T06:54:27.000Z","size":139,"stargazers_count":49,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-12T17:15:30.043Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zwacky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-28T15:36:53.000Z","updated_at":"2025-05-03T14:43:39.000Z","dependencies_parsed_at":"2024-04-08T07:24:18.575Z","dependency_job_id":null,"html_url":"https://github.com/zwacky/goodreads-profile-workflow","commit_stats":{"total_commits":31,"total_committers":4,"mean_commits":7.75,"dds":"0.22580645161290325","last_synced_commit":"7f6d4d22e58e100c185a82df160c5257385844f4"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwacky%2Fgoodreads-profile-workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwacky%2Fgoodreads-profile-workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwacky%2Fgoodreads-profile-workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwacky%2Fgoodreads-profile-workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zwacky","download_url":"https://codeload.github.com/zwacky/goodreads-profile-workflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253785011,"owners_count":21963903,"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":[],"created_at":"2024-11-09T13:12:58.876Z","updated_at":"2025-05-12T17:15:37.812Z","avatar_url":"https://github.com/zwacky.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Goodreads profile workflow\n\nAutomatically update your README with what you're currently reading—or any other Goodreads reading shelf of yours.\n\n![goodreads-github-profile-update-v1](https://user-images.githubusercontent.com/1093032/112973602-d3662f80-9151-11eb-9a94-6c05eadba362.png)\n\n### How to use\n- Go to your repository\n- Add the following section to your **README.md** file, you can give whatever title you want. Just make sure that you use `\u003c!-- GOODREADS-LIST:START --\u003e\u003c!-- GOODREADS-LIST:END --\u003e` in your readme. The workflow will replace this comment with the actual list of currently reading books: \n\n```markdown\n### Books I'm currently reading\n\u003c!-- GOODREADS-LIST:START --\u003e\n\u003c!-- GOODREADS-LIST:END --\u003e\n```\n\n- Create a folder named `.github` and create a `workflows` folder inside it if it doesn't exist.\n- Create a new file named `goodreads-profile-workflow.yml` with the following contents inside the workflows folder:\n\n```yaml\nname: Latest book list from a goodreads\non:\n  schedule: # Run workflow automatically\n    # This will make it run every hour\n    - cron: \"0 * * * *\"\n    # Run workflow manually (without waiting for the cron to be called), through the Github Actions Workflow page directly\n  workflow_dispatch:\njobs:\n  update-readme-with-goodreads-books:\n    name: Update this repo's README with what you're currently reading\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: zwacky/goodreads-profile-workflow@main\n        with:\n          # Replace this with your goodreads user id\n          goodreads_user_id: \"92930971\"\n          shelf: \"currently-reading\"\n```\n\n- Replace the above `goodreads_user_id` with yours. To find out your user ID go to \"My Books\" on Goodreads and you'll see it in the URL.\n- Commit and wait for it to run automatically or you can also trigger it manually to see the result instantly. To trigger the workflow manually check out [this blog post](https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/) by GitHub.\n\n### Inputs\n\nHere are all the inputs you can change in your goodreads-profile-workflow.yml file under `steps[*].with`:\n\n| Option | Default Value | Description | Required |\n|--------|--------|--------|--------|\n| `goodreads_user_id` | \"\" | The Goodreads account ID to fetch the books from. | Yes |\n| `shelf` | \"`currently-reading`\" | The Goodreads shelf/list the books are in (default shelves: currently-reading, read, to-read) | No |\n| `max_books_count` | \"`10`\" | Max count of books that will be taken from the shelf/list | No |\n| `readme_file_path` | \"`./README.md`\" | Path of the readme file you want to update | No |\n| `output_only` | \"`false`\" | Usually used together with local-run.js. Sets the generated array as `books` [output variable](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs) so that it can be consumed in other actions | No |\n| `comment_tag_name` | \"`GOODREADS-LIST`\" | Overrides the default comment tag name (`\u003c!-- GOODREADS-LIST:START --\u003e\u003c!-- GOODREADS-LIST:END --\u003e`). In case you want to run multiple instances over the same README | No |\n| `template` | \"`- [$title]($url) by $author (⭐️$average_rating)`\" | The list template written in Markdown.\u003cbr\u003e\u003cbr\u003e**Suported variables:**\u003cbr\u003e\u003cul\u003e\u003cli\u003e`$title`: Book title\u003c/li\u003e\u003cli\u003e`$url`: Goodreads URL of the book\u003c/li\u003e\u003cli\u003e`$author`: Book author\u003c/li\u003e\u003cli\u003e`$published_year`: Book's published year\u003c/li\u003e\u003cli\u003e`$average_rating`: Book's rating on Goodreads\u003c/li\u003e\u003cli\u003e`$my_rating`: User's rating of the book (from 1-5)\u003c/li\u003e\u003cli\u003e`$my_rating_stars`: User's rating of the book in emoji star (from ⭐️ to ⭐️⭐️⭐️⭐️⭐️)\u003c/li\u003e\u003c/ul\u003e  | No |\n| `sort_by_fields` | \"\u003epubDate\" | sort the list by fields from the RSS response, preprended by ascending `'\u003c'` or descending `'\u003e'` order.\u003cbr\u003e\u003cbr\u003e**Example:**\u003cbr\u003e\"`\u003euser_rating,\u003eaverage_rating`\" sorts first by user_rating and within the same user_rating, it'll then sort by average_rating, both in descending order.\u003cbr\u003e\u003cbr\u003e**Suported fields:**\u003cbr\u003e\u003cul\u003e\u003cli\u003e`pubDate`\u003c/li\u003e\u003cli\u003e`title`\u003c/li\u003e\u003cli\u003e`isbn`\u003c/li\u003e\u003cli\u003e`user_rating`\u003c/li\u003e\u003cli\u003e`user_read_at`\u003c/li\u003e\u003cli\u003e`user_date_added`\u003c/li\u003e\u003cli\u003e`user_date_created`\u003c/li\u003e\u003cli\u003e`average_rating`\u003c/li\u003e\u003cli\u003e`book_published`\u003c/li\u003e\u003cli\u003e[see all fields in the example RSS response](https://github.com/zwacky/goodreads-profile-workflow/blob/main/test/read.xml)\u003c/li\u003e\n\n### More resources\n- Check out gautamkrishnar's [blog-post-workflow](https://github.com/gautamkrishnar/blog-post-workflow) for another great update readme workflow\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwacky%2Fgoodreads-profile-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzwacky%2Fgoodreads-profile-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwacky%2Fgoodreads-profile-workflow/lists"}