Ghost/ghost/update-check-service
renovate[bot] feabbc2fca Update dependency @tryghost/logging to v2 (#63)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-06 12:58:06 +00:00
..
lib Fixed alert notifications being sent out to non-active users 2021-10-06 22:31:06 +02:00
test Fixed alert notifications being sent out to non-active users 2021-10-06 22:31:06 +02:00
.eslintrc.js Added update check service initial commit 2021-06-02 18:17:56 +04:00
LICENSE Added update check service initial commit 2021-06-02 18:17:56 +04:00
package.json Update dependency @tryghost/logging to v2 (#63) 2021-12-06 12:58:06 +00:00
README.md Added UpateCheckService usage example 2021-06-03 21:41:38 +12:00

Update Check Service

Makes a request to updates.ghost.org to check for release & custom notifications. The service is provided in return for users opting in to anonymous usage data collection.

Install

npm install @tryghost/update-check-service --save

or

yarn add @tryghost/update-check-service

Usage

Check the UpdateCheckService's constructor JSDoc for the list of available parameters. This is how the service is initialized in Ghost:

const api = require('./api').v2;
const GhostMailer = require('./services/mail').GhostMailer;
const config = require('../shared/config');
const urlUtils = require('./../shared/url-utils');

const i18n = require('../shared/i18n');
const logging = require('../shared/logging');
const request = require('./lib/request');
const ghostVersion = require('./lib/ghost-version');
const UpdateCheckService = require('@tryghost/update-check-service');

const updateChecker = new UpdateCheckService({
    api: {
        settings: {
            read: api.settings.read,
            edit: api.settings.edit
        },
        posts: {
            browse: api.posts.browse
        },
        users: {
            browse: api.users.browse
        },
        notifications: {
            add: api.notifications.add
        }
    },
    config: {
        mail: config.get('mail'),
        env: config.get('env'),
        databaseType: config.get('database').client,
        checkEndpoint: config.get('updateCheck:url'),
        isPrivacyDisabled: config.isPrivacyDisabled('useUpdateCheck'),
        notificationGroups: config.get('notificationGroups'),
        siteUrl: urlUtils.urlFor('home', true),
        forceUpdate: config.get('updateCheck:forceUpdate'),
        ghostVersion: ghostVersion.original
    },
    i18n,
    logging,
    request,
    sendEmail: ghostMailer.send
});

// run the update check with 

updateChecker.check();

Develop

This is a mono repository, managed with lerna.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run yarn to install top-level dependencies.

Run

  • yarn dev

Test

  • yarn lint run just eslint
  • yarn test run lint and tests

Copyright & License

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