iHook

iHook

  • Blog
  • Docs
  • Dashboard

›Task Examples

Quick Start

  • Create your first task
  • Create your first receiver

Task Settings

  • HTTP Settings
  • Request Schedule

Task Notifications

  • Notification Overview
  • Source
  • Property / CSS Selector
  • Comparison
  • Message Template

Task History

  • Chart

Task Errors

  • Errors

Task Shortcuts

  • Keyboard Shortcuts

Receiver Variables

  • Receiver variables

Task Examples

  • Nintendo Switch availability monitor
  • Weather monitor
  • Insider trading monitor
  • Mortgage rate monitor
  • Github repo release monitor

Receiver Examples

  • Create an Okta Hook receiver
  • Create a SendGrid Event Webhook receiver

Github repo release monitor

A Github repo's release schedule can be unpredictable. If you want to monitor the new release of a Github project, instead of checking it manually each time, you can save time by setting up a monitoring task and get notified whenever a new release is posted.

In this tutorial, we'll use the awesome JsonPath Github repo as an example, and show you how to use iHook to monitor its new releases, by consuming the public-facing Github release API endpoint.

2. Create an iHook scheduled task

After logging into iHook dashboard, click the CREATE TASK button at the top left corner, then you will see the task creation form:

create-form

Under the Request Settings and Request Schedule sections, provide the following values:

FieldValueNotes
Task NameJsonPath release monitorThe name of the task
URLhttps://api.github.com/repos/json-path/JsonPath/releases?per_page=1Github API that returns release info for the JsonPath Github repo: https://github.com/json-path/JsonPath. You can replace the /json-path/JsonPath portion with the repo name of your interest. For more info about the API see here.
Request MethodGET
Request HeadersNoneNo headers are needed
Request ScheduleEvery 1 weekThe task will run once every week

This tells the task to fetch JsonPath project's release info from the Github API once every week.

3. Create email notification

The API response body will carry the release data in JSON format, note that we provided a per_page URL parameter to limit response with only 1 release entry, which should be the latest:

GET https://api.github.com/repos/json-path/JsonPath/releases?per_page=1

[
  {
    "url": "https://api.github.com/repos/json-path/JsonPath/releases/43993793",
    "assets_url": "https://api.github.com/repos/json-path/JsonPath/releases/43993793/assets",
    "upload_url": "https://uploads.github.com/repos/json-path/JsonPath/releases/43993793/assets{?name,label}",
    "html_url": "https://github.com/json-path/JsonPath/releases/tag/json-path-2.6.0",
    "id": 43993793,
    "author": {
      "login": "kallestenflo",
      "id": 447970,
      "node_id": "MDQ6VXNlcjQ0Nzk3MA==",
      "avatar_url": "https://avatars.githubusercontent.com/u/447970?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/kallestenflo",
      "html_url": "https://github.com/kallestenflo",
      "followers_url": "https://api.github.com/users/kallestenflo/followers",
      "following_url": "https://api.github.com/users/kallestenflo/following{/other_user}",
      "gists_url": "https://api.github.com/users/kallestenflo/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/kallestenflo/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/kallestenflo/subscriptions",
      "organizations_url": "https://api.github.com/users/kallestenflo/orgs",
      "repos_url": "https://api.github.com/users/kallestenflo/repos",
      "events_url": "https://api.github.com/users/kallestenflo/events{/privacy}",
      "received_events_url": "https://api.github.com/users/kallestenflo/received_events",
      "type": "User",
      "site_admin": false
    },
    "node_id": "MDc6UmVsZWFzZTQzOTkzNzkz",
    "tag_name": "json-path-2.6.0",
    "target_commitish": "master",
    "name": "",
    "draft": false,
    "prerelease": false,
    "created_at": "2021-06-02T17:50:01Z",
    "published_at": "2021-06-02T18:04:08Z",
    "assets": [

    ],
    "tarball_url": "https://api.github.com/repos/json-path/JsonPath/tarball/json-path-2.6.0",
    "zipball_url": "https://api.github.com/repos/json-path/JsonPath/zipball/json-path-2.6.0",
    "body": "",
    "reactions": {
      "url": "https://api.github.com/repos/json-path/JsonPath/releases/43993793/reactions",
      "total_count": 2,
      "+1": 0,
      "-1": 0,
      "laugh": 0,
      "hooray": 0,
      "confused": 0,
      "heart": 1,
      "rocket": 1,
      "eyes": 0
    }
  }
]

You'll see the tag_name is json-path-2.6.0. Let us create an email notification so you can get notified whenever this field value changed.

Under the Notification section, click the ADD button next to the Email label:

add-notification

Then a notification setup dialog will show up:

email notification

Then provide the following values in the dialog:

FieldValueNotes
SourceResponse Body (JSON)Parse the API response as JSON payload
JSON path[0]["tag_name"]The location of the attribute we are evaluating against, i.e. the tag_name field of the first entry in the list.
Comparisonvalue has changed
EmailYour email address
SubjectJsonPath has a new release!The email subject
MessageYou can leave this field as-isThe email body

This tells iHook to check the tag_name field of the first entry in the release list, send an email notification whenever the value changed.

Now click SAVE, you will see the new email notification appear under the Notification section:

saved-notification

4. Save task

Click the CREATE button at the bottom of the task creation page:

create-task-button

You'll see the created task in ACTIVE state.

5. Test task

To make sure your task settings such as URL and notification rules are properly configured, it's recommended to test your task at least once.

You can perform the test by clicking the TEST button at the top of your task page. The TEST button will trigger the HTTP request right away, and evaluate all configured notification conditions.

If everything went smooth, you should see the release data appear in the Response Body section of the execution detail:

history

You would also receive the email notification the first time the task runs successfully since the response body value has changed from non-existent to some value.

Congratulations! You can now sit back and wait for the iHook email notification whenever a new release is published for the Github repo.

← Mortgage rate monitorCreate an Okta Hook receiver →
  • 2. Create an iHook scheduled task
  • 3. Create email notification
  • 4. Save task
  • 5. Test task
Copyright © 2024 iHook, Inc.