Repository Notifications

Quay supports adding notifications to a repository for various events that occur in the repository’s lifecycle. To add notifications, click the Settings tab in the Repository View.

Note: adding notifications requires repository admin permission.

Repository Events

Repository Push

A successful push of one or more images was made to the repository

{
  "name": "repository",
  "repository": "mynamespace/repository",
  "namespace": "mynamespace",
  "docker_url": "quay.io/mynamespace/repository",
  "homepage": "https://quay.io/repository/mynamespace/repository",
  "updated_tags": [
    "latest"
  ]
}

Dockerfile Build Queued

A Dockerfile build has been queued into the build system

{
  "repository": "mynamespace/repository",
  "namespace": "mynamespace",
  "name": "repository",
  "docker_url": "quay.io/mynamespace/repository",
  "homepage": "https://quay.io/repository/mynamespace/repository/build?current=some-fake-build",

  "is_manual": false,
  "build_id": "build_uuid",
  "docker_tags": ["latest", "foo", "bar"],

  "trigger_kind": "github",                                       // Optional
  "trigger_id": "some-id-here",                                   // Optional
  "trigger_metadata": {                                           // Optional
    "default_branch": "master",
    "ref": "refs/heads/somebranch",
    "commit": "42d4a62c53350993ea41069e9f2cfdefb0df097d",
    "commit_info": {                                              // Optional
      "url": "http://path/to/the/commit",
      "message": "Some commit message",
      "date": 2395748365,
      "author": {                                                 // Optional
        "username": "fakeauthor",
        "url": "http://path/to/fake/author/in/scm",               // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      },
      "committer": {                                              // Optional
        "username": "fakecommitter",
        "url": "http://path/to/fake/comitter/in/scm",             // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      }
    }
  }
}

Dockerfile Build Started

A Dockerfile build has been started by the build system

{
  "repository": "mynamespace/repository",
  "namespace": "mynamespace",
  "name": "repository",
  "docker_url": "quay.io/mynamespace/repository",
  "homepage": "https://quay.io/repository/mynamespace/repository/build?current=some-fake-build",

  "build_id": "build_uuid",
  "docker_tags": ["latest", "foo", "bar"],

  "trigger_kind": "github",                                       // Optional
  "trigger_id": "some-id-here",                                   // Optional
  "trigger_metadata": {                                           // Optional
    "default_branch": "master",
    "ref": "refs/heads/somebranch",
    "commit": "42d4a62c53350993ea41069e9f2cfdefb0df097d",
    "commit_info": {                                              // Optional
      "url": "http://path/to/the/commit",
      "message": "Some commit message",
      "date": 2395748365,
      "author": {                                                 // Optional
        "username": "fakeauthor",
        "url": "http://path/to/fake/author/in/scm",               // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      },
      "committer": {                                              // Optional
        "username": "fakecommitter",
        "url": "http://path/to/fake/comitter/in/scm",             // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      }
    }
  }
}

Dockerfile Build Successfully Completed

A Dockerfile build has been successfully completed by the build system

Note: This event will occur simultaneously with a Repository Push event for the built image(s)

{
  "repository": "mynamespace/repository",
  "namespace": "mynamespace",
  "name": "repository",
  "docker_url": "quay.io/mynamespace/repository",
  "homepage": "https://quay.io/repository/mynamespace/repository/build?current=some-fake-build",
  "visibility": "public",

  "build_id": "build_uuid",
  "docker_tags": ["latest", "foo", "bar"],

  "trigger_kind": "github",                                       // Optional
  "trigger_id": "some-id-here",                                   // Optional
  "trigger_metadata": {                                           // Optional
    "default_branch": "master",
    "ref": "refs/heads/somebranch",
    "commit": "42d4a62c53350993ea41069e9f2cfdefb0df097d",
    "commit_info": {                                              // Optional
      "url": "http://path/to/the/commit",
      "message": "Some commit message",
      "date": 2395748365,
      "author": {                                                 // Optional
        "username": "fakeauthor",
        "url": "http://path/to/fake/author/in/scm",               // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      },
      "committer": {                                              // Optional
        "username": "fakecommitter",
        "url": "http://path/to/fake/comitter/in/scm",             // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      }
    }
  }
}

Dockerfile Build Failed

A Dockerfile build has failed

{
  "repository": "mynamespace/repository",
  "namespace": "mynamespace",
  "name": "repository",
  "docker_url": "quay.io/mynamespace/repository",
  "homepage": "https://quay.io/repository/mynamespace/repository/build?current=some-fake-build",

  "build_id": "build_uuid",
  "docker_tags": ["latest", "foo", "bar"],

  "error_message": "This is the reason the build failed",

  "trigger_kind": "github",                                       // Optional
  "trigger_id": "some-id-here",                                   // Optional
  "trigger_metadata": {                                           // Optional
    "default_branch": "master",
    "ref": "refs/heads/somebranch",
    "commit": "42d4a62c53350993ea41069e9f2cfdefb0df097d",
    "commit_info": {                                              // Optional
      "url": "http://path/to/the/commit",
      "message": "Some commit message",
      "date": 2395748365,
      "author": {                                                 // Optional
        "username": "fakeauthor",
        "url": "http://path/to/fake/author/in/scm",               // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      },
      "committer": {                                              // Optional
        "username": "fakecommitter",
        "url": "http://path/to/fake/comitter/in/scm",             // Optional
        "avatar_url": "http://www.gravatar.com/avatar/fakehash"   // Optional
      }
    }
  }
}

Vulnerability Detected

A vulnerability was detected in the repository

{
  "repository": "mynamespace/repository",
  "namespace": "mynamespace",
  "name": "repository",
  "docker_url": "quay.io/mynamespace/repository",
  "homepage": "https://quay.io/repository/mynamespace/repository",

  "tags": ["latest", "othertag"],

  "vulnerability": {
    "id": "CVE-1234-5678",
    "description": "This is a bad vulnerability",
    "link": "http://url/to/vuln/info",
    "priority": "Critical",
    "has_fix": true
  }
}

Notification Actions

Quay Notification

A notification will be added to the Quay.io notification area. The notification area can be found by clicking on the bell icon in the top right of any Quay.io page.

Quay.io Notifications can be setup to be sent to a User, Team, or the organization as a whole.

E-mail

An e-mail will be sent to the specified address describing the event that occurred.

Note: All e-mail addresses will have to be verified on a per-repository basis

Webhook POST

An HTTP POST call will be made to the specified URL with the event’s data (see above for each event’s data format).

When the URL is HTTPS, the call will have an SSL client certificate set from Quay.io. Verification of this certificate will prove the call originated from Quay.io. Responses with status codes in the 2xx range are considered successful. Responses with any other status codes will be considered failures and result in a retry of the webhook notification.

Hipchat Notification

Posts a message to HipChat.

Slack Notification

Posts a message to Slack.

Flowdock Notification

Posts a message to Flowdock.