Skip to content

Jarskih/action-update-posts

 
 

Repository files navigation

Action Update Posts

Ghost

Update Ghost Posts on a schedule

This GitHub action allows you to automatically update any fields of any Ghost post
on a schedule from GitHub via the Ghost Admin API!


 

Getting Started

💡This action expects that you already have a working Ghost install running at least v3.20.0

  1. Generate a set of Ghost Admin API credentials, by configuring a new Custom Integration in Ghost Admin»Integrations.

  2. On GitHub, navigate to your theme repository»Settings»Secrets. Create a secret called GHOST_ADMIN_API_URL containing the API URL and another called GHOST_ADMIN_API_KEY containing the Admin API Key. Both must be copied exactly from Ghost Admin»Integrations.

  3. Once your secrets are in place, copy this example config into .github/workflows/update-posts.yml.

name: Update Ghost Posts
on:
  schedule:
    - cron: "01 00 * * *"
jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@master
      - name: Update Ghost Posts
        uses: TryGhost/action-update-posts@v0.0.1
        with:
          api-url: ${{ secrets.GHOST_ADMIN_API_URL }}
          api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}
          tag: 'hash-early-access'
          field: 'visibility'
          value: 'public'
          days: 30

Using the schedule "01 00 * * *" will run this action once per day at one minute past midnight. For testing purposes, you may wish to use ""*/5 * * * *", which will run every 5 minutes.

The example with configuration will find all posts tagged with #early-access, and if they were published more than 30 days ago, will update the visibility field to public.

  1. Tweak the tag, field, value and days configuration values to whatever you like, and then commit and push your changes.

Configuration

The with portion of the workflow must be configured before the action will work. Any secrets must be referenced using the bracket syntax and stored in the GitHub repositories Settings/Secrets menu. You can learn more about setting environment variables with GitHub actions here.

Key Value Information Type Required
api-url The base URL of your Ghost Admin API, found by configuring a new Custom Integration in Ghost Admin»Integrations secrets Yes
api-key The authentication key for your Ghost Admin API, found by configuring a new Custom Integration in Ghost Admin»Integrations secrets Yes
tag The tag to lookup to find posts to update e.g. hash-early-access string Yes
field The post field that you want to update e.g. visibility or featured string Yes
value The new value for the field e.g. public or false string Yes
days Number of days after the post was published to update the post e.g. 30 number Yes

Examples

with:
  api-url: ${{ secrets.GHOST_ADMIN_API_URL }}
  api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}
  tag: 'hash-sponsored'
  field: 'featured'
  value: 'false'
  days: 7

 

Don't forget to 🌟 Star 🌟 the repo if you like this GitHub Action !

Copyright & License

Copyright (c) 2020 Ghost Foundation - Released under the MIT license.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%