Update citing papers from Zotero #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update citing papers from Zotero | |
on: | |
schedule: | |
- cron: '0 0 * * *' | |
workflow_dispatch: | |
jobs: | |
update: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: _data/citing_papers | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# you can find both of these by just lookin at the URL when you open the collection on zotero website | |
# your zotero user/group ID | |
ORG_KEY: "4811862" | |
# your collection's ID | |
COLLECTION_KEY: "KRCY8EJ7" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Check if update | |
run: | | |
LAST_VERSION=$(<last_modified_version) | |
curl https://api.zotero.org/groups/${{ env.ORG_KEY }}/collections/${{ env.COLLECTION_KEY }}/items/top\?limit\=1 -H "Authorization: Bearer ${{ secrets.ZOTERO_READONLY }}" -H "If-Modified-Since-Version: ${LAST_VERSION}" -D headers.txt | |
HTTP_CODE=$(grep HTTP/2 headers.txt | cut -d" " -f 2) | |
if [ HTTP_CODE == "304" ]; then | |
gh run cancel ${{ github.run_id }} | |
fi | |
- name: install jq | |
run: sudo apt-get install jq | |
- name: Do update | |
run: | | |
curl https://api.zotero.org/groups/${{ env.ORG_KEY }}/collections/${{ env.COLLECTION_KEY }}/items/top\?limit\=100 -D headers.txt -H "Authorization: Bearer ${{ secrets.ZOTERO_READONLY }}" > tmp_items_0.json | |
grep last-modified-version headers.txt | cut -d" " -f2 > last_modified_version | |
i=1 | |
NEXT_LINK=$(grep -P '(?<=<)\S*?(?=>; rel="next")' headers.txt --only-matching) | |
while [ ! -z "${NEXT_LINK}" ]; do | |
echo "${NEXT_LINK}" | |
curl "${NEXT_LINK}" -D headers.txt -H "Authorization: Bearer ${{ secrets.ZOTERO_READONLY }}" > tmp_items_${i}.json | |
((i++)) | |
NEXT_LINK=$(grep -P '(?<=<)\S*?(?=>; rel="next")' headers.txt --only-matching) | |
done | |
echo "Combining items" | |
jq -s '[.[][].data] | sort_by(.date) | reverse' tmp_items_*.json > items.json | |
cat items.json | |
- name: Make Pull Request | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
add-paths: | | |
_data/citing_papers/items.json | |
_data/citing_papers/last_modified_version | |
commit-message: "Update citing papers from zotero" | |
branch: update-zotero | |
title: "Update Citing Works" | |
labels: auto | |