This Github action is based on the read-action by @katydecorah.
This GitHub action tracks the books that you read by updating a JSON file in your repository. Pair it with the iOS Shortcut to automatically format and open the GitHub issue.
Create a new issue with the book's ISBN in the title and a ’book-read’ label. The action will then fetch the book's metadata using node-isbn and commit the change in your repository, always sorting by the date you finished the book.
To use this action, create a new workflow in .github/workflows
and modify it as needed:
on:
issues:
types:
- labeled
jobs:
update_library:
runs-on: macOS-latest
name: AddReadBook
# only continue if issue has "book-read" label
if: contains( github.event.issue.labels.*.name, 'book-read')
steps:
- name: Checkout
uses: actions/checkout@v3
- name: AddReadBook
uses: papposilene/action-read@v1.3.4
- name: Download the book thumbnail
run: curl "${{ env.BookThumb }}" -o "data/img/${{ env.BookThumbOutput }}"
continue-on-error: true
- name: Commit files
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add -A && git commit -m "Add ${{ env.BookTitle }} to data/read.json."
git push
- name: Close issue
uses: peter-evans/close-issue@v2
with:
issue-number: "${{ env.IssueNumber }}"
comment: "You read ${{ env.BookTitle }} on ${{env.DateRead}}. What will be your next book?"
-
readFileName
: The file where you want to save your books. Default:data/read.json
. -
providers
: Specify the ISBN providers that you want to use, in the order you need them to be invoked. If setting more than one provider, separate each with a comma. Default:google,openlibrary,worldcat
.
The title of your issue must start with the ISBN of the book:
1234567890
The action will automatically set the date that you finished the book (dateFinished
) to today. To specify a different
date that you finished the book, add the date after the ISBN in YYYY-MM-DD
format.
1234567890 2020-06-12
If you add content to the body of the comment, the action will add it as the value of notes
.