Update DOIs for changed Posts #57549
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 DOIs for changed Posts | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "*/10 * * * *" | |
jobs: | |
update: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '>=1.22' | |
- name: Download posts not indexed recently | |
run: | | |
mkdir -p upload | |
curl https://api.rogue-scholar.org/posts/updated?per_page=50 > upload/posts.json | |
- name: Set number of posts to be updated as variable | |
id: current_number | |
run: | | |
echo "NUMBER=$(jq '."total-results"' upload/posts.json)" >> $GITHUB_OUTPUT | |
- name: Install commonmeta | |
if: ${{ fromJSON(steps.current_number.outputs.NUMBER) > 0 }} | |
run: | | |
go install github.com/front-matter/[email protected] | |
commonmeta version | |
- name: Set current date as variable | |
if: ${{ fromJSON(steps.current_number.outputs.NUMBER) > 0 }} | |
run: | | |
echo "NOW=$(date +'%s')" >> $GITHUB_OUTPUT | |
id: current_date | |
- name: Convert posts to crossref xml | |
if: ${{ fromJSON(steps.current_number.outputs.NUMBER) > 0 }} | |
run: | | |
commonmeta list upload/posts.json -f jsonfeed --depositor "${{ secrets.CROSSREF_DEPOSITOR_NAME }}" --email "${{ secrets.CROSSREF_DEPOSITOR_EMAIL }}" --registrant "${{ secrets.CROSSREF_REGISTRANT }}" -t crossrefxml > upload/${{ steps.current_date.outputs.NOW }} | |
- name: Update content via Crossref API | |
if: ${{ fromJSON(steps.current_number.outputs.NUMBER) > 0 }} | |
run: | | |
curl -X POST https://doi.crossref.org/servlet/deposit -F "operation=doMDUpload" -F "login_id=${{ secrets.CROSSREF_USERNAME_WITH_ROLE }}" -F "login_passwd=${{ secrets.CROSSREF_PASSWORD }}" -F "fname=@upload/${{ steps.current_date.outputs.NOW }}" | |
- name: List uuids of updated posts | |
if: ${{ fromJSON(steps.current_number.outputs.NUMBER) > 0 }} | |
run: | | |
echo "UUIDS=$(jq -rc '[.items | .[] | .id] | join(",")' upload/posts.json)" >> $GITHUB_OUTPUT | |
id: uuids | |
- name: Update Rogue Scholar posts | |
if: ${{ fromJSON(steps.current_number.outputs.NUMBER) > 0 }} | |
run: | | |
curl -X PATCH https://db.rogue-scholar.org/rest/v1/posts?id=in.%28${{ steps.uuids.outputs.UUIDS }}%29 -H "apikey: ${{ secrets.SUPABASE_KEY }}" -H "Authorization: Bearer ${{ secrets.SUPABASE_KEY }}" -H "Content-Type: application/json" -H "Prefer: return=minimal" -d '{ "indexed_at": "${{ steps.current_date.outputs.NOW }}", "indexed": true }' |