├── .github
└── workflows
│ └── test.yml
├── .gitignore
├── README.md
├── config.json
├── index.py
├── requirements.txt
├── templates
└── generic
│ ├── digest
│ ├── digest.html
│ ├── issue_comment.created
│ ├── issues.closed
│ ├── issues.labeled
│ ├── issues.opened
│ ├── pull_request.closed
│ ├── pull_request.labeled
│ ├── pull_request.opened
│ ├── push
│ ├── repository.created
│ ├── repository.deleted
│ ├── repository.transferred
│ └── tr.published
├── test_digest.py
├── test_server.py
├── test_webhook.py
└── tests
├── digest-weekly-allrepos.msg
├── digest-weekly-filtered.msg
├── digest-weekly-filtered.msg.html
├── digest-weekly-repofiltered.msg
├── digest-weekly.msg
├── issue-comment-notif.json
├── issue-comment-notif.msg
├── issue-notif-log.msg
├── issue-notif.json
├── issue-notif.msg
├── mls.json
├── pull-labeled.json
├── pull-labeled.msg
├── pull-merged.json
├── pull-merged.msg
├── pull-notif.json
├── pull-notif.msg
├── pull_request-comment-notif.json
├── pull_request-comment-notif.msg
├── push-notif.json
├── push-notif.msg
├── rec-repos.json
├── repo-created.json
├── repo-created.msg
├── repo-deleted.json
├── repo-deleted.msg
├── repo-transferred.json
├── repo-transferred.msg
├── repo1-data.json
├── repo1-events-1.json
├── repo1-events-2.json
├── repo1-issues.json
├── repo2-data.json
├── repo2-events-1.json
├── summary-quarterly.msg
├── summary-quarterly.msg.html
├── templates
├── generic
└── mls
│ └── dom@localhost
│ ├── push
│ └── w3c
│ └── mediacapture-main
│ └── issue_comment.created
├── trpublished-notif.json
└── trpublished-notif.msg
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Run test suite
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request: {}
8 |
9 | jobs:
10 | test:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v4
14 | - uses: actions/setup-python@v5
15 | with:
16 | python-version: '3.11'
17 | - name: Install dependencies
18 | run: |
19 | python -m pip install --upgrade pip
20 | pip install -r requirements.txt
21 | - name: test WebHook
22 | run: python test_webhook.py
23 | - name: test Digest
24 | run: python test_digest.py
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | log
2 | *.pyc
3 | mls.json
4 | instance/config.json
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | index.py is a python CGI script that provides a Webhook to be used as a github hook endpoint to send mail to a set of email addresses when specific events (e.g. push, new issues, etc) happen in specific repos.
2 |
3 | It can also be used without a hook to send a digest of activity across a set of defined repositories for a given period. In that mode, it is limited to [300 events](https://developer.github.com/v3/activity/events/#list-repository-events) in the said period for a given repo.
4 |
5 | It can also be used as a [W3C hook](https://w3c.github.io/w3c-api/webhooks) endpoint to send mail when TR documents get published.
6 |
7 | The set of mailing lists, repos / TR documents and events is configured in a JSON file, named `mls.json` that lives in the same directory as the webhook, with the following structure:
8 | ```json
9 | {
10 | "email@example.com": {
11 | "githubaccount/repo": {
12 | "events": ["issues.opened", "issues.closed", "issue_comment.created", "pull_request.opened", "pull_request.labeled"],
13 | "eventFilter": {"label":["important"]},
14 | "branches": {
15 | "master": ["push"]
16 | }
17 | }
18 | },
19 | "email2@example.com": {
20 | "http://www.w3.org/TR/wake-lock": {
21 | "events": ["tr.published"]
22 | }
23 | },
24 | "email3@example.com": {
25 | "digest:tuesday": [
26 | {
27 | "repos": ["githubaccount/repo", "githubaccount/repo2"]
28 | },
29 | {
30 | "repoList": "https://example.org/repos.json"
31 | },
32 | {
33 | "topic": "All of repo4 and some of repo3",
34 | "sources": [
35 | {
36 | "repos": ["githubaccount/repo3"],
37 | "eventFilter": {"label": ["enhancement"]}
38 | },
39 | {
40 | "repos": ["githubaccount/repo4"]
41 | }
42 | ]
43 | }
44 | ]
45 | }
46 | }
47 | ```
48 |
49 | In other words:
50 | * each email address to which notifications are to be sent is a top level object
51 | * in email objects, each repos / TR draft / digest is an object
52 | * in repo objects, there are 3 potential fields:
53 | * `events` is an array of Github events applicable to the repo as a whole; only events in that array will be notified
54 | * `eventFilter` is an optional set of filters that are applied to the events above; at the moment, `label` and `notlabel` filters are defined, which means that only events that are associated with one of the said labels (defined as an array) will be notified (resp. only events that aren't associated with any of the labels)
55 | * `branches` allows to describe events that are applicable at the branch level rather than the whole repo (e.g. "push")
56 | * TR draft objects only take an `events` field, with `"tr.published"` currently the only supported event.
57 | * digests are identified by their key (of the form "digest:monday" (or any other day of the week), or "digest:daily", "digest:monthly", "digest:quarteryly" depending on the periodicity); each item in the said list describes a digest to be sent on that day to that list. A single digest is described by an object consisting of
58 | * an optional "topic" (which will be included in the subject of the digest)
59 | * either:
60 | * a "repos" field with an array of repository full names (e.g. `w3c/webrtc-pc`) and/or a "repoList" field with an URL pointing a JSON area of repository fullnames (which gets combined with the list in `repos` if it is fetched successfully), and optionally an "eventFilter" field (which, as above, has `label` and `notlabel` as possible filters at the moment) that applies to all the said repos
61 | * a "sources" field, which describes an array of dictionaries as described above. This allows to create a single digest that combines filtered events from some repos, and unfiltered (or with different filters) events from other repos
62 |
63 | Only events for which templates have been defined (in the `templates/generic` directory) will be notified. Each mail target can have customized templates by creating an `email@example.com` directory in `templates/mls` and having a file named after the event. Templates use Mustache-based pystache as their engines and are fed with payload data from the event. The first line of the template is used as the subject of the email.
64 |
65 | In addition to configuring targets of notifications, an instance of this webhook needs to define a `config.json` file with the SMTP host, the address from which messages will be sent, and set a GitHub OAUTH token that can be used to retrieve information via the GitHub API.
66 |
67 | See also [how to make use of the W3C instance of this service](https://github.com/w3c/github-notify-ml-config).
68 |
69 | ## Testing
70 | Run the test suite with:
71 | ```sh
72 | python test_webhook.py
73 | ```
74 |
75 | A typical test consists of:
76 | * a JSON file with the payload of the github event / w3c event to be tested
77 | * a .msg file that contains the email (with headers) expected to be sent by the webhook
78 | * a new method in `test_webhook.py` `SendEmailGithubTests` that binds the event name, with the JSON file, and the email message
79 |
--------------------------------------------------------------------------------
/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "SMTP_HOST":"localhost",
3 | "EMAIL_FROM":"test@localhost",
4 | "DIGEST_SENDER":"W3C Webmaster via GitHub API",
5 | "TEMPLATES_DIR":"templates",
6 | "GH_OAUTH_TOKEN":""
7 | }
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | mock
2 | pystache
3 | ipaddress
4 | requests
5 | requests_cache
6 | responses
7 | python-dateutil
8 |
--------------------------------------------------------------------------------
/templates/generic/digest:
--------------------------------------------------------------------------------
1 | {{period}} github digest ({{#topic}}{{{.}}}{{/topic}}{{^topic}}{{#repos}}{{shortname}}{{^last}}, {{/last}}{{/repos}}{{/topic}})
2 |
3 | {{#errors.count}}Errors while compiling the digest:
4 | {{#errors.list}} - {{error}}{{/errors.list}}{{/errors.count}}
5 |
6 | {{#filtered}}Events {{#filteredlabels}}with label {{#labels}}"{{name}}"{{^last}}, {{/last}}{{/labels}}{{#filteredantilabels}} and {{/filteredantilabels}}{{/filteredlabels}}{{#filteredantilabels}}without label {{#antilabels}}"{{name}}"{{^last}}, {{/last}}{{/antilabels}}{{/filteredantilabels}}
7 |
8 | {{/filtered}}
9 | {{#summary}}Repositories
10 | -----
11 | {{#repostatus}}* {{name}}
12 | - open issues and pull requests: {{repo.open_issues_count}}
13 | - activity on issues: +{{newissues.count}}/-{{closedissues.count}}/💬{{issuecommentscount}}
14 | - activity on pull requests: +{{newpr.count}}/-{{mergedpr.count}}/💬{{prcommentscount}}
15 |
16 | {{/repostatus}}{{/summary}}{{#activeissues}}Issues
17 | ------
18 | {{#activeissuerepos}}
19 | * {{name}} (+{{newissues.count}}/-{{closedissues.count}}/💬{{issuecommentscount}})
20 | {{#newissues.count}} {{.}} issues created:
21 | {{#newissues.list}}
22 | - {{{payload.issue.title}}} (by {{actor.display_login}})
23 | {{{payload.issue.html_url}}} {{#payload.issue.labels}}[{{name}}] {{/payload.issue.labels}}
24 | {{/newissues.list}}
25 |
26 | {{/newissues.count}}
27 | {{#commentedissues.count}} {{.}} issues received {{issuecommentscount}} new comments:
28 | {{#commentedissues.list}}
29 | - #{{number}} {{{title}}} ({{commentscount}} by {{#commentors}}{{name}}{{^last}}, {{/last}}{{/commentors}})
30 | {{{url}}} {{#labels}}[{{name}}] {{/labels}}
31 | {{/commentedissues.list}}
32 |
33 | {{/commentedissues.count}}
34 | {{#closedissues.count}} {{.}} issues closed:
35 | {{#closedissues.list}}
36 | - {{{payload.issue.title}}} {{{payload.issue.html_url}}} {{#payload.issue.labels}}[{{name}}] {{/payload.issue.labels}}
37 | {{/closedissues.list}}
38 |
39 | {{/closedissues.count}}
40 | {{/activeissuerepos}}{{/activeissues}}
41 |
42 | {{#activeprs}}Pull requests
43 | -------------
44 | {{#activeprrepos}}
45 | * {{name}} (+{{newpr.count}}/-{{mergedpr.count}}/💬{{prcommentscount}})
46 | {{#newpr.count}} {{.}} pull requests submitted:
47 | {{#newpr.list}}
48 | - {{{payload.pull_request.title}}} (by {{actor.display_login}})
49 | {{{payload.pull_request.html_url}}} {{#payload.pull_request.labels}}[{{name}}] {{/payload.pull_request.labels}}
50 | {{/newpr.list}}
51 |
52 | {{/newpr.count}}
53 | {{#commentedpr.count}} {{.}} pull requests received {{prcommentscount}} new comments:
54 | {{#commentedpr.list}}
55 | - #{{number}} {{{title}}} ({{commentscount}} by {{#commentors}}{{name}}{{^last}}, {{/last}}{{/commentors}})
56 | {{{url}}} {{#labels}}[{{name}}] {{/labels}}
57 | {{/commentedpr.list}}
58 |
59 | {{/commentedpr.count}}
60 | {{#mergedpr.count}} {{.}} pull requests merged:
61 | {{#mergedpr.list}}
62 | - {{{payload.pull_request.title}}}
63 | {{{payload.pull_request.html_url}}} {{#payload.pull_request.labels}}[{{name}}] {{/payload.pull_request.labels}}
64 | {{/mergedpr.list}}
65 |
66 | {{/mergedpr.count}}
67 | {{/activeprrepos}}
68 | {{/activeprs}}
69 |
70 | Repositories tracked by this digest:
71 | -----------------------------------
72 | {{#repos}}
73 | * {{{url}}}
74 | {{/repos}}
75 |
--------------------------------------------------------------------------------
/templates/generic/digest.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{period}} github digest ({{#topic}}{{.}}{{/topic}}{{^topic}}{{#repos}}{{shortname}}{{^last}}, {{/last}}{{/repos}}{{/topic}})
6 |
34 |
35 |
36 |
37 | {{date}}
38 | {{#errors.count}}Errors while compiling the digest:
39 |
40 | {{#errors.list}}- {{error}}
{{/errors.list}}
41 |
42 | {{/errors.count}}
43 |
44 | {{#filtered}}Events {{#filteredlabels}}with label {{#labels}}{{name}}{{^last}}, {{/last}}{{/labels}}{{#filteredantilabels}} and {{/filteredantilabels}}{{/filteredlabels}}{{#filteredantilabels}}without label {{#antilabels}}"{{name}}"{{^last}}, {{/last}}{{/antilabels}}{{/filteredantilabels}}
45 | {{/filtered}}
46 |
47 | {{#summary}}Repositories
48 | {{#repostatus}}{{name}}
49 |
50 | - open issues and pull requests: {{repo.open_issues_count}}
51 | - activity on issues: +{{newissues.count}}/-{{closedissues.count}}/💬{{issuecommentscount}}
52 | - activity on pull requests: +{{newpr.count}}/-{{mergedpr.count}}/💬{{prcommentscount}}
53 |
54 | {{/repostatus}}{{/summary}}{{#activeissues}}Issues
55 |
56 | {{#activeissuerepos}}
57 | {{name}} (+{{newissues.count}}/-{{closedissues.count}}/💬{{issuecommentscount}})
58 | {{#newissues.count}} {{.}} issues created:
59 | {{#newissues.list}}
60 | - #{{payload.issue.number}} {{payload.issue.title}} (by {{actor.display_login}}) {{#payload.issue.labels}}{{name}} {{/payload.issue.labels}}
61 | {{/newissues.list}}
62 | {{/newissues.count}}
63 |
64 | {{#commentedissues.count}} {{.}} issues received {{issuecommentscount}} new comments:
65 | {{#commentedissues.list}}
66 | - #{{number}} {{title}} ({{commentscount}} by {{#commentors}}{{name}}{{^last}}, {{/last}}{{/commentors}}) {{#labels}}{{name}} {{/labels}}
67 | {{/commentedissues.list}}
68 | {{/commentedissues.count}}
69 |
70 | {{#closedissues.count}} {{.}} issues closed:
71 | {{#closedissues.list}}
72 | - #{{payload.issue.number}} {{payload.issue.title}} {{#payload.issue.labels}}{{name}} {{/payload.issue.labels}}
73 | {{/closedissues.list}}
74 | {{/closedissues.count}}
75 |
76 | {{/activeissuerepos}}{{/activeissues}}
77 |
78 | {{#activeprs}}Pull requests
79 | {{#activeprrepos}}
80 | {{name}} (+{{newpr.count}}/-{{mergedpr.count}}/💬{{prcommentscount}})
81 | {{#newpr.count}} {{.}} pull requests submitted:
82 | {{#newpr.list}}
83 | - #{{payload.pull_request.number}} {{payload.pull_request.title}} (by {{actor.display_login}}) {{#payload.pull_request.labels}}{{name}} {{/payload.pull_request.labels}}
84 | {{/newpr.list}}
85 | {{/newpr.count}}
86 |
87 | {{#commentedpr.count}} {{.}} pull requests received {{prcommentscount}} new comments:
88 | {{#commentedpr.list}}
89 | - #{{number}} {{title}} ({{commentscount}} by {{#commentors}}{{name}}{{^last}}, {{/last}}{{/commentors}}) {{#labels}}{{name}} {{/labels}}
90 | {{/commentedpr.list}}
91 | {{/commentedpr.count}}
92 |
93 | {{#mergedpr.count}} {{.}} pull requests merged:
94 | {{#mergedpr.list}}
95 | - #{{payload.pull_request.number}} {{payload.pull_request.title}} {{#payload.pull_request.labels}}{{name}} {{/payload.pull_request.labels}}
96 | {{/mergedpr.list}}
97 | {{/mergedpr.count}}
98 |
99 | {{/activeprrepos}}
100 | {{/activeprs}}
101 |
102 |
103 | Repositories tracked by this digest:
104 |
105 | {{#repos}}
106 | - {{url}}
107 | {{/repos}}
108 |
109 |
110 | {{#signature}}
111 | {{.}}
112 | {{/signature}}
113 |
114 |
115 |
--------------------------------------------------------------------------------
/templates/generic/issue_comment.created:
--------------------------------------------------------------------------------
1 | Re: [{{{repository.name}}}] {{{issue.title}}} (#{{{issue.number}}})
2 | {{{comment.body}}}
3 |
4 | --
5 | GitHub Notification of comment by {{{comment.user.login}}}
6 | Please view or discuss this issue at {{{comment.html_url}}} using your GitHub account
7 |
--------------------------------------------------------------------------------
/templates/generic/issues.closed:
--------------------------------------------------------------------------------
1 | Closed: [{{{repository.name}}}] {{{issue.title}}} (#{{{issue.number}}})
2 | {{{sender.login}}} closed this issue. See {{{issue.html_url}}}
--------------------------------------------------------------------------------
/templates/generic/issues.labeled:
--------------------------------------------------------------------------------
1 | [{{{repository.name}}}] Issue: {{{issue.title}}} (#{{{issue.number}}}) marked as {{{label.name}}}
2 | {{{sender.login}}} has just labeled an issue for {{{repository.html_url}}} as "{{{label.name}}}":
3 |
4 | == {{{issue.title}}} ==
5 | {{{issue.body}}}
6 |
7 | See {{{issue.html_url}}}
8 |
--------------------------------------------------------------------------------
/templates/generic/issues.opened:
--------------------------------------------------------------------------------
1 | [{{repository.name}}] {{{issue.title}}} (#{{{issue.number}}})
2 | {{{issue.user.login}}} has just created a new issue for {{{repository.html_url}}}:
3 |
4 | == {{{issue.title}}} ==
5 | {{{issue.body}}}
6 |
7 | Please view or discuss this issue at {{{issue.html_url}}} using your GitHub account
8 |
--------------------------------------------------------------------------------
/templates/generic/pull_request.closed:
--------------------------------------------------------------------------------
1 | [{{{repository.name}}}] {{#pull_request.merged}}Merged{{/pull_request.merged}}{{^pull_request.merged}}Closed{{/pull_request.merged}} Pull Request: {{{pull_request.title}}}
2 | {{{sender.login}}} has just {{#pull_request.merged}}merged{{/pull_request.merged}}{{^pull_request.merged}}closed{{/pull_request.merged}} {{{pull_request.user.login}}}'s pull request {{pull_request.number}} for {{{repository.html_url}}}:
3 |
4 | == {{{pull_request.title}}} ==
5 | {{{pull_request.body}}}
6 |
7 | See {{{pull_request.html_url}}}
8 |
--------------------------------------------------------------------------------
/templates/generic/pull_request.labeled:
--------------------------------------------------------------------------------
1 | [{{{repository.name}}}] Pull Request: {{{pull_request.title}}}
2 | {{{sender.login}}} has just labeled a pull request from {{{pull_request.user.login}}} for {{{repository.html_url}}} as "{{{label.name}}}":
3 |
4 | == {{{pull_request.title}}} ==
5 | {{{pull_request.body}}}
6 |
7 | See {{{pull_request.html_url}}}
8 |
--------------------------------------------------------------------------------
/templates/generic/pull_request.opened:
--------------------------------------------------------------------------------
1 | [{{{repository.name}}}] Pull Request: {{{pull_request.title}}}
2 | {{{pull_request.user.login}}} has just submitted a new pull request for {{{repository.html_url}}}:
3 |
4 | == {{{pull_request.title}}} ==
5 | {{{pull_request.body}}}
6 |
7 | See {{{pull_request.html_url}}}
8 |
--------------------------------------------------------------------------------
/templates/generic/push:
--------------------------------------------------------------------------------
1 | [{{repository.name}}] new commits pushed by {{{pusher.name}}}
2 |
3 | The following commits were just pushed by {{{pusher.name}}} to {{{repository.html_url}}}:
4 |
5 | {{#commits}}
6 | * {{{message}}}
7 | by {{{author.name}}}
8 | {{{url}}}
9 |
10 | {{/commits}}
--------------------------------------------------------------------------------
/templates/generic/repository.created:
--------------------------------------------------------------------------------
1 | {{repository.full_name}} created by {{sender.login}}
2 | {{{sender.login}}} has just created a new repository: {{{repository.full_name}}}
--------------------------------------------------------------------------------
/templates/generic/repository.deleted:
--------------------------------------------------------------------------------
1 | {{repository.full_name}} deleted by {{sender.login}}
2 | {{{sender.login}}} has just deleted the repository {{{repository.full_name}}}
--------------------------------------------------------------------------------
/templates/generic/repository.transferred:
--------------------------------------------------------------------------------
1 | {{repository.full_name}} transferred from {{from}} to {{repository.owner.login}} by {{sender.login}}
2 | {{{sender.login}}} has just transferred the repository {{{repository.name}}} from {{from}} to {{repository.owner.login}}
3 | https://github.com/{{repository.full_name}}
--------------------------------------------------------------------------------
/templates/generic/tr.published:
--------------------------------------------------------------------------------
1 | "{{{title}}}" published as a {{{status}}}
2 | "{{{title}}}" has just been published as a W3C {{{status}}} dated {{{date}}} at {{{uri}}}.
--------------------------------------------------------------------------------
/test_digest.py:
--------------------------------------------------------------------------------
1 | # coding=utf-8
2 | from mock import patch, call
3 | import unittest
4 | import responses
5 | import smtplib
6 | import json
7 | import requests
8 | import io
9 | import sys
10 | import datetime
11 | from index import sendDigest
12 |
13 | # depends on mocking responses to request via https://github.com/dropbox/responses
14 |
15 | config = {
16 | "SMTP_HOST": "localhost",
17 | "SMTP_PORT": "8080",
18 | "EMAIL_FROM": "test@localhost",
19 | "TEMPLATES_DIR": "tests/templates",
20 | "DIGEST_SENDER":"W3C Webmaster via GitHub API",
21 | "GH_OAUTH_TOKEN": "foo",
22 | "mls": "tests/mls.json",
23 | "SIGNATURE": "Sent with ♥"
24 | }
25 |
26 |
27 | class SpoofDatetime(datetime.datetime):
28 | @classmethod
29 | def now(cls):
30 | return cls(2016, 11, 16, 14, 30, 0)
31 |
32 |
33 | class SendEmailGithubTests(unittest.TestCase):
34 | def setUp(self):
35 | datetime.datetime = SpoofDatetime
36 | responses.add(responses.GET, "https://api.github.com/repos/foo/bar", status=404)
37 | responses.add(
38 | responses.GET, "https://api.github.com/repos/foo/bar/events", status=404
39 | )
40 | responses.add(
41 | responses.GET,
42 | "https://api.github.com/repos/w3c/webrtc-pc",
43 | body=self.read_file("tests/repo1-data.json"),
44 | content_type="application/json",
45 | )
46 | responses.add(
47 | responses.GET,
48 | "https://api.github.com/repos/w3c/webrtc-pc/events",
49 | body=self.read_file("tests/repo1-events-1.json"),
50 | content_type="application/json",
51 | adding_headers={
52 | "link": ';rel="next"'
53 | },
54 | )
55 | responses.add(
56 | responses.GET,
57 | "https://api.github.com/repos/w3c/webrtc-pc/events/2",
58 | body=self.read_file("tests/repo1-events-2.json"),
59 | content_type="application/json",
60 | )
61 | responses.add(
62 | responses.GET,
63 | "https://api.github.com/repos/w3c/webrtc-pc/issues/events",
64 | body=self.read_file("tests/repo1-issues.json"),
65 | content_type="application/json",
66 | )
67 | responses.add(
68 | responses.GET,
69 | "https://api.github.com/repos/w3c/webcrypto",
70 | body=self.read_file("tests/repo2-data.json"),
71 | content_type="application/json",
72 | )
73 | responses.add(
74 | responses.GET,
75 | "https://api.github.com/repos/w3c/webcrypto/events",
76 | body=self.read_file("tests/repo2-events-1.json"),
77 | content_type="application/json",
78 | )
79 | responses.add(
80 | responses.GET,
81 | "https://w3c.github.io/validate-repos/rec-track-repos.json",
82 | body=self.read_file("tests/rec-repos.json"),
83 | content_type="application/json",
84 | )
85 |
86 | def parseReferenceMessage():
87 | return headers, body
88 |
89 | @staticmethod
90 | def read_file(filename):
91 | with io.open(filename) as filehandle:
92 | contents = filehandle.read()
93 | return contents
94 |
95 | @responses.activate
96 | @patch("smtplib.SMTP", autospec=True)
97 | def test_weekly_digest(self, mock_smtp):
98 | self.do_digest(
99 | "Wednesday",
100 | [
101 | {"dom@localhost": "tests/digest-weekly-allrepos.msg"},
102 | {"dom@localhost": "tests/digest-weekly.msg"},
103 | {"dom@localhost": "tests/digest-weekly-filtered.msg", "html": True},
104 | {"dom@localhost": "tests/digest-weekly-repofiltered.msg"},
105 | ],
106 | mock_smtp.return_value.__enter__.return_value.sendmail,
107 | )
108 | self.assertEqual(len(responses.calls), 6)
109 |
110 | @responses.activate
111 | @patch("smtplib.SMTP", autospec=True)
112 | def test_quarterly_summary(self, mock_smtp):
113 | self.do_digest(
114 | "quarterly", [{"dom@localhost": "tests/summary-quarterly.msg"}], mock_smtp.return_value.__enter__.return_value.sendmail
115 | )
116 | self.assertEqual(len(responses.calls), 2)
117 |
118 | def do_digest(self, period, refs, mock_smtp):
119 | import email
120 |
121 | sendDigest(config, period)
122 | self.assertEqual(mock_smtp.call_count, len(refs))
123 | counter = 0
124 | import pprint
125 | #pprint.pprint(mock_smtp.mock_calls)
126 | for (name, args, kwargs) in mock_smtp.mock_calls:
127 | #pprint(args)
128 | self.assertEqual(args[0], "test@localhost")
129 | self.assertIn(args[1][0], refs[counter])
130 | sent_email = email.message_from_string(args[2])
131 | sent_parts = []
132 | ref_parts = []
133 | ref_parts.append(self.read_file(refs[counter][args[1][0]]))
134 | if sent_email.is_multipart():
135 | sent_parts.append(
136 | {
137 | "headers": sent_email.get_payload(0)
138 | .as_string()
139 | .split("\n\n")[0],
140 | "body": sent_email.get_payload(0)
141 | .get_payload(decode=True)
142 | .decode("utf-8"),
143 | }
144 | )
145 | sent_parts.append(
146 | {
147 | "headers": sent_email.get_payload(1)
148 | .as_string()
149 | .split("\n\n")[0],
150 | "body": sent_email.get_payload(1)
151 | .get_payload(decode=True)
152 | .decode("utf-8"),
153 | }
154 | )
155 | if refs[counter].get("html", False):
156 | ref_parts.append(
157 | self.read_file(refs[counter][args[1][0]] + ".html")
158 | )
159 | else:
160 | sent_parts.append(
161 | {
162 | "headers": args[2].split("\n\n")[0],
163 | "body": sent_email.get_payload(decode=True).decode("utf-8"),
164 | }
165 | )
166 | self.maxDiff = None
167 | for sent_part, ref_part in zip(sent_parts, ref_parts):
168 | # TODO: use partition
169 | ref_headers = ref_part.split("\n\n")[0]
170 | self.assertMultiLineEqual(sent_part["headers"], ref_headers)
171 | ref_body = "\n".join(ref_part.split("\n\n")[1:])
172 | self.assertMultiLineEqual(sent_part["body"], ref_body)
173 | counter = counter + 1
174 |
175 | if __name__ == "__main__":
176 | unittest.main()
177 |
--------------------------------------------------------------------------------
/test_server.py:
--------------------------------------------------------------------------------
1 | # coding=utf-8
2 | import os
3 | from http.server import HTTPServer, BaseHTTPRequestHandler
4 | import threading
5 | import responses
6 | from index import serveRequest
7 | import sys
8 |
9 | config = {
10 | "SMTP_HOST": "localhost",
11 | "SMTP_PORT": "8080",
12 | "EMAIL_FROM": "test@localhost",
13 | "TEMPLATES_DIR": "tests/templates",
14 | "GH_OAUTH_TOKEN": "foo",
15 | "mls": "tests/mls.json",
16 | }
17 |
18 |
19 | class PythonCGIHTTPRequestHandler(BaseHTTPRequestHandler):
20 | wbufsize = 0
21 |
22 | def do_GET(self):
23 | os.environ["REQUEST_METHOD"] = "GET"
24 | self.serve()
25 |
26 | def log_message(self, format, *args):
27 | pass
28 |
29 | @responses.activate
30 | def serve(self):
31 | data = self.rfile.read(int(self.headers.get("Content-Length", 0)))
32 | output = serveRequest(config, data)
33 | # crude, but sufficient here
34 | head, body = output.split("\n\n", 1)
35 | headersList = head.split("\n")
36 | headers = {}
37 | for line in headersList:
38 | key, value = line.split(":", 1)
39 | headers[key] = value
40 | status = 200
41 | if "Status" in headers:
42 | status = int(headers["Status"].strip().split(" ")[0])
43 | del headers["Status"]
44 | self.send_response(status)
45 | for header, value in headers.items():
46 | self.send_header(header, value)
47 | self.end_headers()
48 | self.wfile.write(body.encode("utf-8"))
49 |
50 | def do_POST(self):
51 | os.environ["REQUEST_METHOD"] = "POST"
52 | if "X-Github-Event" in self.headers:
53 | os.environ["HTTP_X_GITHUB_EVENT"] = self.headers["X-Github-Event"]
54 | else:
55 | os.environ.pop("HTTP_X_GITHUB_EVENT", None)
56 | if "X-W3C-Webhook" in self.headers:
57 | os.environ["HTTP_X_W3C_WEBHOOK"] = self.headers["X-W3C-Webhook"]
58 | else:
59 | os.environ.pop("HTTP_X_W3C_WEBHOOK", None)
60 | os.environ["REMOTE_ADDR"] = self.headers.get("Remote-Addr", "127.0.0.1")
61 | self.rfile.flush()
62 | self.serve()
63 |
64 |
65 | class Server:
66 | def __init__(self):
67 | responses.add(
68 | responses.GET,
69 | "https://api.github.com/meta",
70 | body='{"hooks":["127.0.0.0/8"]}',
71 | content_type="application/json",
72 | )
73 | responses.add(
74 | responses.GET,
75 | "https://api.github.com/users/dontcallmedom",
76 | body='{"name":"Dominique Hazaël-Massieux"}',
77 | content_type="application/json",
78 | )
79 | responses.add(
80 | responses.GET,
81 | "https://api.github.com/users/anssiko",
82 | body='{"name":"Anssi Kostiainen"}',
83 | content_type="application/json",
84 | )
85 | responses.add(
86 | responses.GET,
87 | "https://api.github.com/users/stefhak",
88 | body='{"name":"Stefan Hakansson"}',
89 | content_type="application/json",
90 | )
91 | responses.add(
92 | responses.GET,
93 | "https://api.github.com/users/tobie",
94 | body='{"name":"Tobie Langel"}',
95 | content_type="application/json",
96 | )
97 | responses.add(
98 | responses.GET,
99 | "https://api.github.com/users/alvestrand",
100 | body='{"name":"Harald Alvestrand"}',
101 | content_type="application/json",
102 | )
103 | responses.add(
104 | responses.GET,
105 | "https://api.github.com/repos/w3c/mediacapture-main/pulls/150",
106 | body='{"id":31564006}',
107 | content_type="application/json",
108 | )
109 | responses.add(
110 | responses.GET,
111 | "https://api.github.com/users/Codertocat",
112 | body='{"name":"Codertocat"}',
113 | content_type="application/json",
114 | )
115 |
116 | self.stop = threading.Event()
117 | server_address = ("localhost", 8000)
118 | handler = PythonCGIHTTPRequestHandler
119 | self.httpd = HTTPServer(server_address, handler)
120 |
121 | def start(self):
122 | self.mythread = threading.Thread(target=self.serve)
123 | self.mythread.start()
124 |
125 | def serve(self):
126 | self.httpd.handle_request()
127 | return
128 |
129 | def terminate(self):
130 | self.stop.set()
131 | self.httpd.socket.close()
132 | self.mythread.join()
133 |
134 |
135 | if __name__ == "__main__":
136 | server = Server()
137 | server.serve()
138 |
--------------------------------------------------------------------------------
/test_webhook.py:
--------------------------------------------------------------------------------
1 | from mock import patch, call
2 | import email
3 | import email.utils
4 | import unittest
5 | import smtplib
6 | import json
7 | import requests
8 | import io
9 | import sys
10 | from test_server import Server
11 |
12 | # depends on mocking responses to request via https://github.com/dropbox/responses
13 |
14 |
15 | class SendEmailGithubTests(unittest.TestCase):
16 | def setUp(self):
17 | self.t = Server()
18 | self.t.start()
19 |
20 | @staticmethod
21 | def read_file(filename):
22 | with io.open(filename) as filehandle:
23 | contents = filehandle.read()
24 | return contents
25 |
26 | def test_ignore_get(self):
27 | rv = requests.get("http://localhost:8000/")
28 | assert " Nothing to see here, move along ..." == rv.text
29 |
30 | def test_ip_check_ok(self):
31 | rv = requests.post(
32 | "http://localhost:8000/",
33 | headers={"X-GitHub-Event": "ping", "Remote-Addr": "127.0.0.1"},
34 | )
35 | data = rv.json()
36 | assert data["msg"] == "Hi!"
37 | assert rv.status_code == 200
38 |
39 | def test_ip_check_403(self):
40 | rv = requests.post(
41 | "http://localhost:8000/",
42 | headers={"X-GitHub-Event": "ping", "Remote-Addr": "128.0.0.1"},
43 | )
44 | assert rv.status_code == 403
45 |
46 | @patch("index.make_msgid", return_value="")
47 | @patch("smtplib.SMTP", autospec=True)
48 | def test_w3c_tr_published(self, mock_smtp, mock_make_msgid):
49 | data = self.read_file("tests/trpublished-notif.json")
50 | rv = requests.post(
51 | "http://localhost:8000/",
52 | headers={"X-W3C-Webhook": "https://example.org"},
53 | data=data,
54 | )
55 | refs = {"dom@localhost": "tests/trpublished-notif.msg"}
56 | self.assert_operation_results(rv, mock_smtp.return_value.__enter__.return_value.sendmail, refs)
57 |
58 | def do_gh_operation(self, operation, jsonf, refs, mock_smtp):
59 | with io.open(jsonf) as filehandle:
60 | data = filehandle.read()
61 | rv = requests.post(
62 | "http://localhost:8000/", headers={"X-GitHub-Event": operation}, data=data
63 | )
64 | self.assert_operation_results(rv, mock_smtp.return_value.__enter__.return_value.sendmail, refs)
65 |
66 | def assert_operation_results(self, rv, instance, refs):
67 | self.assertEqual(rv.status_code, 200)
68 | self.assertEqual(instance.call_count, len(refs))
69 | i = 0
70 | for (name, args, kwargs) in instance.mock_calls:
71 | self.assertEqual(args[0], "test@localhost")
72 | self.assertIn(args[1][0], refs)
73 | msg = self.read_file(refs[args[1][0]])
74 | self.maxDiff = None
75 | import email
76 |
77 | sent_email = email.message_from_string(args[2], policy=email.policy.default)
78 | sent_headers = args[2].split("\n\n")[0]
79 | sent_body = sent_email.get_content()
80 | ref_headers = msg.split("\n\n")[0]
81 | ref_body = "\n".join(msg.split("\n\n")[1:])
82 | self.assertMultiLineEqual(sent_headers, ref_headers)
83 | self.assertMultiLineEqual(sent_body, ref_body)
84 |
85 | @patch("smtplib.SMTP", autospec=True)
86 | def test_repo_created_notif(self, mock_smtp):
87 | self.do_gh_operation(
88 | "repository",
89 | "tests/repo-created.json",
90 | {"dom@localhost": "tests/repo-created.msg"},
91 | mock_smtp,
92 | )
93 |
94 | @patch("smtplib.SMTP", autospec=True)
95 | def test_repo_transferred_notif(self, mock_smtp):
96 | self.do_gh_operation(
97 | "repository",
98 | "tests/repo-transferred.json",
99 | {"dom@localhost": "tests/repo-transferred.msg"},
100 | mock_smtp,
101 | )
102 |
103 | @patch("smtplib.SMTP", autospec=True)
104 | def test_repo_deleted_notif(self, mock_smtp):
105 | self.do_gh_operation(
106 | "repository",
107 | "tests/repo-deleted.json",
108 | {"dom@localhost": "tests/repo-deleted.msg"},
109 | mock_smtp,
110 | )
111 |
112 | @patch("smtplib.SMTP", autospec=True)
113 | def test_push_notif(self, mock_smtp):
114 | self.do_gh_operation(
115 | "push",
116 | "tests/push-notif.json",
117 | {"dom@localhost": "tests/push-notif.msg"},
118 | mock_smtp,
119 | )
120 |
121 | @patch("smtplib.SMTP", autospec=True)
122 | def test_issue_notif(self, mock_smtp):
123 | self.do_gh_operation(
124 | "issues",
125 | "tests/issue-notif.json",
126 | {
127 | "dom@localhost": "tests/issue-notif.msg",
128 | "log@localhost": "tests/issue-notif-log.msg",
129 | },
130 | mock_smtp,
131 | )
132 |
133 | @patch("smtplib.SMTP", autospec=True)
134 | def test_issue_comment_notif(self, mock_smtp):
135 | self.do_gh_operation(
136 | "issue_comment",
137 | "tests/issue-comment-notif.json",
138 | {"dom@localhost": "tests/issue-comment-notif.msg"},
139 | mock_smtp,
140 | )
141 |
142 | @patch("smtplib.SMTP", autospec=True)
143 | def test_pull_request_comment_notif(self, mock_smtp):
144 | self.do_gh_operation(
145 | "issue_comment",
146 | "tests/pull_request-comment-notif.json",
147 | {"dom@localhost": "tests/pull_request-comment-notif.msg"},
148 | mock_smtp,
149 | )
150 |
151 | @patch("smtplib.SMTP", autospec=True)
152 | def test_pull_notif(self, mock_smtp):
153 | self.do_gh_operation(
154 | "pull_request",
155 | "tests/pull-notif.json",
156 | {"dom@localhost": "tests/pull-notif.msg"},
157 | mock_smtp,
158 | )
159 |
160 | @patch("smtplib.SMTP", autospec=True)
161 | def test_pull_closed_notif(self, mock_smtp):
162 | self.do_gh_operation(
163 | "pull_request",
164 | "tests/pull-merged.json",
165 | {"dom@localhost": "tests/pull-merged.msg"},
166 | mock_smtp,
167 | )
168 |
169 | @patch("smtplib.SMTP", autospec=True)
170 | def test_pull_labeled_notif(self, mock_smtp):
171 | self.do_gh_operation(
172 | "pull_request",
173 | "tests/pull-labeled.json",
174 | {"dom@localhost": "tests/pull-labeled.msg"},
175 | mock_smtp,
176 | )
177 |
178 | @patch("smtplib.SMTP", autospec=True)
179 | def test_unavailable_template(self, mock_smtp):
180 | data = self.read_file("tests/push-notif.json")
181 | rv = requests.post(
182 | "http://localhost:8000/", headers={"X-GitHub-Event": "foobar"}, data=data
183 | )
184 | instance = mock_smtp.return_value
185 | self.assertEqual(rv.status_code, 500)
186 | self.assertEqual(instance.call_count, 0)
187 |
188 | def tearDown(self):
189 | self.t.terminate()
190 |
191 |
192 | if __name__ == "__main__":
193 | unittest.main()
194 |
--------------------------------------------------------------------------------
/tests/digest-weekly-allrepos.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 |
5 |
6 |
7 |
8 |
9 |
10 | Events with label "editorial"
11 |
12 |
13 | Issues
14 | ------
15 | * w3c/webrtc-pc (+1/-0/💬0)
16 | 1 issues created:
17 | - Meta: auto-publish changes to the spec (by foolip)
18 | https://github.com/w3c/webrtc-pc/issues/942 [editorial]
19 |
20 |
21 | * w3c/webcrypto (+0/-0/💬1)
22 | 1 issues received 1 new comments:
23 | - #86 Bug 29539 - Invalid algorithm OID for ECDH (1 by joakimb)
24 | https://github.com/w3c/webcrypto/issues/86 [editorial]
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | Repositories tracked by this digest:
35 | -----------------------------------
36 | * https://github.com/w3c/webrtc-pc
37 | * https://github.com/w3c/webcrypto
38 |
39 |
40 |
41 |
42 | --
43 | Sent with ♥
44 |
--------------------------------------------------------------------------------
/tests/digest-weekly-filtered.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 |
5 |
6 |
7 |
8 |
9 |
10 | Events with label "PR exists" and without label "List discussion needed"
11 |
12 |
13 | Issues
14 | ------
15 | * w3c/webrtc-pc (+0/-1/💬5)
16 |
17 | 1 issues received 5 new comments:
18 | - #888 Section 6.2: Issue 3 - buffered data at transport close (5 by alvestrand, feross, jesup, taylor-b)
19 | https://github.com/w3c/webrtc-pc/issues/888 [PR exists]
20 |
21 |
22 | 1 issues closed:
23 | - Section 6.2: Issue 3 - buffered data at transport close https://github.com/w3c/webrtc-pc/issues/888 [PR exists]
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | Repositories tracked by this digest:
33 | -----------------------------------
34 | * https://github.com/w3c/webrtc-pc
35 |
36 |
37 |
38 |
39 | --
40 | Sent with ♥
41 |
--------------------------------------------------------------------------------
/tests/digest-weekly-filtered.msg.html:
--------------------------------------------------------------------------------
1 | Content-Type: text/html; charset="utf-8"
2 | MIME-Version: 1.0
3 | Content-Transfer-Encoding: quoted-printable
4 |
5 |
6 |
7 |
8 |
9 | Weekly github digest (Issues with proposed edits)
10 |
38 |
39 |
40 |
41 |
42 | Wednesday November 16, 2016
43 |
44 |
45 | Events with label PR exists and without label "List discussion needed"
46 |
47 |
48 | Issues
49 |
50 |
51 | w3c/webrtc-pc (+0/-1/💬5)
52 |
53 |
54 | 1 issues received 5 new comments:
55 |
58 |
59 |
60 | 1 issues closed:
61 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | Repositories tracked by this digest:
75 |
78 |
79 | Sent with ♥
80 |
81 |
82 |
--------------------------------------------------------------------------------
/tests/digest-weekly-repofiltered.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 |
5 |
6 |
7 |
8 |
9 |
10 | Issues
11 | ------
12 | * w3c/webcrypto (+0/-0/💬1)
13 | 1 issues received 1 new comments:
14 | - #86 Bug 29539 - Invalid algorithm OID for ECDH (1 by joakimb)
15 | https://github.com/w3c/webcrypto/issues/86 [editorial]
16 |
17 |
18 | * w3c/webrtc-pc (+5/-2/💬9)
19 | 5 issues created:
20 | - replaceTrack(null): Allowed? (by aboba)
21 | https://github.com/w3c/webrtc-pc/issues/947
22 | - sender.setParameters(): Changing simulcast parameters? (by aboba)
23 | https://github.com/w3c/webrtc-pc/issues/945
24 | - Effect of sender.replaceTrack(null) (by aboba)
25 | https://github.com/w3c/webrtc-pc/issues/943
26 | - Meta: auto-publish changes to the spec (by foolip)
27 | https://github.com/w3c/webrtc-pc/issues/942 [editorial]
28 | - STUN/TURN Auto Discovery handling (by misi)
29 | https://github.com/w3c/webrtc-pc/issues/941
30 |
31 |
32 | 4 issues received 9 new comments:
33 | - #942 Meta: auto-publish changes to the spec (1 by henbos)
34 | https://github.com/w3c/webrtc-pc/issues/942
35 | - #927 What happens when setDirection() is called (1 by taylor-b)
36 | https://github.com/w3c/webrtc-pc/issues/927 [November interim topic]
37 | - #888 Section 6.2: Issue 3 - buffered data at transport close (5 by alvestrand, feross, jesup, taylor-b)
38 | https://github.com/w3c/webrtc-pc/issues/888 [PR exists]
39 | - #803 Rules for negotiation-needed flag need to be updated for transceivers. (2 by aboba, taylor-b)
40 | https://github.com/w3c/webrtc-pc/issues/803 [November interim topic]
41 |
42 |
43 | 2 issues closed:
44 | - Rules for negotiation-needed flag need to be updated for transceivers. https://github.com/w3c/webrtc-pc/issues/803 [November interim topic]
45 | - Section 6.2: Issue 3 - buffered data at transport close https://github.com/w3c/webrtc-pc/issues/888 [PR exists]
46 |
47 |
48 |
49 |
50 |
51 |
52 | Pull requests
53 | -------------
54 | * w3c/webrtc-pc (+8/-1/💬10)
55 | 8 pull requests submitted:
56 | - Revert "Respec now uses yarn instead of npm" (by vivienlacourba)
57 | https://github.com/w3c/webrtc-pc/pull/948
58 | - Splitting transceiver direction into "direction" and "currentDirection". (by taylor-b)
59 | https://github.com/w3c/webrtc-pc/pull/946
60 | - Effect of setting sender.track to null (by aboba)
61 | https://github.com/w3c/webrtc-pc/pull/944
62 | - Use of "stopped" in insertDTMF and replaceTrack (by aboba)
63 | https://github.com/w3c/webrtc-pc/pull/940
64 | - Removed "stopped" from removeTrack (by aboba)
65 | https://github.com/w3c/webrtc-pc/pull/939
66 | - What happens when setDirection() is called (by aboba)
67 | https://github.com/w3c/webrtc-pc/pull/938
68 | - What happens when transceiver.stop() is called (by aboba)
69 | https://github.com/w3c/webrtc-pc/pull/937
70 | - Remove Issue 1: Current and Pending SDP (by aboba)
71 | https://github.com/w3c/webrtc-pc/pull/936
72 |
73 |
74 | 7 pull requests received 10 new comments:
75 | - #946 Splitting transceiver direction into "direction" and "currentDirection". (1 by aboba)
76 | https://github.com/w3c/webrtc-pc/pull/946
77 | - #944 Effect of setting sender.track to null (4 by aboba, pthatcherg)
78 | https://github.com/w3c/webrtc-pc/pull/944
79 | - #940 Use of "stopped" in insertDTMF and replaceTrack (1 by aboba)
80 | https://github.com/w3c/webrtc-pc/pull/940
81 | - #939 Removed "stopped" from removeTrack (1 by aboba)
82 | https://github.com/w3c/webrtc-pc/pull/939
83 | - #929 Have RTCSessionDescription's sdp member default to "" (1 by jan-ivar)
84 | https://github.com/w3c/webrtc-pc/pull/929
85 | - #920 Revise text dealing with with the ICE Agent/User Agent interactions. (1 by aboba)
86 | https://github.com/w3c/webrtc-pc/pull/920 [November interim topic]
87 | - #919 Removing incorrect statement related to IP leaking issue. (1 by vivienlacourba)
88 | https://github.com/w3c/webrtc-pc/pull/919
89 |
90 |
91 | 1 pull requests merged:
92 | - Respec now uses yarn instead of npm
93 | https://github.com/w3c/webrtc-pc/pull/935
94 |
95 |
96 |
97 |
98 | Repositories tracked by this digest:
99 | -----------------------------------
100 | * https://github.com/w3c/webcrypto
101 | * https://github.com/w3c/webrtc-pc
102 |
103 |
104 |
105 |
106 | --
107 | Sent with ♥
108 |
--------------------------------------------------------------------------------
/tests/digest-weekly.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 |
5 |
6 |
7 | Errors while compiling the digest:
8 | - Repo foo/bar/events yields 404 error
9 |
10 |
11 | Issues
12 | ------
13 | * w3c/webrtc-pc (+5/-2/💬12)
14 | 5 issues created:
15 | - replaceTrack(null): Allowed? (by aboba)
16 | https://github.com/w3c/webrtc-pc/issues/947
17 | - sender.setParameters(): Changing simulcast parameters? (by aboba)
18 | https://github.com/w3c/webrtc-pc/issues/945
19 | - Effect of sender.replaceTrack(null) (by aboba)
20 | https://github.com/w3c/webrtc-pc/issues/943
21 | - Meta: auto-publish changes to the spec (by foolip)
22 | https://github.com/w3c/webrtc-pc/issues/942 [editorial]
23 | - STUN/TURN Auto Discovery handling (by misi)
24 | https://github.com/w3c/webrtc-pc/issues/941
25 |
26 |
27 | 5 issues received 12 new comments:
28 | - #942 Meta: auto-publish changes to the spec (1 by henbos)
29 | https://github.com/w3c/webrtc-pc/issues/942
30 | - #927 What happens when setDirection() is called (1 by taylor-b)
31 | https://github.com/w3c/webrtc-pc/issues/927 [November interim topic]
32 | - #888 Section 6.2: Issue 3 - buffered data at transport close (5 by alvestrand, feross, jesup, taylor-b)
33 | https://github.com/w3c/webrtc-pc/issues/888 [PR exists]
34 | - #803 Rules for negotiation-needed flag need to be updated for transceivers. (2 by aboba, taylor-b)
35 | https://github.com/w3c/webrtc-pc/issues/803 [November interim topic]
36 | - #714 STUN/TURN OAuth token auth parameter passing (3 by juberti, misi)
37 | https://github.com/w3c/webrtc-pc/issues/714 [External feedback] [July interim topic] [List discussion needed] [November interim topic] [PR exists]
38 |
39 |
40 | 2 issues closed:
41 | - Rules for negotiation-needed flag need to be updated for transceivers. https://github.com/w3c/webrtc-pc/issues/803 [November interim topic]
42 | - Section 6.2: Issue 3 - buffered data at transport close https://github.com/w3c/webrtc-pc/issues/888 [PR exists]
43 |
44 |
45 |
46 |
47 |
48 |
49 | Pull requests
50 | -------------
51 | * w3c/webrtc-pc (+8/-1/💬10)
52 | 8 pull requests submitted:
53 | - Revert "Respec now uses yarn instead of npm" (by vivienlacourba)
54 | https://github.com/w3c/webrtc-pc/pull/948
55 | - Splitting transceiver direction into "direction" and "currentDirection". (by taylor-b)
56 | https://github.com/w3c/webrtc-pc/pull/946
57 | - Effect of setting sender.track to null (by aboba)
58 | https://github.com/w3c/webrtc-pc/pull/944
59 | - Use of "stopped" in insertDTMF and replaceTrack (by aboba)
60 | https://github.com/w3c/webrtc-pc/pull/940
61 | - Removed "stopped" from removeTrack (by aboba)
62 | https://github.com/w3c/webrtc-pc/pull/939
63 | - What happens when setDirection() is called (by aboba)
64 | https://github.com/w3c/webrtc-pc/pull/938
65 | - What happens when transceiver.stop() is called (by aboba)
66 | https://github.com/w3c/webrtc-pc/pull/937
67 | - Remove Issue 1: Current and Pending SDP (by aboba)
68 | https://github.com/w3c/webrtc-pc/pull/936
69 |
70 |
71 | 7 pull requests received 10 new comments:
72 | - #946 Splitting transceiver direction into "direction" and "currentDirection". (1 by aboba)
73 | https://github.com/w3c/webrtc-pc/pull/946
74 | - #944 Effect of setting sender.track to null (4 by aboba, pthatcherg)
75 | https://github.com/w3c/webrtc-pc/pull/944
76 | - #940 Use of "stopped" in insertDTMF and replaceTrack (1 by aboba)
77 | https://github.com/w3c/webrtc-pc/pull/940
78 | - #939 Removed "stopped" from removeTrack (1 by aboba)
79 | https://github.com/w3c/webrtc-pc/pull/939
80 | - #929 Have RTCSessionDescription's sdp member default to "" (1 by jan-ivar)
81 | https://github.com/w3c/webrtc-pc/pull/929
82 | - #920 Revise text dealing with with the ICE Agent/User Agent interactions. (1 by aboba)
83 | https://github.com/w3c/webrtc-pc/pull/920 [November interim topic]
84 | - #919 Removing incorrect statement related to IP leaking issue. (1 by vivienlacourba)
85 | https://github.com/w3c/webrtc-pc/pull/919
86 |
87 |
88 | 1 pull requests merged:
89 | - Respec now uses yarn instead of npm
90 | https://github.com/w3c/webrtc-pc/pull/935
91 |
92 |
93 |
94 |
95 | Repositories tracked by this digest:
96 | -----------------------------------
97 | * https://github.com/w3c/webrtc-pc
98 | * https://github.com/foo/bar
99 |
100 |
101 |
102 |
103 | --
104 | Sent with ♥
105 |
--------------------------------------------------------------------------------
/tests/issue-comment-notif.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "created",
3 | "issue": {
4 | "url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1",
5 | "labels_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1/labels{/name}",
6 | "comments_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1/comments",
7 | "events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1/events",
8 | "html_url": "https://github.com/dontcallmedom/github-notify-ml/issues/1",
9 | "id": 45268120,
10 | "number": 1,
11 | "title": "Move default values to config file",
12 | "user": {
13 | "login": "dontcallmedom",
14 | "id": 216410,
15 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
16 | "gravatar_id": "",
17 | "url": "https://api.github.com/users/dontcallmedom",
18 | "html_url": "https://github.com/dontcallmedom",
19 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
20 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
21 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
22 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
23 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
24 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
25 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
26 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
27 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
28 | "type": "User",
29 | "site_admin": false
30 | },
31 | "labels": [
32 | {
33 | "url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/labels/enhancement",
34 | "name": "enhancement",
35 | "color": "84b6eb"
36 | }
37 | ],
38 | "state": "open",
39 | "locked": false,
40 | "assignee": null,
41 | "milestone": null,
42 | "comments": 1,
43 | "created_at": "2014-10-08T16:51:59Z",
44 | "updated_at": "2014-10-13T12:47:06Z",
45 | "closed_at": null,
46 | "body": "(which formats to use? .ini, .json, .yaml?)"
47 | },
48 | "comment": {
49 | "url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/comments/58886897",
50 | "html_url": "https://github.com/dontcallmedom/github-notify-ml/issues/1#issuecomment-58886897",
51 | "issue_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1",
52 | "id": 58886897,
53 | "user": {
54 | "login": "dontcallmedom",
55 | "id": 216410,
56 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
57 | "gravatar_id": "",
58 | "url": "https://api.github.com/users/dontcallmedom",
59 | "html_url": "https://github.com/dontcallmedom",
60 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
61 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
62 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
63 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
64 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
65 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
66 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
67 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
68 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
69 | "type": "User",
70 | "site_admin": false
71 | },
72 | "created_at": "2014-10-13T12:47:06Z",
73 | "updated_at": "2014-10-13T12:47:06Z",
74 | "body": "python has its own configuration format, let's use that one https://docs.python.org/2/library/configparser.html"
75 | },
76 | "repository": {
77 | "id": 24946939,
78 | "name": "github-notify-ml",
79 | "full_name": "dontcallmedom/github-notify-ml",
80 | "owner": {
81 | "login": "dontcallmedom",
82 | "id": 216410,
83 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
84 | "gravatar_id": "",
85 | "url": "https://api.github.com/users/dontcallmedom",
86 | "html_url": "https://github.com/dontcallmedom",
87 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
88 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
89 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
90 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
91 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
92 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
93 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
94 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
95 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
96 | "type": "User",
97 | "site_admin": false
98 | },
99 | "private": false,
100 | "html_url": "https://github.com/dontcallmedom/github-notify-ml",
101 | "description": "",
102 | "fork": false,
103 | "url": "https://api.github.com/repos/dontcallmedom/github-notify-ml",
104 | "forks_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/forks",
105 | "keys_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/keys{/key_id}",
106 | "collaborators_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/collaborators{/collaborator}",
107 | "teams_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/teams",
108 | "hooks_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/hooks",
109 | "issue_events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/events{/number}",
110 | "events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/events",
111 | "assignees_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/assignees{/user}",
112 | "branches_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/branches{/branch}",
113 | "tags_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/tags",
114 | "blobs_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/blobs{/sha}",
115 | "git_tags_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/tags{/sha}",
116 | "git_refs_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/refs{/sha}",
117 | "trees_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/trees{/sha}",
118 | "statuses_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/statuses/{sha}",
119 | "languages_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/languages",
120 | "stargazers_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/stargazers",
121 | "contributors_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/contributors",
122 | "subscribers_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/subscribers",
123 | "subscription_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/subscription",
124 | "commits_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/commits{/sha}",
125 | "git_commits_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/commits{/sha}",
126 | "comments_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/comments{/number}",
127 | "issue_comment_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/comments/{number}",
128 | "contents_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/contents/{+path}",
129 | "compare_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/compare/{base}...{head}",
130 | "merges_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/merges",
131 | "archive_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/{archive_format}{/ref}",
132 | "downloads_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/downloads",
133 | "issues_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues{/number}",
134 | "pulls_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/pulls{/number}",
135 | "milestones_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/milestones{/number}",
136 | "notifications_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/notifications{?since,all,participating}",
137 | "labels_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/labels{/name}",
138 | "releases_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/releases{/id}",
139 | "created_at": "2014-10-08T15:25:37Z",
140 | "updated_at": "2014-10-08T15:26:13Z",
141 | "pushed_at": "2014-10-08T17:13:01Z",
142 | "git_url": "git://github.com/dontcallmedom/github-notify-ml.git",
143 | "ssh_url": "git@github.com:dontcallmedom/github-notify-ml.git",
144 | "clone_url": "https://github.com/dontcallmedom/github-notify-ml.git",
145 | "svn_url": "https://github.com/dontcallmedom/github-notify-ml",
146 | "homepage": null,
147 | "size": 0,
148 | "stargazers_count": 0,
149 | "watchers_count": 0,
150 | "language": "Python",
151 | "has_issues": true,
152 | "has_downloads": true,
153 | "has_wiki": true,
154 | "has_pages": false,
155 | "forks_count": 0,
156 | "mirror_url": null,
157 | "open_issues_count": 1,
158 | "forks": 0,
159 | "open_issues": 1,
160 | "watchers": 0,
161 | "default_branch": "master"
162 | },
163 | "sender": {
164 | "login": "dontcallmedom",
165 | "id": 216410,
166 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
167 | "gravatar_id": "",
168 | "url": "https://api.github.com/users/dontcallmedom",
169 | "html_url": "https://github.com/dontcallmedom",
170 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
171 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
172 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
173 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
174 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
175 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
176 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
177 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
178 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
179 | "type": "User",
180 | "site_admin": false
181 | }
182 | }
--------------------------------------------------------------------------------
/tests/issue-comment-notif.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: =?utf-8?q?Dominique_Haza=C3=ABl-Massieux_via_GitHub?=
5 | To: dom@localhost
6 | Subject: Re: [github-notify-ml] Move default values to config file (#1)
7 | Message-ID:
8 | In-Reply-To:
9 |
10 | python has its own configuration format, let's use that one https://docs.python.org/2/library/configparser.html
11 |
12 |
13 | --
14 | GitHub Notification of comment by dontcallmedom
15 | Please view or discuss this issue at https://github.com/dontcallmedom/github-notify-ml/issues/1#issuecomment-58886897 using your GitHub account
16 |
--------------------------------------------------------------------------------
/tests/issue-notif-log.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: =?utf-8?q?Dominique_Haza=C3=ABl-Massieux_via_GitHub?=
5 | To: log@localhost
6 | Subject: [github-notify-ml] Move default values to config file (#1)
7 | Message-ID:
8 |
9 | dontcallmedom has just created a new issue for https://github.com/dontcallmedom/github-notify-ml:
10 |
11 |
12 | == Move default values to config file ==
13 | (which formats to use? .ini, .json, .yaml?)
14 |
15 |
16 | Please view or discuss this issue at https://github.com/dontcallmedom/github-notify-ml/issues/1 using your GitHub account
17 |
--------------------------------------------------------------------------------
/tests/issue-notif.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "opened",
3 | "issue": {
4 | "url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1",
5 | "labels_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1/labels{/name}",
6 | "comments_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1/comments",
7 | "events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/1/events",
8 | "html_url": "https://github.com/dontcallmedom/github-notify-ml/issues/1",
9 | "id": 45268120,
10 | "number": 1,
11 | "title": "Move default values to config file",
12 | "user": {
13 | "login": "dontcallmedom",
14 | "id": 216410,
15 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
16 | "gravatar_id": "",
17 | "url": "https://api.github.com/users/dontcallmedom",
18 | "html_url": "https://github.com/dontcallmedom",
19 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
20 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
21 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
22 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
23 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
24 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
25 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
26 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
27 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
28 | "type": "User",
29 | "site_admin": false
30 | },
31 | "labels": [
32 | {
33 | "url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/labels/enhancement",
34 | "name": "enhancement",
35 | "color": "84b6eb"
36 | }
37 | ],
38 | "state": "open",
39 | "locked": false,
40 | "assignee": null,
41 | "milestone": null,
42 | "comments": 0,
43 | "created_at": "2014-10-08T16:51:59Z",
44 | "updated_at": "2014-10-08T16:51:59Z",
45 | "closed_at": null,
46 | "body": "(which formats to use? .ini, .json, .yaml?)"
47 | },
48 | "repository": {
49 | "id": 24946939,
50 | "name": "github-notify-ml",
51 | "full_name": "dontcallmedom/github-notify-ml",
52 | "owner": {
53 | "login": "dontcallmedom",
54 | "id": 216410,
55 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
56 | "gravatar_id": "",
57 | "url": "https://api.github.com/users/dontcallmedom",
58 | "html_url": "https://github.com/dontcallmedom",
59 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
60 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
61 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
62 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
63 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
64 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
65 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
66 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
67 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
68 | "type": "User",
69 | "site_admin": false
70 | },
71 | "private": false,
72 | "html_url": "https://github.com/dontcallmedom/github-notify-ml",
73 | "description": "",
74 | "fork": false,
75 | "url": "https://api.github.com/repos/dontcallmedom/github-notify-ml",
76 | "forks_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/forks",
77 | "keys_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/keys{/key_id}",
78 | "collaborators_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/collaborators{/collaborator}",
79 | "teams_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/teams",
80 | "hooks_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/hooks",
81 | "issue_events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/events{/number}",
82 | "events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/events",
83 | "assignees_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/assignees{/user}",
84 | "branches_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/branches{/branch}",
85 | "tags_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/tags",
86 | "blobs_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/blobs{/sha}",
87 | "git_tags_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/tags{/sha}",
88 | "git_refs_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/refs{/sha}",
89 | "trees_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/trees{/sha}",
90 | "statuses_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/statuses/{sha}",
91 | "languages_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/languages",
92 | "stargazers_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/stargazers",
93 | "contributors_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/contributors",
94 | "subscribers_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/subscribers",
95 | "subscription_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/subscription",
96 | "commits_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/commits{/sha}",
97 | "git_commits_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/commits{/sha}",
98 | "comments_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/comments{/number}",
99 | "issue_comment_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/comments/{number}",
100 | "contents_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/contents/{+path}",
101 | "compare_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/compare/{base}...{head}",
102 | "merges_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/merges",
103 | "archive_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/{archive_format}{/ref}",
104 | "downloads_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/downloads",
105 | "issues_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues{/number}",
106 | "pulls_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/pulls{/number}",
107 | "milestones_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/milestones{/number}",
108 | "notifications_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/notifications{?since,all,participating}",
109 | "labels_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/labels{/name}",
110 | "releases_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/releases{/id}",
111 | "created_at": "2014-10-08T15:25:37Z",
112 | "updated_at": "2014-10-08T15:26:13Z",
113 | "pushed_at": "2014-10-08T15:57:13Z",
114 | "git_url": "git://github.com/dontcallmedom/github-notify-ml.git",
115 | "ssh_url": "git@github.com:dontcallmedom/github-notify-ml.git",
116 | "clone_url": "https://github.com/dontcallmedom/github-notify-ml.git",
117 | "svn_url": "https://github.com/dontcallmedom/github-notify-ml",
118 | "homepage": null,
119 | "size": 0,
120 | "stargazers_count": 0,
121 | "watchers_count": 0,
122 | "language": "Python",
123 | "has_issues": true,
124 | "has_downloads": true,
125 | "has_wiki": true,
126 | "has_pages": false,
127 | "forks_count": 0,
128 | "mirror_url": null,
129 | "open_issues_count": 1,
130 | "forks": 0,
131 | "open_issues": 1,
132 | "watchers": 0,
133 | "default_branch": "master"
134 | },
135 | "sender": {
136 | "login": "dontcallmedom",
137 | "id": 216410,
138 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
139 | "gravatar_id": "",
140 | "url": "https://api.github.com/users/dontcallmedom",
141 | "html_url": "https://github.com/dontcallmedom",
142 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
143 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
144 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
145 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
146 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
147 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
148 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
149 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
150 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
151 | "type": "User",
152 | "site_admin": false
153 | }
154 | }
--------------------------------------------------------------------------------
/tests/issue-notif.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: =?utf-8?q?Dominique_Haza=C3=ABl-Massieux_via_GitHub?=
5 | To: dom@localhost
6 | Subject: [github-notify-ml] Move default values to config file (#1)
7 | Message-ID:
8 |
9 | dontcallmedom has just created a new issue for https://github.com/dontcallmedom/github-notify-ml:
10 |
11 |
12 | == Move default values to config file ==
13 | (which formats to use? .ini, .json, .yaml?)
14 |
15 |
16 | Please view or discuss this issue at https://github.com/dontcallmedom/github-notify-ml/issues/1 using your GitHub account
17 |
--------------------------------------------------------------------------------
/tests/mls.json:
--------------------------------------------------------------------------------
1 | {
2 | "dom@localhost": {
3 | "http://www.w3.org/TR/odor": {
4 | "events": ["tr.published"]
5 | },
6 | "dontcallmedom/github-notify-ml": {
7 | "events": ["issues.opened", "issues.closed", "issue_comment.created", "pull_request.opened", "foobar"],
8 | "branches": {
9 | "master": ["push"]
10 | }
11 | },
12 | "w3c/web-platform-tests": {
13 | "events": ["pull_request.opened", "pull_request.labeled"],
14 | "eventFilter": {"label":["wg-das","wg-webrtc"]}
15 | },
16 | "w3c/presentation-api": {
17 | "events": ["pull_request.opened"]
18 | },
19 | "w3c/mediacapture-main": {
20 | "events": ["issue_comment.created"]
21 | },
22 | "regexp:Codertocat/.*": {
23 | "events": ["repository.created", "repository.deleted"]
24 | },
25 | "regexp:w3c/.*": {
26 | "events": ["repository.transferred"]
27 | },
28 | "w3c/webrtc-pc": {
29 | "events": ["pull_request.closed"]
30 | },
31 | "digest:wednesday": [
32 | {
33 | "repoList": "https://w3c.github.io/validate-repos/rec-track-repos.json",
34 | "repos": ["w3c/webrtc-pc"],
35 | "eventFilter": {"label": ["editorial"]},
36 | "topic": "Editorial issues across all repos"
37 | },
38 | {
39 | "repos": ["w3c/webrtc-pc", "foo/bar"]
40 | },
41 | {
42 | "repos": ["w3c/webrtc-pc"],
43 | "eventFilter": {"label": ["PR exists"], "notlabel": ["List discussion needed"]},
44 | "topic": "Issues with proposed edits"
45 | },
46 | {
47 | "topic": "Issues with per-repo label rules",
48 | "sources": [
49 | {
50 | "repos": ["w3c/webcrypto"],
51 | "eventFilter": {"label": ["editorial"]}
52 | },
53 | {
54 | "repos": ["w3c/webrtc-pc"],
55 | "eventFilter": {"notlabel": ["List discussion needed"]}
56 | }
57 | ]
58 | }
59 | ],
60 | "summary:quarterly": [
61 | {
62 | "repos": ["w3c/webcrypto"]
63 | }
64 | ]
65 | },
66 | "log@localhost": {
67 | "regexp:.*": {
68 | "events": ["pull_request.opened", "issues.opened"],
69 | "eventFilter": {"label":"enhancement"}
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/tests/pull-labeled.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "labeled",
3 | "number": 1824,
4 | "pull_request": {
5 | "url": "https://api.github.com/repos/w3c/web-platform-tests/pulls/1824",
6 | "id": 35304013,
7 | "html_url": "https://github.com/w3c/web-platform-tests/pull/1824",
8 | "diff_url": "https://github.com/w3c/web-platform-tests/pull/1824.diff",
9 | "patch_url": "https://github.com/w3c/web-platform-tests/pull/1824.patch",
10 | "issue_url": "https://api.github.com/repos/w3c/web-platform-tests/issues/1824",
11 | "number": 1824,
12 | "state": "open",
13 | "locked": false,
14 | "title": "Adding a basic no-media call that uses promises.",
15 | "user": {
16 | "login": "alvestrand",
17 | "id": 480893,
18 | "avatar_url": "https://avatars.githubusercontent.com/u/480893?v=3",
19 | "gravatar_id": "",
20 | "url": "https://api.github.com/users/alvestrand",
21 | "html_url": "https://github.com/alvestrand",
22 | "followers_url": "https://api.github.com/users/alvestrand/followers",
23 | "following_url": "https://api.github.com/users/alvestrand/following{/other_user}",
24 | "gists_url": "https://api.github.com/users/alvestrand/gists{/gist_id}",
25 | "starred_url": "https://api.github.com/users/alvestrand/starred{/owner}{/repo}",
26 | "subscriptions_url": "https://api.github.com/users/alvestrand/subscriptions",
27 | "organizations_url": "https://api.github.com/users/alvestrand/orgs",
28 | "repos_url": "https://api.github.com/users/alvestrand/repos",
29 | "events_url": "https://api.github.com/users/alvestrand/events{/privacy}",
30 | "received_events_url": "https://api.github.com/users/alvestrand/received_events",
31 | "type": "User",
32 | "site_admin": false
33 | },
34 | "body": "This tests the basic promise machinery in PeerConnection.\r\n\r\nTested and works in Firefox; asking @jan-ivar to take a look because he's probably most passionate about how Promises usage should be styled.\r\n",
35 | "created_at": "2015-05-13T08:27:12Z",
36 | "updated_at": "2015-05-13T08:27:13Z",
37 | "closed_at": null,
38 | "merged_at": null,
39 | "merge_commit_sha": "0d6658b0213785954ffd13e1c737145c8d55ac11",
40 | "assignee": null,
41 | "milestone": null,
42 | "commits_url": "https://api.github.com/repos/w3c/web-platform-tests/pulls/1824/commits",
43 | "review_comments_url": "https://api.github.com/repos/w3c/web-platform-tests/pulls/1824/comments",
44 | "review_comment_url": "https://api.github.com/repos/w3c/web-platform-tests/pulls/comments{/number}",
45 | "comments_url": "https://api.github.com/repos/w3c/web-platform-tests/issues/1824/comments",
46 | "statuses_url": "https://api.github.com/repos/w3c/web-platform-tests/statuses/168935a4e48e81127e7be29b62ad5a26d1108831",
47 | "head": {
48 | "label": "alvestrand:call-using-promises",
49 | "ref": "call-using-promises",
50 | "sha": "168935a4e48e81127e7be29b62ad5a26d1108831",
51 | "user": {
52 | "login": "alvestrand",
53 | "id": 480893,
54 | "avatar_url": "https://avatars.githubusercontent.com/u/480893?v=3",
55 | "gravatar_id": "",
56 | "url": "https://api.github.com/users/alvestrand",
57 | "html_url": "https://github.com/alvestrand",
58 | "followers_url": "https://api.github.com/users/alvestrand/followers",
59 | "following_url": "https://api.github.com/users/alvestrand/following{/other_user}",
60 | "gists_url": "https://api.github.com/users/alvestrand/gists{/gist_id}",
61 | "starred_url": "https://api.github.com/users/alvestrand/starred{/owner}{/repo}",
62 | "subscriptions_url": "https://api.github.com/users/alvestrand/subscriptions",
63 | "organizations_url": "https://api.github.com/users/alvestrand/orgs",
64 | "repos_url": "https://api.github.com/users/alvestrand/repos",
65 | "events_url": "https://api.github.com/users/alvestrand/events{/privacy}",
66 | "received_events_url": "https://api.github.com/users/alvestrand/received_events",
67 | "type": "User",
68 | "site_admin": false
69 | },
70 | "repo": {
71 | "id": 34723226,
72 | "name": "web-platform-tests",
73 | "full_name": "alvestrand/web-platform-tests",
74 | "owner": {
75 | "login": "alvestrand",
76 | "id": 480893,
77 | "avatar_url": "https://avatars.githubusercontent.com/u/480893?v=3",
78 | "gravatar_id": "",
79 | "url": "https://api.github.com/users/alvestrand",
80 | "html_url": "https://github.com/alvestrand",
81 | "followers_url": "https://api.github.com/users/alvestrand/followers",
82 | "following_url": "https://api.github.com/users/alvestrand/following{/other_user}",
83 | "gists_url": "https://api.github.com/users/alvestrand/gists{/gist_id}",
84 | "starred_url": "https://api.github.com/users/alvestrand/starred{/owner}{/repo}",
85 | "subscriptions_url": "https://api.github.com/users/alvestrand/subscriptions",
86 | "organizations_url": "https://api.github.com/users/alvestrand/orgs",
87 | "repos_url": "https://api.github.com/users/alvestrand/repos",
88 | "events_url": "https://api.github.com/users/alvestrand/events{/privacy}",
89 | "received_events_url": "https://api.github.com/users/alvestrand/received_events",
90 | "type": "User",
91 | "site_admin": false
92 | },
93 | "private": false,
94 | "html_url": "https://github.com/alvestrand/web-platform-tests",
95 | "description": "Test Suites for Web Platform specifications",
96 | "fork": true,
97 | "url": "https://api.github.com/repos/alvestrand/web-platform-tests",
98 | "forks_url": "https://api.github.com/repos/alvestrand/web-platform-tests/forks",
99 | "keys_url": "https://api.github.com/repos/alvestrand/web-platform-tests/keys{/key_id}",
100 | "collaborators_url": "https://api.github.com/repos/alvestrand/web-platform-tests/collaborators{/collaborator}",
101 | "teams_url": "https://api.github.com/repos/alvestrand/web-platform-tests/teams",
102 | "hooks_url": "https://api.github.com/repos/alvestrand/web-platform-tests/hooks",
103 | "issue_events_url": "https://api.github.com/repos/alvestrand/web-platform-tests/issues/events{/number}",
104 | "events_url": "https://api.github.com/repos/alvestrand/web-platform-tests/events",
105 | "assignees_url": "https://api.github.com/repos/alvestrand/web-platform-tests/assignees{/user}",
106 | "branches_url": "https://api.github.com/repos/alvestrand/web-platform-tests/branches{/branch}",
107 | "tags_url": "https://api.github.com/repos/alvestrand/web-platform-tests/tags",
108 | "blobs_url": "https://api.github.com/repos/alvestrand/web-platform-tests/git/blobs{/sha}",
109 | "git_tags_url": "https://api.github.com/repos/alvestrand/web-platform-tests/git/tags{/sha}",
110 | "git_refs_url": "https://api.github.com/repos/alvestrand/web-platform-tests/git/refs{/sha}",
111 | "trees_url": "https://api.github.com/repos/alvestrand/web-platform-tests/git/trees{/sha}",
112 | "statuses_url": "https://api.github.com/repos/alvestrand/web-platform-tests/statuses/{sha}",
113 | "languages_url": "https://api.github.com/repos/alvestrand/web-platform-tests/languages",
114 | "stargazers_url": "https://api.github.com/repos/alvestrand/web-platform-tests/stargazers",
115 | "contributors_url": "https://api.github.com/repos/alvestrand/web-platform-tests/contributors",
116 | "subscribers_url": "https://api.github.com/repos/alvestrand/web-platform-tests/subscribers",
117 | "subscription_url": "https://api.github.com/repos/alvestrand/web-platform-tests/subscription",
118 | "commits_url": "https://api.github.com/repos/alvestrand/web-platform-tests/commits{/sha}",
119 | "git_commits_url": "https://api.github.com/repos/alvestrand/web-platform-tests/git/commits{/sha}",
120 | "comments_url": "https://api.github.com/repos/alvestrand/web-platform-tests/comments{/number}",
121 | "issue_comment_url": "https://api.github.com/repos/alvestrand/web-platform-tests/issues/comments{/number}",
122 | "contents_url": "https://api.github.com/repos/alvestrand/web-platform-tests/contents/{+path}",
123 | "compare_url": "https://api.github.com/repos/alvestrand/web-platform-tests/compare/{base}...{head}",
124 | "merges_url": "https://api.github.com/repos/alvestrand/web-platform-tests/merges",
125 | "archive_url": "https://api.github.com/repos/alvestrand/web-platform-tests/{archive_format}{/ref}",
126 | "downloads_url": "https://api.github.com/repos/alvestrand/web-platform-tests/downloads",
127 | "issues_url": "https://api.github.com/repos/alvestrand/web-platform-tests/issues{/number}",
128 | "pulls_url": "https://api.github.com/repos/alvestrand/web-platform-tests/pulls{/number}",
129 | "milestones_url": "https://api.github.com/repos/alvestrand/web-platform-tests/milestones{/number}",
130 | "notifications_url": "https://api.github.com/repos/alvestrand/web-platform-tests/notifications{?since,all,participating}",
131 | "labels_url": "https://api.github.com/repos/alvestrand/web-platform-tests/labels{/name}",
132 | "releases_url": "https://api.github.com/repos/alvestrand/web-platform-tests/releases{/id}",
133 | "created_at": "2015-04-28T10:06:31Z",
134 | "updated_at": "2015-04-28T10:06:46Z",
135 | "pushed_at": "2015-05-13T08:24:26Z",
136 | "git_url": "git://github.com/alvestrand/web-platform-tests.git",
137 | "ssh_url": "git@github.com:alvestrand/web-platform-tests.git",
138 | "clone_url": "https://github.com/alvestrand/web-platform-tests.git",
139 | "svn_url": "https://github.com/alvestrand/web-platform-tests",
140 | "homepage": "http://irc.w3.org/?channels=testing",
141 | "size": 57087,
142 | "stargazers_count": 0,
143 | "watchers_count": 0,
144 | "language": "HTML",
145 | "has_issues": false,
146 | "has_downloads": true,
147 | "has_wiki": false,
148 | "has_pages": false,
149 | "forks_count": 0,
150 | "mirror_url": null,
151 | "open_issues_count": 0,
152 | "forks": 0,
153 | "open_issues": 0,
154 | "watchers": 0,
155 | "default_branch": "master"
156 | }
157 | },
158 | "base": {
159 | "label": "w3c:master",
160 | "ref": "master",
161 | "sha": "3d48457eec659cf11b0c37ebb3db83759e7415e5",
162 | "user": {
163 | "login": "w3c",
164 | "id": 379216,
165 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
166 | "gravatar_id": "",
167 | "url": "https://api.github.com/users/w3c",
168 | "html_url": "https://github.com/w3c",
169 | "followers_url": "https://api.github.com/users/w3c/followers",
170 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
171 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
172 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
173 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
174 | "organizations_url": "https://api.github.com/users/w3c/orgs",
175 | "repos_url": "https://api.github.com/users/w3c/repos",
176 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
177 | "received_events_url": "https://api.github.com/users/w3c/received_events",
178 | "type": "Organization",
179 | "site_admin": false
180 | },
181 | "repo": {
182 | "id": 3618133,
183 | "name": "web-platform-tests",
184 | "full_name": "w3c/web-platform-tests",
185 | "owner": {
186 | "login": "w3c",
187 | "id": 379216,
188 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
189 | "gravatar_id": "",
190 | "url": "https://api.github.com/users/w3c",
191 | "html_url": "https://github.com/w3c",
192 | "followers_url": "https://api.github.com/users/w3c/followers",
193 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
194 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
195 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
196 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
197 | "organizations_url": "https://api.github.com/users/w3c/orgs",
198 | "repos_url": "https://api.github.com/users/w3c/repos",
199 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
200 | "received_events_url": "https://api.github.com/users/w3c/received_events",
201 | "type": "Organization",
202 | "site_admin": false
203 | },
204 | "private": false,
205 | "html_url": "https://github.com/w3c/web-platform-tests",
206 | "description": "Test Suites for Web Platform specifications",
207 | "fork": false,
208 | "url": "https://api.github.com/repos/w3c/web-platform-tests",
209 | "forks_url": "https://api.github.com/repos/w3c/web-platform-tests/forks",
210 | "keys_url": "https://api.github.com/repos/w3c/web-platform-tests/keys{/key_id}",
211 | "collaborators_url": "https://api.github.com/repos/w3c/web-platform-tests/collaborators{/collaborator}",
212 | "teams_url": "https://api.github.com/repos/w3c/web-platform-tests/teams",
213 | "hooks_url": "https://api.github.com/repos/w3c/web-platform-tests/hooks",
214 | "issue_events_url": "https://api.github.com/repos/w3c/web-platform-tests/issues/events{/number}",
215 | "events_url": "https://api.github.com/repos/w3c/web-platform-tests/events",
216 | "assignees_url": "https://api.github.com/repos/w3c/web-platform-tests/assignees{/user}",
217 | "branches_url": "https://api.github.com/repos/w3c/web-platform-tests/branches{/branch}",
218 | "tags_url": "https://api.github.com/repos/w3c/web-platform-tests/tags",
219 | "blobs_url": "https://api.github.com/repos/w3c/web-platform-tests/git/blobs{/sha}",
220 | "git_tags_url": "https://api.github.com/repos/w3c/web-platform-tests/git/tags{/sha}",
221 | "git_refs_url": "https://api.github.com/repos/w3c/web-platform-tests/git/refs{/sha}",
222 | "trees_url": "https://api.github.com/repos/w3c/web-platform-tests/git/trees{/sha}",
223 | "statuses_url": "https://api.github.com/repos/w3c/web-platform-tests/statuses/{sha}",
224 | "languages_url": "https://api.github.com/repos/w3c/web-platform-tests/languages",
225 | "stargazers_url": "https://api.github.com/repos/w3c/web-platform-tests/stargazers",
226 | "contributors_url": "https://api.github.com/repos/w3c/web-platform-tests/contributors",
227 | "subscribers_url": "https://api.github.com/repos/w3c/web-platform-tests/subscribers",
228 | "subscription_url": "https://api.github.com/repos/w3c/web-platform-tests/subscription",
229 | "commits_url": "https://api.github.com/repos/w3c/web-platform-tests/commits{/sha}",
230 | "git_commits_url": "https://api.github.com/repos/w3c/web-platform-tests/git/commits{/sha}",
231 | "comments_url": "https://api.github.com/repos/w3c/web-platform-tests/comments{/number}",
232 | "issue_comment_url": "https://api.github.com/repos/w3c/web-platform-tests/issues/comments{/number}",
233 | "contents_url": "https://api.github.com/repos/w3c/web-platform-tests/contents/{+path}",
234 | "compare_url": "https://api.github.com/repos/w3c/web-platform-tests/compare/{base}...{head}",
235 | "merges_url": "https://api.github.com/repos/w3c/web-platform-tests/merges",
236 | "archive_url": "https://api.github.com/repos/w3c/web-platform-tests/{archive_format}{/ref}",
237 | "downloads_url": "https://api.github.com/repos/w3c/web-platform-tests/downloads",
238 | "issues_url": "https://api.github.com/repos/w3c/web-platform-tests/issues{/number}",
239 | "pulls_url": "https://api.github.com/repos/w3c/web-platform-tests/pulls{/number}",
240 | "milestones_url": "https://api.github.com/repos/w3c/web-platform-tests/milestones{/number}",
241 | "notifications_url": "https://api.github.com/repos/w3c/web-platform-tests/notifications{?since,all,participating}",
242 | "labels_url": "https://api.github.com/repos/w3c/web-platform-tests/labels{/name}",
243 | "releases_url": "https://api.github.com/repos/w3c/web-platform-tests/releases{/id}",
244 | "created_at": "2012-03-04T12:58:11Z",
245 | "updated_at": "2015-05-12T21:01:50Z",
246 | "pushed_at": "2015-05-13T08:27:13Z",
247 | "git_url": "git://github.com/w3c/web-platform-tests.git",
248 | "ssh_url": "git@github.com:w3c/web-platform-tests.git",
249 | "clone_url": "https://github.com/w3c/web-platform-tests.git",
250 | "svn_url": "https://github.com/w3c/web-platform-tests",
251 | "homepage": "http://irc.w3.org/?channels=testing",
252 | "size": 299199,
253 | "stargazers_count": 567,
254 | "watchers_count": 567,
255 | "language": "HTML",
256 | "has_issues": true,
257 | "has_downloads": true,
258 | "has_wiki": false,
259 | "has_pages": false,
260 | "forks_count": 679,
261 | "mirror_url": null,
262 | "open_issues_count": 198,
263 | "forks": 679,
264 | "open_issues": 198,
265 | "watchers": 567,
266 | "default_branch": "master"
267 | }
268 | },
269 | "_links": {
270 | "self": {
271 | "href": "https://api.github.com/repos/w3c/web-platform-tests/pulls/1824"
272 | },
273 | "html": {
274 | "href": "https://github.com/w3c/web-platform-tests/pull/1824"
275 | },
276 | "issue": {
277 | "href": "https://api.github.com/repos/w3c/web-platform-tests/issues/1824"
278 | },
279 | "comments": {
280 | "href": "https://api.github.com/repos/w3c/web-platform-tests/issues/1824/comments"
281 | },
282 | "review_comments": {
283 | "href": "https://api.github.com/repos/w3c/web-platform-tests/pulls/1824/comments"
284 | },
285 | "review_comment": {
286 | "href": "https://api.github.com/repos/w3c/web-platform-tests/pulls/comments{/number}"
287 | },
288 | "commits": {
289 | "href": "https://api.github.com/repos/w3c/web-platform-tests/pulls/1824/commits"
290 | },
291 | "statuses": {
292 | "href": "https://api.github.com/repos/w3c/web-platform-tests/statuses/168935a4e48e81127e7be29b62ad5a26d1108831"
293 | }
294 | },
295 | "merged": false,
296 | "mergeable": true,
297 | "mergeable_state": "clean",
298 | "merged_by": null,
299 | "comments": 0,
300 | "review_comments": 0,
301 | "commits": 1,
302 | "additions": 148,
303 | "deletions": 0,
304 | "changed_files": 1
305 | },
306 | "label": {
307 | "url": "https://api.github.com/repos/w3c/web-platform-tests/labels/wg-webrtc",
308 | "name": "wg-webrtc",
309 | "color": "0052cc"
310 | },
311 | "repository": {
312 | "id": 3618133,
313 | "name": "web-platform-tests",
314 | "full_name": "w3c/web-platform-tests",
315 | "owner": {
316 | "login": "w3c",
317 | "id": 379216,
318 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
319 | "gravatar_id": "",
320 | "url": "https://api.github.com/users/w3c",
321 | "html_url": "https://github.com/w3c",
322 | "followers_url": "https://api.github.com/users/w3c/followers",
323 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
324 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
325 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
326 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
327 | "organizations_url": "https://api.github.com/users/w3c/orgs",
328 | "repos_url": "https://api.github.com/users/w3c/repos",
329 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
330 | "received_events_url": "https://api.github.com/users/w3c/received_events",
331 | "type": "Organization",
332 | "site_admin": false
333 | },
334 | "private": false,
335 | "html_url": "https://github.com/w3c/web-platform-tests",
336 | "description": "Test Suites for Web Platform specifications",
337 | "fork": false,
338 | "url": "https://api.github.com/repos/w3c/web-platform-tests",
339 | "forks_url": "https://api.github.com/repos/w3c/web-platform-tests/forks",
340 | "keys_url": "https://api.github.com/repos/w3c/web-platform-tests/keys{/key_id}",
341 | "collaborators_url": "https://api.github.com/repos/w3c/web-platform-tests/collaborators{/collaborator}",
342 | "teams_url": "https://api.github.com/repos/w3c/web-platform-tests/teams",
343 | "hooks_url": "https://api.github.com/repos/w3c/web-platform-tests/hooks",
344 | "issue_events_url": "https://api.github.com/repos/w3c/web-platform-tests/issues/events{/number}",
345 | "events_url": "https://api.github.com/repos/w3c/web-platform-tests/events",
346 | "assignees_url": "https://api.github.com/repos/w3c/web-platform-tests/assignees{/user}",
347 | "branches_url": "https://api.github.com/repos/w3c/web-platform-tests/branches{/branch}",
348 | "tags_url": "https://api.github.com/repos/w3c/web-platform-tests/tags",
349 | "blobs_url": "https://api.github.com/repos/w3c/web-platform-tests/git/blobs{/sha}",
350 | "git_tags_url": "https://api.github.com/repos/w3c/web-platform-tests/git/tags{/sha}",
351 | "git_refs_url": "https://api.github.com/repos/w3c/web-platform-tests/git/refs{/sha}",
352 | "trees_url": "https://api.github.com/repos/w3c/web-platform-tests/git/trees{/sha}",
353 | "statuses_url": "https://api.github.com/repos/w3c/web-platform-tests/statuses/{sha}",
354 | "languages_url": "https://api.github.com/repos/w3c/web-platform-tests/languages",
355 | "stargazers_url": "https://api.github.com/repos/w3c/web-platform-tests/stargazers",
356 | "contributors_url": "https://api.github.com/repos/w3c/web-platform-tests/contributors",
357 | "subscribers_url": "https://api.github.com/repos/w3c/web-platform-tests/subscribers",
358 | "subscription_url": "https://api.github.com/repos/w3c/web-platform-tests/subscription",
359 | "commits_url": "https://api.github.com/repos/w3c/web-platform-tests/commits{/sha}",
360 | "git_commits_url": "https://api.github.com/repos/w3c/web-platform-tests/git/commits{/sha}",
361 | "comments_url": "https://api.github.com/repos/w3c/web-platform-tests/comments{/number}",
362 | "issue_comment_url": "https://api.github.com/repos/w3c/web-platform-tests/issues/comments{/number}",
363 | "contents_url": "https://api.github.com/repos/w3c/web-platform-tests/contents/{+path}",
364 | "compare_url": "https://api.github.com/repos/w3c/web-platform-tests/compare/{base}...{head}",
365 | "merges_url": "https://api.github.com/repos/w3c/web-platform-tests/merges",
366 | "archive_url": "https://api.github.com/repos/w3c/web-platform-tests/{archive_format}{/ref}",
367 | "downloads_url": "https://api.github.com/repos/w3c/web-platform-tests/downloads",
368 | "issues_url": "https://api.github.com/repos/w3c/web-platform-tests/issues{/number}",
369 | "pulls_url": "https://api.github.com/repos/w3c/web-platform-tests/pulls{/number}",
370 | "milestones_url": "https://api.github.com/repos/w3c/web-platform-tests/milestones{/number}",
371 | "notifications_url": "https://api.github.com/repos/w3c/web-platform-tests/notifications{?since,all,participating}",
372 | "labels_url": "https://api.github.com/repos/w3c/web-platform-tests/labels{/name}",
373 | "releases_url": "https://api.github.com/repos/w3c/web-platform-tests/releases{/id}",
374 | "created_at": "2012-03-04T12:58:11Z",
375 | "updated_at": "2015-05-12T21:01:50Z",
376 | "pushed_at": "2015-05-13T08:27:13Z",
377 | "git_url": "git://github.com/w3c/web-platform-tests.git",
378 | "ssh_url": "git@github.com:w3c/web-platform-tests.git",
379 | "clone_url": "https://github.com/w3c/web-platform-tests.git",
380 | "svn_url": "https://github.com/w3c/web-platform-tests",
381 | "homepage": "http://irc.w3.org/?channels=testing",
382 | "size": 299199,
383 | "stargazers_count": 567,
384 | "watchers_count": 567,
385 | "language": "HTML",
386 | "has_issues": true,
387 | "has_downloads": true,
388 | "has_wiki": false,
389 | "has_pages": false,
390 | "forks_count": 679,
391 | "mirror_url": null,
392 | "open_issues_count": 198,
393 | "forks": 679,
394 | "open_issues": 198,
395 | "watchers": 567,
396 | "default_branch": "master"
397 | },
398 | "organization": {
399 | "login": "w3c",
400 | "id": 379216,
401 | "url": "https://api.github.com/orgs/w3c",
402 | "repos_url": "https://api.github.com/orgs/w3c/repos",
403 | "events_url": "https://api.github.com/orgs/w3c/events",
404 | "members_url": "https://api.github.com/orgs/w3c/members{/member}",
405 | "public_members_url": "https://api.github.com/orgs/w3c/public_members{/member}",
406 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
407 | "description": "The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web."
408 | },
409 | "sender": {
410 | "login": "tobie",
411 | "id": 3392,
412 | "avatar_url": "https://avatars.githubusercontent.com/u/3392?v=3",
413 | "gravatar_id": "",
414 | "url": "https://api.github.com/users/tobie",
415 | "html_url": "https://github.com/tobie",
416 | "followers_url": "https://api.github.com/users/tobie/followers",
417 | "following_url": "https://api.github.com/users/tobie/following{/other_user}",
418 | "gists_url": "https://api.github.com/users/tobie/gists{/gist_id}",
419 | "starred_url": "https://api.github.com/users/tobie/starred{/owner}{/repo}",
420 | "subscriptions_url": "https://api.github.com/users/tobie/subscriptions",
421 | "organizations_url": "https://api.github.com/users/tobie/orgs",
422 | "repos_url": "https://api.github.com/users/tobie/repos",
423 | "events_url": "https://api.github.com/users/tobie/events{/privacy}",
424 | "received_events_url": "https://api.github.com/users/tobie/received_events",
425 | "type": "User",
426 | "site_admin": false
427 | }
428 | }
429 |
--------------------------------------------------------------------------------
/tests/pull-labeled.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: Tobie Langel via GitHub
5 | To: dom@localhost
6 | Subject: [web-platform-tests] Pull Request: Adding a basic no-media call that uses
7 | promises.
8 | Message-ID:
9 |
10 | tobie has just labeled a pull request from alvestrand for https://github.com/w3c/web-platform-tests as "wg-webrtc":
11 |
12 |
13 | == Adding a basic no-media call that uses promises. ==
14 | This tests the basic promise machinery in PeerConnection.
15 |
16 |
17 | Tested and works in Firefox; asking @jan-ivar to take a look because he's probably most passionate about how Promises usage should be styled.
18 |
19 |
20 |
21 |
22 | See https://github.com/w3c/web-platform-tests/pull/1824
23 |
--------------------------------------------------------------------------------
/tests/pull-merged.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "closed",
3 | "number": 433,
4 | "pull_request": {
5 | "url": "https://api.github.com/repos/w3c/webrtc-pc/pulls/433",
6 | "id": 53266014,
7 | "html_url": "https://github.com/w3c/webrtc-pc/pull/433",
8 | "diff_url": "https://github.com/w3c/webrtc-pc/pull/433.diff",
9 | "patch_url": "https://github.com/w3c/webrtc-pc/pull/433.patch",
10 | "issue_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/433",
11 | "number": 433,
12 | "state": "closed",
13 | "locked": false,
14 | "title": "Use unsigned long ssrc in stats",
15 | "user": {
16 | "login": "dontcallmedom",
17 | "id": 216410,
18 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=3",
19 | "gravatar_id": "",
20 | "url": "https://api.github.com/users/dontcallmedom",
21 | "html_url": "https://github.com/dontcallmedom",
22 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
23 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
24 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
25 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
26 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
27 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
28 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
29 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
30 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
31 | "type": "User",
32 | "site_admin": false
33 | },
34 | "body": "close #390",
35 | "created_at": "2015-12-10T14:37:34Z",
36 | "updated_at": "2015-12-10T15:58:35Z",
37 | "closed_at": "2015-12-10T15:58:35Z",
38 | "merged_at": "2015-12-10T15:58:35Z",
39 | "merge_commit_sha": "d50855e6c941b6b27bbebc7cc68e97ca527d5c04",
40 | "assignee": null,
41 | "milestone": null,
42 | "commits_url": "https://api.github.com/repos/w3c/webrtc-pc/pulls/433/commits",
43 | "review_comments_url": "https://api.github.com/repos/w3c/webrtc-pc/pulls/433/comments",
44 | "review_comment_url": "https://api.github.com/repos/w3c/webrtc-pc/pulls/comments{/number}",
45 | "comments_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/433/comments",
46 | "statuses_url": "https://api.github.com/repos/w3c/webrtc-pc/statuses/d23986950458b0f14729d8efcb2bca0aa26fe0a1",
47 | "head": {
48 | "label": "dontcallmedom:ssrc-type",
49 | "ref": "ssrc-type",
50 | "sha": "d23986950458b0f14729d8efcb2bca0aa26fe0a1",
51 | "user": {
52 | "login": "dontcallmedom",
53 | "id": 216410,
54 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=3",
55 | "gravatar_id": "",
56 | "url": "https://api.github.com/users/dontcallmedom",
57 | "html_url": "https://github.com/dontcallmedom",
58 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
59 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
60 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
61 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
62 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
63 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
64 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
65 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
66 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
67 | "type": "User",
68 | "site_admin": false
69 | },
70 | "repo": {
71 | "id": 24838057,
72 | "name": "webrtc-pc",
73 | "full_name": "dontcallmedom/webrtc-pc",
74 | "owner": {
75 | "login": "dontcallmedom",
76 | "id": 216410,
77 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=3",
78 | "gravatar_id": "",
79 | "url": "https://api.github.com/users/dontcallmedom",
80 | "html_url": "https://github.com/dontcallmedom",
81 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
82 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
83 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
84 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
85 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
86 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
87 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
88 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
89 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
90 | "type": "User",
91 | "site_admin": false
92 | },
93 | "private": false,
94 | "html_url": "https://github.com/dontcallmedom/webrtc-pc",
95 | "description": "WebRTC 1.0 API",
96 | "fork": true,
97 | "url": "https://api.github.com/repos/dontcallmedom/webrtc-pc",
98 | "forks_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/forks",
99 | "keys_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/keys{/key_id}",
100 | "collaborators_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/collaborators{/collaborator}",
101 | "teams_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/teams",
102 | "hooks_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/hooks",
103 | "issue_events_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/issues/events{/number}",
104 | "events_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/events",
105 | "assignees_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/assignees{/user}",
106 | "branches_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/branches{/branch}",
107 | "tags_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/tags",
108 | "blobs_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/git/blobs{/sha}",
109 | "git_tags_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/git/tags{/sha}",
110 | "git_refs_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/git/refs{/sha}",
111 | "trees_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/git/trees{/sha}",
112 | "statuses_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/statuses/{sha}",
113 | "languages_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/languages",
114 | "stargazers_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/stargazers",
115 | "contributors_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/contributors",
116 | "subscribers_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/subscribers",
117 | "subscription_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/subscription",
118 | "commits_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/commits{/sha}",
119 | "git_commits_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/git/commits{/sha}",
120 | "comments_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/comments{/number}",
121 | "issue_comment_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/issues/comments{/number}",
122 | "contents_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/contents/{+path}",
123 | "compare_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/compare/{base}...{head}",
124 | "merges_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/merges",
125 | "archive_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/{archive_format}{/ref}",
126 | "downloads_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/downloads",
127 | "issues_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/issues{/number}",
128 | "pulls_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/pulls{/number}",
129 | "milestones_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/milestones{/number}",
130 | "notifications_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/notifications{?since,all,participating}",
131 | "labels_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/labels{/name}",
132 | "releases_url": "https://api.github.com/repos/dontcallmedom/webrtc-pc/releases{/id}",
133 | "created_at": "2014-10-06T08:02:29Z",
134 | "updated_at": "2014-09-19T06:56:12Z",
135 | "pushed_at": "2015-12-10T14:36:17Z",
136 | "git_url": "git://github.com/dontcallmedom/webrtc-pc.git",
137 | "ssh_url": "git@github.com:dontcallmedom/webrtc-pc.git",
138 | "clone_url": "https://github.com/dontcallmedom/webrtc-pc.git",
139 | "svn_url": "https://github.com/dontcallmedom/webrtc-pc",
140 | "homepage": null,
141 | "size": 15295,
142 | "stargazers_count": 0,
143 | "watchers_count": 0,
144 | "language": null,
145 | "has_issues": false,
146 | "has_downloads": true,
147 | "has_wiki": true,
148 | "has_pages": true,
149 | "forks_count": 0,
150 | "mirror_url": null,
151 | "open_issues_count": 0,
152 | "forks": 0,
153 | "open_issues": 0,
154 | "watchers": 0,
155 | "default_branch": "master"
156 | }
157 | },
158 | "base": {
159 | "label": "w3c:master",
160 | "ref": "master",
161 | "sha": "b78d5c3ef4a6c042991e2bcd8fdefcf2c8dc39dc",
162 | "user": {
163 | "login": "w3c",
164 | "id": 379216,
165 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
166 | "gravatar_id": "",
167 | "url": "https://api.github.com/users/w3c",
168 | "html_url": "https://github.com/w3c",
169 | "followers_url": "https://api.github.com/users/w3c/followers",
170 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
171 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
172 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
173 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
174 | "organizations_url": "https://api.github.com/users/w3c/orgs",
175 | "repos_url": "https://api.github.com/users/w3c/repos",
176 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
177 | "received_events_url": "https://api.github.com/users/w3c/received_events",
178 | "type": "Organization",
179 | "site_admin": false
180 | },
181 | "repo": {
182 | "id": 23384500,
183 | "name": "webrtc-pc",
184 | "full_name": "w3c/webrtc-pc",
185 | "owner": {
186 | "login": "w3c",
187 | "id": 379216,
188 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
189 | "gravatar_id": "",
190 | "url": "https://api.github.com/users/w3c",
191 | "html_url": "https://github.com/w3c",
192 | "followers_url": "https://api.github.com/users/w3c/followers",
193 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
194 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
195 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
196 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
197 | "organizations_url": "https://api.github.com/users/w3c/orgs",
198 | "repos_url": "https://api.github.com/users/w3c/repos",
199 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
200 | "received_events_url": "https://api.github.com/users/w3c/received_events",
201 | "type": "Organization",
202 | "site_admin": false
203 | },
204 | "private": false,
205 | "html_url": "https://github.com/w3c/webrtc-pc",
206 | "description": "WebRTC 1.0 API",
207 | "fork": false,
208 | "url": "https://api.github.com/repos/w3c/webrtc-pc",
209 | "forks_url": "https://api.github.com/repos/w3c/webrtc-pc/forks",
210 | "keys_url": "https://api.github.com/repos/w3c/webrtc-pc/keys{/key_id}",
211 | "collaborators_url": "https://api.github.com/repos/w3c/webrtc-pc/collaborators{/collaborator}",
212 | "teams_url": "https://api.github.com/repos/w3c/webrtc-pc/teams",
213 | "hooks_url": "https://api.github.com/repos/w3c/webrtc-pc/hooks",
214 | "issue_events_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/events{/number}",
215 | "events_url": "https://api.github.com/repos/w3c/webrtc-pc/events",
216 | "assignees_url": "https://api.github.com/repos/w3c/webrtc-pc/assignees{/user}",
217 | "branches_url": "https://api.github.com/repos/w3c/webrtc-pc/branches{/branch}",
218 | "tags_url": "https://api.github.com/repos/w3c/webrtc-pc/tags",
219 | "blobs_url": "https://api.github.com/repos/w3c/webrtc-pc/git/blobs{/sha}",
220 | "git_tags_url": "https://api.github.com/repos/w3c/webrtc-pc/git/tags{/sha}",
221 | "git_refs_url": "https://api.github.com/repos/w3c/webrtc-pc/git/refs{/sha}",
222 | "trees_url": "https://api.github.com/repos/w3c/webrtc-pc/git/trees{/sha}",
223 | "statuses_url": "https://api.github.com/repos/w3c/webrtc-pc/statuses/{sha}",
224 | "languages_url": "https://api.github.com/repos/w3c/webrtc-pc/languages",
225 | "stargazers_url": "https://api.github.com/repos/w3c/webrtc-pc/stargazers",
226 | "contributors_url": "https://api.github.com/repos/w3c/webrtc-pc/contributors",
227 | "subscribers_url": "https://api.github.com/repos/w3c/webrtc-pc/subscribers",
228 | "subscription_url": "https://api.github.com/repos/w3c/webrtc-pc/subscription",
229 | "commits_url": "https://api.github.com/repos/w3c/webrtc-pc/commits{/sha}",
230 | "git_commits_url": "https://api.github.com/repos/w3c/webrtc-pc/git/commits{/sha}",
231 | "comments_url": "https://api.github.com/repos/w3c/webrtc-pc/comments{/number}",
232 | "issue_comment_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/comments{/number}",
233 | "contents_url": "https://api.github.com/repos/w3c/webrtc-pc/contents/{+path}",
234 | "compare_url": "https://api.github.com/repos/w3c/webrtc-pc/compare/{base}...{head}",
235 | "merges_url": "https://api.github.com/repos/w3c/webrtc-pc/merges",
236 | "archive_url": "https://api.github.com/repos/w3c/webrtc-pc/{archive_format}{/ref}",
237 | "downloads_url": "https://api.github.com/repos/w3c/webrtc-pc/downloads",
238 | "issues_url": "https://api.github.com/repos/w3c/webrtc-pc/issues{/number}",
239 | "pulls_url": "https://api.github.com/repos/w3c/webrtc-pc/pulls{/number}",
240 | "milestones_url": "https://api.github.com/repos/w3c/webrtc-pc/milestones{/number}",
241 | "notifications_url": "https://api.github.com/repos/w3c/webrtc-pc/notifications{?since,all,participating}",
242 | "labels_url": "https://api.github.com/repos/w3c/webrtc-pc/labels{/name}",
243 | "releases_url": "https://api.github.com/repos/w3c/webrtc-pc/releases{/id}",
244 | "created_at": "2014-08-27T09:39:00Z",
245 | "updated_at": "2015-12-03T14:33:58Z",
246 | "pushed_at": "2015-12-10T15:58:35Z",
247 | "git_url": "git://github.com/w3c/webrtc-pc.git",
248 | "ssh_url": "git@github.com:w3c/webrtc-pc.git",
249 | "clone_url": "https://github.com/w3c/webrtc-pc.git",
250 | "svn_url": "https://github.com/w3c/webrtc-pc",
251 | "homepage": null,
252 | "size": 17389,
253 | "stargazers_count": 53,
254 | "watchers_count": 53,
255 | "language": "HTML",
256 | "has_issues": true,
257 | "has_downloads": true,
258 | "has_wiki": true,
259 | "has_pages": true,
260 | "forks_count": 31,
261 | "mirror_url": null,
262 | "open_issues_count": 60,
263 | "forks": 31,
264 | "open_issues": 60,
265 | "watchers": 53,
266 | "default_branch": "master"
267 | }
268 | },
269 | "_links": {
270 | "self": {
271 | "href": "https://api.github.com/repos/w3c/webrtc-pc/pulls/433"
272 | },
273 | "html": {
274 | "href": "https://github.com/w3c/webrtc-pc/pull/433"
275 | },
276 | "issue": {
277 | "href": "https://api.github.com/repos/w3c/webrtc-pc/issues/433"
278 | },
279 | "comments": {
280 | "href": "https://api.github.com/repos/w3c/webrtc-pc/issues/433/comments"
281 | },
282 | "review_comments": {
283 | "href": "https://api.github.com/repos/w3c/webrtc-pc/pulls/433/comments"
284 | },
285 | "review_comment": {
286 | "href": "https://api.github.com/repos/w3c/webrtc-pc/pulls/comments{/number}"
287 | },
288 | "commits": {
289 | "href": "https://api.github.com/repos/w3c/webrtc-pc/pulls/433/commits"
290 | },
291 | "statuses": {
292 | "href": "https://api.github.com/repos/w3c/webrtc-pc/statuses/d23986950458b0f14729d8efcb2bca0aa26fe0a1"
293 | }
294 | },
295 | "merged": true,
296 | "mergeable": null,
297 | "mergeable_state": "unknown",
298 | "merged_by": {
299 | "login": "alvestrand",
300 | "id": 480893,
301 | "avatar_url": "https://avatars.githubusercontent.com/u/480893?v=3",
302 | "gravatar_id": "",
303 | "url": "https://api.github.com/users/alvestrand",
304 | "html_url": "https://github.com/alvestrand",
305 | "followers_url": "https://api.github.com/users/alvestrand/followers",
306 | "following_url": "https://api.github.com/users/alvestrand/following{/other_user}",
307 | "gists_url": "https://api.github.com/users/alvestrand/gists{/gist_id}",
308 | "starred_url": "https://api.github.com/users/alvestrand/starred{/owner}{/repo}",
309 | "subscriptions_url": "https://api.github.com/users/alvestrand/subscriptions",
310 | "organizations_url": "https://api.github.com/users/alvestrand/orgs",
311 | "repos_url": "https://api.github.com/users/alvestrand/repos",
312 | "events_url": "https://api.github.com/users/alvestrand/events{/privacy}",
313 | "received_events_url": "https://api.github.com/users/alvestrand/received_events",
314 | "type": "User",
315 | "site_admin": false
316 | },
317 | "comments": 0,
318 | "review_comments": 0,
319 | "commits": 1,
320 | "additions": 1,
321 | "deletions": 1,
322 | "changed_files": 1
323 | },
324 | "repository": {
325 | "id": 23384500,
326 | "name": "webrtc-pc",
327 | "full_name": "w3c/webrtc-pc",
328 | "owner": {
329 | "login": "w3c",
330 | "id": 379216,
331 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
332 | "gravatar_id": "",
333 | "url": "https://api.github.com/users/w3c",
334 | "html_url": "https://github.com/w3c",
335 | "followers_url": "https://api.github.com/users/w3c/followers",
336 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
337 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
338 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
339 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
340 | "organizations_url": "https://api.github.com/users/w3c/orgs",
341 | "repos_url": "https://api.github.com/users/w3c/repos",
342 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
343 | "received_events_url": "https://api.github.com/users/w3c/received_events",
344 | "type": "Organization",
345 | "site_admin": false
346 | },
347 | "private": false,
348 | "html_url": "https://github.com/w3c/webrtc-pc",
349 | "description": "WebRTC 1.0 API",
350 | "fork": false,
351 | "url": "https://api.github.com/repos/w3c/webrtc-pc",
352 | "forks_url": "https://api.github.com/repos/w3c/webrtc-pc/forks",
353 | "keys_url": "https://api.github.com/repos/w3c/webrtc-pc/keys{/key_id}",
354 | "collaborators_url": "https://api.github.com/repos/w3c/webrtc-pc/collaborators{/collaborator}",
355 | "teams_url": "https://api.github.com/repos/w3c/webrtc-pc/teams",
356 | "hooks_url": "https://api.github.com/repos/w3c/webrtc-pc/hooks",
357 | "issue_events_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/events{/number}",
358 | "events_url": "https://api.github.com/repos/w3c/webrtc-pc/events",
359 | "assignees_url": "https://api.github.com/repos/w3c/webrtc-pc/assignees{/user}",
360 | "branches_url": "https://api.github.com/repos/w3c/webrtc-pc/branches{/branch}",
361 | "tags_url": "https://api.github.com/repos/w3c/webrtc-pc/tags",
362 | "blobs_url": "https://api.github.com/repos/w3c/webrtc-pc/git/blobs{/sha}",
363 | "git_tags_url": "https://api.github.com/repos/w3c/webrtc-pc/git/tags{/sha}",
364 | "git_refs_url": "https://api.github.com/repos/w3c/webrtc-pc/git/refs{/sha}",
365 | "trees_url": "https://api.github.com/repos/w3c/webrtc-pc/git/trees{/sha}",
366 | "statuses_url": "https://api.github.com/repos/w3c/webrtc-pc/statuses/{sha}",
367 | "languages_url": "https://api.github.com/repos/w3c/webrtc-pc/languages",
368 | "stargazers_url": "https://api.github.com/repos/w3c/webrtc-pc/stargazers",
369 | "contributors_url": "https://api.github.com/repos/w3c/webrtc-pc/contributors",
370 | "subscribers_url": "https://api.github.com/repos/w3c/webrtc-pc/subscribers",
371 | "subscription_url": "https://api.github.com/repos/w3c/webrtc-pc/subscription",
372 | "commits_url": "https://api.github.com/repos/w3c/webrtc-pc/commits{/sha}",
373 | "git_commits_url": "https://api.github.com/repos/w3c/webrtc-pc/git/commits{/sha}",
374 | "comments_url": "https://api.github.com/repos/w3c/webrtc-pc/comments{/number}",
375 | "issue_comment_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/comments{/number}",
376 | "contents_url": "https://api.github.com/repos/w3c/webrtc-pc/contents/{+path}",
377 | "compare_url": "https://api.github.com/repos/w3c/webrtc-pc/compare/{base}...{head}",
378 | "merges_url": "https://api.github.com/repos/w3c/webrtc-pc/merges",
379 | "archive_url": "https://api.github.com/repos/w3c/webrtc-pc/{archive_format}{/ref}",
380 | "downloads_url": "https://api.github.com/repos/w3c/webrtc-pc/downloads",
381 | "issues_url": "https://api.github.com/repos/w3c/webrtc-pc/issues{/number}",
382 | "pulls_url": "https://api.github.com/repos/w3c/webrtc-pc/pulls{/number}",
383 | "milestones_url": "https://api.github.com/repos/w3c/webrtc-pc/milestones{/number}",
384 | "notifications_url": "https://api.github.com/repos/w3c/webrtc-pc/notifications{?since,all,participating}",
385 | "labels_url": "https://api.github.com/repos/w3c/webrtc-pc/labels{/name}",
386 | "releases_url": "https://api.github.com/repos/w3c/webrtc-pc/releases{/id}",
387 | "created_at": "2014-08-27T09:39:00Z",
388 | "updated_at": "2015-12-03T14:33:58Z",
389 | "pushed_at": "2015-12-10T15:58:35Z",
390 | "git_url": "git://github.com/w3c/webrtc-pc.git",
391 | "ssh_url": "git@github.com:w3c/webrtc-pc.git",
392 | "clone_url": "https://github.com/w3c/webrtc-pc.git",
393 | "svn_url": "https://github.com/w3c/webrtc-pc",
394 | "homepage": null,
395 | "size": 17389,
396 | "stargazers_count": 53,
397 | "watchers_count": 53,
398 | "language": "HTML",
399 | "has_issues": true,
400 | "has_downloads": true,
401 | "has_wiki": true,
402 | "has_pages": true,
403 | "forks_count": 31,
404 | "mirror_url": null,
405 | "open_issues_count": 60,
406 | "forks": 31,
407 | "open_issues": 60,
408 | "watchers": 53,
409 | "default_branch": "master"
410 | },
411 | "organization": {
412 | "login": "w3c",
413 | "id": 379216,
414 | "url": "https://api.github.com/orgs/w3c",
415 | "repos_url": "https://api.github.com/orgs/w3c/repos",
416 | "events_url": "https://api.github.com/orgs/w3c/events",
417 | "members_url": "https://api.github.com/orgs/w3c/members{/member}",
418 | "public_members_url": "https://api.github.com/orgs/w3c/public_members{/member}",
419 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
420 | "description": "The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web."
421 | },
422 | "sender": {
423 | "login": "alvestrand",
424 | "id": 480893,
425 | "avatar_url": "https://avatars.githubusercontent.com/u/480893?v=3",
426 | "gravatar_id": "",
427 | "url": "https://api.github.com/users/alvestrand",
428 | "html_url": "https://github.com/alvestrand",
429 | "followers_url": "https://api.github.com/users/alvestrand/followers",
430 | "following_url": "https://api.github.com/users/alvestrand/following{/other_user}",
431 | "gists_url": "https://api.github.com/users/alvestrand/gists{/gist_id}",
432 | "starred_url": "https://api.github.com/users/alvestrand/starred{/owner}{/repo}",
433 | "subscriptions_url": "https://api.github.com/users/alvestrand/subscriptions",
434 | "organizations_url": "https://api.github.com/users/alvestrand/orgs",
435 | "repos_url": "https://api.github.com/users/alvestrand/repos",
436 | "events_url": "https://api.github.com/users/alvestrand/events{/privacy}",
437 | "received_events_url": "https://api.github.com/users/alvestrand/received_events",
438 | "type": "User",
439 | "site_admin": false
440 | }
441 | }
442 |
--------------------------------------------------------------------------------
/tests/pull-merged.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: Harald Alvestrand via GitHub
5 | To: dom@localhost
6 | Subject: [webrtc-pc] Merged Pull Request: Use unsigned long ssrc in stats
7 | Message-ID:
8 | In-Reply-To:
9 |
10 | alvestrand has just merged dontcallmedom's pull request 433 for https://github.com/w3c/webrtc-pc:
11 |
12 |
13 | == Use unsigned long ssrc in stats ==
14 | close #390
15 |
16 |
17 | See https://github.com/w3c/webrtc-pc/pull/433
18 |
--------------------------------------------------------------------------------
/tests/pull-notif.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "opened",
3 | "number": 54,
4 | "pull_request": {
5 | "url": "https://api.github.com/repos/w3c/presentation-api/pulls/54",
6 | "id": 29160635,
7 | "html_url": "https://github.com/w3c/presentation-api/pull/54",
8 | "diff_url": "https://github.com/w3c/presentation-api/pull/54.diff",
9 | "patch_url": "https://github.com/w3c/presentation-api/pull/54.patch",
10 | "issue_url": "https://api.github.com/repos/w3c/presentation-api/issues/54",
11 | "number": 54,
12 | "state": "open",
13 | "locked": false,
14 | "title": "Use the custom W3C Document License defined in the Charter",
15 | "user": {
16 | "login": "anssiko",
17 | "id": 765510,
18 | "avatar_url": "https://avatars.githubusercontent.com/u/765510?v=3",
19 | "gravatar_id": "",
20 | "url": "https://api.github.com/users/anssiko",
21 | "html_url": "https://github.com/anssiko",
22 | "followers_url": "https://api.github.com/users/anssiko/followers",
23 | "following_url": "https://api.github.com/users/anssiko/following{/other_user}",
24 | "gists_url": "https://api.github.com/users/anssiko/gists{/gist_id}",
25 | "starred_url": "https://api.github.com/users/anssiko/starred{/owner}{/repo}",
26 | "subscriptions_url": "https://api.github.com/users/anssiko/subscriptions",
27 | "organizations_url": "https://api.github.com/users/anssiko/orgs",
28 | "repos_url": "https://api.github.com/users/anssiko/repos",
29 | "events_url": "https://api.github.com/users/anssiko/events{/privacy}",
30 | "received_events_url": "https://api.github.com/users/anssiko/received_events",
31 | "type": "User",
32 | "site_admin": false
33 | },
34 | "body": "The group's Charter defines a custom Document License [1] the documents produced by this group should use. To that end, I updated the Editor's Draft as well as the FPWD snapshot in staging accordingly.\r\n\r\n@tidoust Pubrules checker naturally does not understand this custom Document License, so this needs to be checked manually.\r\n\r\n[1] http://www.w3.org/2014/secondscreen/charter.html#doclicense",
35 | "created_at": "2015-02-12T08:32:35Z",
36 | "updated_at": "2015-02-12T08:32:35Z",
37 | "closed_at": null,
38 | "merged_at": null,
39 | "merge_commit_sha": "fedbe24e805aa9d82aac56df032b2dc092d72f9d",
40 | "assignee": null,
41 | "milestone": null,
42 | "commits_url": "https://api.github.com/repos/w3c/presentation-api/pulls/54/commits",
43 | "review_comments_url": "https://api.github.com/repos/w3c/presentation-api/pulls/54/comments",
44 | "review_comment_url": "https://api.github.com/repos/w3c/presentation-api/pulls/comments/{number}",
45 | "comments_url": "https://api.github.com/repos/w3c/presentation-api/issues/54/comments",
46 | "statuses_url": "https://api.github.com/repos/w3c/presentation-api/statuses/27306ba8fdc8547562cbd23a1829aca53497cf5c",
47 | "head": {
48 | "label": "anssiko:pubrules",
49 | "ref": "pubrules",
50 | "sha": "27306ba8fdc8547562cbd23a1829aca53497cf5c",
51 | "user": {
52 | "login": "anssiko",
53 | "id": 765510,
54 | "avatar_url": "https://avatars.githubusercontent.com/u/765510?v=3",
55 | "gravatar_id": "",
56 | "url": "https://api.github.com/users/anssiko",
57 | "html_url": "https://github.com/anssiko",
58 | "followers_url": "https://api.github.com/users/anssiko/followers",
59 | "following_url": "https://api.github.com/users/anssiko/following{/other_user}",
60 | "gists_url": "https://api.github.com/users/anssiko/gists{/gist_id}",
61 | "starred_url": "https://api.github.com/users/anssiko/starred{/owner}{/repo}",
62 | "subscriptions_url": "https://api.github.com/users/anssiko/subscriptions",
63 | "organizations_url": "https://api.github.com/users/anssiko/orgs",
64 | "repos_url": "https://api.github.com/users/anssiko/repos",
65 | "events_url": "https://api.github.com/users/anssiko/events{/privacy}",
66 | "received_events_url": "https://api.github.com/users/anssiko/received_events",
67 | "type": "User",
68 | "site_admin": false
69 | },
70 | "repo": {
71 | "id": 26814239,
72 | "name": "presentation-api",
73 | "full_name": "anssiko/presentation-api",
74 | "owner": {
75 | "login": "anssiko",
76 | "id": 765510,
77 | "avatar_url": "https://avatars.githubusercontent.com/u/765510?v=3",
78 | "gravatar_id": "",
79 | "url": "https://api.github.com/users/anssiko",
80 | "html_url": "https://github.com/anssiko",
81 | "followers_url": "https://api.github.com/users/anssiko/followers",
82 | "following_url": "https://api.github.com/users/anssiko/following{/other_user}",
83 | "gists_url": "https://api.github.com/users/anssiko/gists{/gist_id}",
84 | "starred_url": "https://api.github.com/users/anssiko/starred{/owner}{/repo}",
85 | "subscriptions_url": "https://api.github.com/users/anssiko/subscriptions",
86 | "organizations_url": "https://api.github.com/users/anssiko/orgs",
87 | "repos_url": "https://api.github.com/users/anssiko/repos",
88 | "events_url": "https://api.github.com/users/anssiko/events{/privacy}",
89 | "received_events_url": "https://api.github.com/users/anssiko/received_events",
90 | "type": "User",
91 | "site_admin": false
92 | },
93 | "private": false,
94 | "html_url": "https://github.com/anssiko/presentation-api",
95 | "description": "Presentation API specification",
96 | "fork": true,
97 | "url": "https://api.github.com/repos/anssiko/presentation-api",
98 | "forks_url": "https://api.github.com/repos/anssiko/presentation-api/forks",
99 | "keys_url": "https://api.github.com/repos/anssiko/presentation-api/keys{/key_id}",
100 | "collaborators_url": "https://api.github.com/repos/anssiko/presentation-api/collaborators{/collaborator}",
101 | "teams_url": "https://api.github.com/repos/anssiko/presentation-api/teams",
102 | "hooks_url": "https://api.github.com/repos/anssiko/presentation-api/hooks",
103 | "issue_events_url": "https://api.github.com/repos/anssiko/presentation-api/issues/events{/number}",
104 | "events_url": "https://api.github.com/repos/anssiko/presentation-api/events",
105 | "assignees_url": "https://api.github.com/repos/anssiko/presentation-api/assignees{/user}",
106 | "branches_url": "https://api.github.com/repos/anssiko/presentation-api/branches{/branch}",
107 | "tags_url": "https://api.github.com/repos/anssiko/presentation-api/tags",
108 | "blobs_url": "https://api.github.com/repos/anssiko/presentation-api/git/blobs{/sha}",
109 | "git_tags_url": "https://api.github.com/repos/anssiko/presentation-api/git/tags{/sha}",
110 | "git_refs_url": "https://api.github.com/repos/anssiko/presentation-api/git/refs{/sha}",
111 | "trees_url": "https://api.github.com/repos/anssiko/presentation-api/git/trees{/sha}",
112 | "statuses_url": "https://api.github.com/repos/anssiko/presentation-api/statuses/{sha}",
113 | "languages_url": "https://api.github.com/repos/anssiko/presentation-api/languages",
114 | "stargazers_url": "https://api.github.com/repos/anssiko/presentation-api/stargazers",
115 | "contributors_url": "https://api.github.com/repos/anssiko/presentation-api/contributors",
116 | "subscribers_url": "https://api.github.com/repos/anssiko/presentation-api/subscribers",
117 | "subscription_url": "https://api.github.com/repos/anssiko/presentation-api/subscription",
118 | "commits_url": "https://api.github.com/repos/anssiko/presentation-api/commits{/sha}",
119 | "git_commits_url": "https://api.github.com/repos/anssiko/presentation-api/git/commits{/sha}",
120 | "comments_url": "https://api.github.com/repos/anssiko/presentation-api/comments{/number}",
121 | "issue_comment_url": "https://api.github.com/repos/anssiko/presentation-api/issues/comments/{number}",
122 | "contents_url": "https://api.github.com/repos/anssiko/presentation-api/contents/{+path}",
123 | "compare_url": "https://api.github.com/repos/anssiko/presentation-api/compare/{base}...{head}",
124 | "merges_url": "https://api.github.com/repos/anssiko/presentation-api/merges",
125 | "archive_url": "https://api.github.com/repos/anssiko/presentation-api/{archive_format}{/ref}",
126 | "downloads_url": "https://api.github.com/repos/anssiko/presentation-api/downloads",
127 | "issues_url": "https://api.github.com/repos/anssiko/presentation-api/issues{/number}",
128 | "pulls_url": "https://api.github.com/repos/anssiko/presentation-api/pulls{/number}",
129 | "milestones_url": "https://api.github.com/repos/anssiko/presentation-api/milestones{/number}",
130 | "notifications_url": "https://api.github.com/repos/anssiko/presentation-api/notifications{?since,all,participating}",
131 | "labels_url": "https://api.github.com/repos/anssiko/presentation-api/labels{/name}",
132 | "releases_url": "https://api.github.com/repos/anssiko/presentation-api/releases{/id}",
133 | "created_at": "2014-11-18T14:59:46Z",
134 | "updated_at": "2015-02-04T12:35:20Z",
135 | "pushed_at": "2015-02-12T08:24:48Z",
136 | "git_url": "git://github.com/anssiko/presentation-api.git",
137 | "ssh_url": "git@github.com:anssiko/presentation-api.git",
138 | "clone_url": "https://github.com/anssiko/presentation-api.git",
139 | "svn_url": "https://github.com/anssiko/presentation-api",
140 | "homepage": "http://w3c.github.io/presentation-api/",
141 | "size": 316,
142 | "stargazers_count": 0,
143 | "watchers_count": 0,
144 | "language": "Makefile",
145 | "has_issues": false,
146 | "has_downloads": true,
147 | "has_wiki": true,
148 | "has_pages": true,
149 | "forks_count": 0,
150 | "mirror_url": null,
151 | "open_issues_count": 0,
152 | "forks": 0,
153 | "open_issues": 0,
154 | "watchers": 0,
155 | "default_branch": "gh-pages"
156 | }
157 | },
158 | "base": {
159 | "label": "w3c:gh-pages",
160 | "ref": "gh-pages",
161 | "sha": "3ea2cdbe051e1a3b09ef128665b5f22c17947142",
162 | "user": {
163 | "login": "w3c",
164 | "id": 379216,
165 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
166 | "gravatar_id": "",
167 | "url": "https://api.github.com/users/w3c",
168 | "html_url": "https://github.com/w3c",
169 | "followers_url": "https://api.github.com/users/w3c/followers",
170 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
171 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
172 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
173 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
174 | "organizations_url": "https://api.github.com/users/w3c/orgs",
175 | "repos_url": "https://api.github.com/users/w3c/repos",
176 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
177 | "received_events_url": "https://api.github.com/users/w3c/received_events",
178 | "type": "Organization",
179 | "site_admin": false
180 | },
181 | "repo": {
182 | "id": 14138377,
183 | "name": "presentation-api",
184 | "full_name": "w3c/presentation-api",
185 | "owner": {
186 | "login": "w3c",
187 | "id": 379216,
188 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
189 | "gravatar_id": "",
190 | "url": "https://api.github.com/users/w3c",
191 | "html_url": "https://github.com/w3c",
192 | "followers_url": "https://api.github.com/users/w3c/followers",
193 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
194 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
195 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
196 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
197 | "organizations_url": "https://api.github.com/users/w3c/orgs",
198 | "repos_url": "https://api.github.com/users/w3c/repos",
199 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
200 | "received_events_url": "https://api.github.com/users/w3c/received_events",
201 | "type": "Organization",
202 | "site_admin": false
203 | },
204 | "private": false,
205 | "html_url": "https://github.com/w3c/presentation-api",
206 | "description": "Presentation API specification",
207 | "fork": false,
208 | "url": "https://api.github.com/repos/w3c/presentation-api",
209 | "forks_url": "https://api.github.com/repos/w3c/presentation-api/forks",
210 | "keys_url": "https://api.github.com/repos/w3c/presentation-api/keys{/key_id}",
211 | "collaborators_url": "https://api.github.com/repos/w3c/presentation-api/collaborators{/collaborator}",
212 | "teams_url": "https://api.github.com/repos/w3c/presentation-api/teams",
213 | "hooks_url": "https://api.github.com/repos/w3c/presentation-api/hooks",
214 | "issue_events_url": "https://api.github.com/repos/w3c/presentation-api/issues/events{/number}",
215 | "events_url": "https://api.github.com/repos/w3c/presentation-api/events",
216 | "assignees_url": "https://api.github.com/repos/w3c/presentation-api/assignees{/user}",
217 | "branches_url": "https://api.github.com/repos/w3c/presentation-api/branches{/branch}",
218 | "tags_url": "https://api.github.com/repos/w3c/presentation-api/tags",
219 | "blobs_url": "https://api.github.com/repos/w3c/presentation-api/git/blobs{/sha}",
220 | "git_tags_url": "https://api.github.com/repos/w3c/presentation-api/git/tags{/sha}",
221 | "git_refs_url": "https://api.github.com/repos/w3c/presentation-api/git/refs{/sha}",
222 | "trees_url": "https://api.github.com/repos/w3c/presentation-api/git/trees{/sha}",
223 | "statuses_url": "https://api.github.com/repos/w3c/presentation-api/statuses/{sha}",
224 | "languages_url": "https://api.github.com/repos/w3c/presentation-api/languages",
225 | "stargazers_url": "https://api.github.com/repos/w3c/presentation-api/stargazers",
226 | "contributors_url": "https://api.github.com/repos/w3c/presentation-api/contributors",
227 | "subscribers_url": "https://api.github.com/repos/w3c/presentation-api/subscribers",
228 | "subscription_url": "https://api.github.com/repos/w3c/presentation-api/subscription",
229 | "commits_url": "https://api.github.com/repos/w3c/presentation-api/commits{/sha}",
230 | "git_commits_url": "https://api.github.com/repos/w3c/presentation-api/git/commits{/sha}",
231 | "comments_url": "https://api.github.com/repos/w3c/presentation-api/comments{/number}",
232 | "issue_comment_url": "https://api.github.com/repos/w3c/presentation-api/issues/comments/{number}",
233 | "contents_url": "https://api.github.com/repos/w3c/presentation-api/contents/{+path}",
234 | "compare_url": "https://api.github.com/repos/w3c/presentation-api/compare/{base}...{head}",
235 | "merges_url": "https://api.github.com/repos/w3c/presentation-api/merges",
236 | "archive_url": "https://api.github.com/repos/w3c/presentation-api/{archive_format}{/ref}",
237 | "downloads_url": "https://api.github.com/repos/w3c/presentation-api/downloads",
238 | "issues_url": "https://api.github.com/repos/w3c/presentation-api/issues{/number}",
239 | "pulls_url": "https://api.github.com/repos/w3c/presentation-api/pulls{/number}",
240 | "milestones_url": "https://api.github.com/repos/w3c/presentation-api/milestones{/number}",
241 | "notifications_url": "https://api.github.com/repos/w3c/presentation-api/notifications{?since,all,participating}",
242 | "labels_url": "https://api.github.com/repos/w3c/presentation-api/labels{/name}",
243 | "releases_url": "https://api.github.com/repos/w3c/presentation-api/releases{/id}",
244 | "created_at": "2013-11-05T10:22:40Z",
245 | "updated_at": "2015-02-11T16:34:49Z",
246 | "pushed_at": "2015-02-11T16:34:49Z",
247 | "git_url": "git://github.com/w3c/presentation-api.git",
248 | "ssh_url": "git@github.com:w3c/presentation-api.git",
249 | "clone_url": "https://github.com/w3c/presentation-api.git",
250 | "svn_url": "https://github.com/w3c/presentation-api",
251 | "homepage": "http://w3c.github.io/presentation-api/",
252 | "size": 229770,
253 | "stargazers_count": 13,
254 | "watchers_count": 13,
255 | "language": "Makefile",
256 | "has_issues": true,
257 | "has_downloads": true,
258 | "has_wiki": true,
259 | "has_pages": true,
260 | "forks_count": 10,
261 | "mirror_url": null,
262 | "open_issues_count": 22,
263 | "forks": 10,
264 | "open_issues": 22,
265 | "watchers": 13,
266 | "default_branch": "gh-pages"
267 | }
268 | },
269 | "_links": {
270 | "self": {
271 | "href": "https://api.github.com/repos/w3c/presentation-api/pulls/54"
272 | },
273 | "html": {
274 | "href": "https://github.com/w3c/presentation-api/pull/54"
275 | },
276 | "issue": {
277 | "href": "https://api.github.com/repos/w3c/presentation-api/issues/54"
278 | },
279 | "comments": {
280 | "href": "https://api.github.com/repos/w3c/presentation-api/issues/54/comments"
281 | },
282 | "review_comments": {
283 | "href": "https://api.github.com/repos/w3c/presentation-api/pulls/54/comments"
284 | },
285 | "review_comment": {
286 | "href": "https://api.github.com/repos/w3c/presentation-api/pulls/comments/{number}"
287 | },
288 | "commits": {
289 | "href": "https://api.github.com/repos/w3c/presentation-api/pulls/54/commits"
290 | },
291 | "statuses": {
292 | "href": "https://api.github.com/repos/w3c/presentation-api/statuses/27306ba8fdc8547562cbd23a1829aca53497cf5c"
293 | }
294 | },
295 | "merged": false,
296 | "mergeable": true,
297 | "mergeable_state": "clean",
298 | "merged_by": null,
299 | "comments": 0,
300 | "review_comments": 0,
301 | "commits": 2,
302 | "additions": 56,
303 | "deletions": 26,
304 | "changed_files": 3
305 | },
306 | "repository": {
307 | "id": 14138377,
308 | "name": "presentation-api",
309 | "full_name": "w3c/presentation-api",
310 | "owner": {
311 | "login": "w3c",
312 | "id": 379216,
313 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
314 | "gravatar_id": "",
315 | "url": "https://api.github.com/users/w3c",
316 | "html_url": "https://github.com/w3c",
317 | "followers_url": "https://api.github.com/users/w3c/followers",
318 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
319 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
320 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
321 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
322 | "organizations_url": "https://api.github.com/users/w3c/orgs",
323 | "repos_url": "https://api.github.com/users/w3c/repos",
324 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
325 | "received_events_url": "https://api.github.com/users/w3c/received_events",
326 | "type": "Organization",
327 | "site_admin": false
328 | },
329 | "private": false,
330 | "html_url": "https://github.com/w3c/presentation-api",
331 | "description": "Presentation API specification",
332 | "fork": false,
333 | "url": "https://api.github.com/repos/w3c/presentation-api",
334 | "forks_url": "https://api.github.com/repos/w3c/presentation-api/forks",
335 | "keys_url": "https://api.github.com/repos/w3c/presentation-api/keys{/key_id}",
336 | "collaborators_url": "https://api.github.com/repos/w3c/presentation-api/collaborators{/collaborator}",
337 | "teams_url": "https://api.github.com/repos/w3c/presentation-api/teams",
338 | "hooks_url": "https://api.github.com/repos/w3c/presentation-api/hooks",
339 | "issue_events_url": "https://api.github.com/repos/w3c/presentation-api/issues/events{/number}",
340 | "events_url": "https://api.github.com/repos/w3c/presentation-api/events",
341 | "assignees_url": "https://api.github.com/repos/w3c/presentation-api/assignees{/user}",
342 | "branches_url": "https://api.github.com/repos/w3c/presentation-api/branches{/branch}",
343 | "tags_url": "https://api.github.com/repos/w3c/presentation-api/tags",
344 | "blobs_url": "https://api.github.com/repos/w3c/presentation-api/git/blobs{/sha}",
345 | "git_tags_url": "https://api.github.com/repos/w3c/presentation-api/git/tags{/sha}",
346 | "git_refs_url": "https://api.github.com/repos/w3c/presentation-api/git/refs{/sha}",
347 | "trees_url": "https://api.github.com/repos/w3c/presentation-api/git/trees{/sha}",
348 | "statuses_url": "https://api.github.com/repos/w3c/presentation-api/statuses/{sha}",
349 | "languages_url": "https://api.github.com/repos/w3c/presentation-api/languages",
350 | "stargazers_url": "https://api.github.com/repos/w3c/presentation-api/stargazers",
351 | "contributors_url": "https://api.github.com/repos/w3c/presentation-api/contributors",
352 | "subscribers_url": "https://api.github.com/repos/w3c/presentation-api/subscribers",
353 | "subscription_url": "https://api.github.com/repos/w3c/presentation-api/subscription",
354 | "commits_url": "https://api.github.com/repos/w3c/presentation-api/commits{/sha}",
355 | "git_commits_url": "https://api.github.com/repos/w3c/presentation-api/git/commits{/sha}",
356 | "comments_url": "https://api.github.com/repos/w3c/presentation-api/comments{/number}",
357 | "issue_comment_url": "https://api.github.com/repos/w3c/presentation-api/issues/comments/{number}",
358 | "contents_url": "https://api.github.com/repos/w3c/presentation-api/contents/{+path}",
359 | "compare_url": "https://api.github.com/repos/w3c/presentation-api/compare/{base}...{head}",
360 | "merges_url": "https://api.github.com/repos/w3c/presentation-api/merges",
361 | "archive_url": "https://api.github.com/repos/w3c/presentation-api/{archive_format}{/ref}",
362 | "downloads_url": "https://api.github.com/repos/w3c/presentation-api/downloads",
363 | "issues_url": "https://api.github.com/repos/w3c/presentation-api/issues{/number}",
364 | "pulls_url": "https://api.github.com/repos/w3c/presentation-api/pulls{/number}",
365 | "milestones_url": "https://api.github.com/repos/w3c/presentation-api/milestones{/number}",
366 | "notifications_url": "https://api.github.com/repos/w3c/presentation-api/notifications{?since,all,participating}",
367 | "labels_url": "https://api.github.com/repos/w3c/presentation-api/labels{/name}",
368 | "releases_url": "https://api.github.com/repos/w3c/presentation-api/releases{/id}",
369 | "created_at": "2013-11-05T10:22:40Z",
370 | "updated_at": "2015-02-11T16:34:49Z",
371 | "pushed_at": "2015-02-11T16:34:49Z",
372 | "git_url": "git://github.com/w3c/presentation-api.git",
373 | "ssh_url": "git@github.com:w3c/presentation-api.git",
374 | "clone_url": "https://github.com/w3c/presentation-api.git",
375 | "svn_url": "https://github.com/w3c/presentation-api",
376 | "homepage": "http://w3c.github.io/presentation-api/",
377 | "size": 229770,
378 | "stargazers_count": 13,
379 | "watchers_count": 13,
380 | "language": "Makefile",
381 | "has_issues": true,
382 | "has_downloads": true,
383 | "has_wiki": true,
384 | "has_pages": true,
385 | "forks_count": 10,
386 | "mirror_url": null,
387 | "open_issues_count": 22,
388 | "forks": 10,
389 | "open_issues": 22,
390 | "watchers": 13,
391 | "default_branch": "gh-pages"
392 | },
393 | "organization": {
394 | "login": "w3c",
395 | "id": 379216,
396 | "url": "https://api.github.com/orgs/w3c",
397 | "repos_url": "https://api.github.com/orgs/w3c/repos",
398 | "events_url": "https://api.github.com/orgs/w3c/events",
399 | "members_url": "https://api.github.com/orgs/w3c/members{/member}",
400 | "public_members_url": "https://api.github.com/orgs/w3c/public_members{/member}",
401 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
402 | "description": "The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web."
403 | },
404 | "sender": {
405 | "login": "anssiko",
406 | "id": 765510,
407 | "avatar_url": "https://avatars.githubusercontent.com/u/765510?v=3",
408 | "gravatar_id": "",
409 | "url": "https://api.github.com/users/anssiko",
410 | "html_url": "https://github.com/anssiko",
411 | "followers_url": "https://api.github.com/users/anssiko/followers",
412 | "following_url": "https://api.github.com/users/anssiko/following{/other_user}",
413 | "gists_url": "https://api.github.com/users/anssiko/gists{/gist_id}",
414 | "starred_url": "https://api.github.com/users/anssiko/starred{/owner}{/repo}",
415 | "subscriptions_url": "https://api.github.com/users/anssiko/subscriptions",
416 | "organizations_url": "https://api.github.com/users/anssiko/orgs",
417 | "repos_url": "https://api.github.com/users/anssiko/repos",
418 | "events_url": "https://api.github.com/users/anssiko/events{/privacy}",
419 | "received_events_url": "https://api.github.com/users/anssiko/received_events",
420 | "type": "User",
421 | "site_admin": false
422 | }
423 | }
--------------------------------------------------------------------------------
/tests/pull-notif.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: Anssi Kostiainen via GitHub
5 | To: dom@localhost
6 | Subject: [presentation-api] Pull Request: Use the custom W3C Document License defined
7 | in the Charter
8 | Message-ID:
9 |
10 | anssiko has just submitted a new pull request for https://github.com/w3c/presentation-api:
11 |
12 |
13 | == Use the custom W3C Document License defined in the Charter ==
14 | The group's Charter defines a custom Document License [1] the documents produced by this group should use. To that end, I updated the Editor's Draft as well as the FPWD snapshot in staging accordingly.
15 |
16 |
17 | @tidoust Pubrules checker naturally does not understand this custom Document License, so this needs to be checked manually.
18 |
19 |
20 | [1] http://www.w3.org/2014/secondscreen/charter.html#doclicense
21 |
22 |
23 | See https://github.com/w3c/presentation-api/pull/54
24 |
--------------------------------------------------------------------------------
/tests/pull_request-comment-notif.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "created",
3 | "issue": {
4 | "url": "https://api.github.com/repos/w3c/mediacapture-main/issues/150",
5 | "labels_url": "https://api.github.com/repos/w3c/mediacapture-main/issues/150/labels{/name}",
6 | "comments_url": "https://api.github.com/repos/w3c/mediacapture-main/issues/150/comments",
7 | "events_url": "https://api.github.com/repos/w3c/mediacapture-main/issues/150/events",
8 | "html_url": "https://github.com/w3c/mediacapture-main/pull/150",
9 | "id": 63087057,
10 | "number": 150,
11 | "title": "Update text for how constraint dictionaries get extended ",
12 | "user": {
13 | "login": "fluffy",
14 | "id": 217200,
15 | "avatar_url": "https://avatars.githubusercontent.com/u/217200?v=3",
16 | "gravatar_id": "",
17 | "url": "https://api.github.com/users/fluffy",
18 | "html_url": "https://github.com/fluffy",
19 | "followers_url": "https://api.github.com/users/fluffy/followers",
20 | "following_url": "https://api.github.com/users/fluffy/following{/other_user}",
21 | "gists_url": "https://api.github.com/users/fluffy/gists{/gist_id}",
22 | "starred_url": "https://api.github.com/users/fluffy/starred{/owner}{/repo}",
23 | "subscriptions_url": "https://api.github.com/users/fluffy/subscriptions",
24 | "organizations_url": "https://api.github.com/users/fluffy/orgs",
25 | "repos_url": "https://api.github.com/users/fluffy/repos",
26 | "events_url": "https://api.github.com/users/fluffy/events{/privacy}",
27 | "received_events_url": "https://api.github.com/users/fluffy/received_events",
28 | "type": "User",
29 | "site_admin": false
30 | },
31 | "labels": [
32 |
33 | ],
34 | "state": "open",
35 | "locked": false,
36 | "assignee": null,
37 | "milestone": null,
38 | "comments": 1,
39 | "created_at": "2015-03-19T20:42:07Z",
40 | "updated_at": "2015-03-20T06:34:29Z",
41 | "closed_at": null,
42 | "pull_request": {
43 | "url": "https://api.github.com/repos/w3c/mediacapture-main/pulls/150",
44 | "html_url": "https://github.com/w3c/mediacapture-main/pull/150",
45 | "diff_url": "https://github.com/w3c/mediacapture-main/pull/150.diff",
46 | "patch_url": "https://github.com/w3c/mediacapture-main/pull/150.patch"
47 | },
48 | "body": ""
49 | },
50 | "comment": {
51 | "url": "https://api.github.com/repos/w3c/mediacapture-main/issues/comments/83934826",
52 | "html_url": "https://github.com/w3c/mediacapture-main/pull/150#issuecomment-83934826",
53 | "issue_url": "https://api.github.com/repos/w3c/mediacapture-main/issues/150",
54 | "id": 83934826,
55 | "user": {
56 | "login": "stefhak",
57 | "id": 1180334,
58 | "avatar_url": "https://avatars.githubusercontent.com/u/1180334?v=3",
59 | "gravatar_id": "",
60 | "url": "https://api.github.com/users/stefhak",
61 | "html_url": "https://github.com/stefhak",
62 | "followers_url": "https://api.github.com/users/stefhak/followers",
63 | "following_url": "https://api.github.com/users/stefhak/following{/other_user}",
64 | "gists_url": "https://api.github.com/users/stefhak/gists{/gist_id}",
65 | "starred_url": "https://api.github.com/users/stefhak/starred{/owner}{/repo}",
66 | "subscriptions_url": "https://api.github.com/users/stefhak/subscriptions",
67 | "organizations_url": "https://api.github.com/users/stefhak/orgs",
68 | "repos_url": "https://api.github.com/users/stefhak/repos",
69 | "events_url": "https://api.github.com/users/stefhak/events{/privacy}",
70 | "received_events_url": "https://api.github.com/users/stefhak/received_events",
71 | "type": "User",
72 | "site_admin": false
73 | },
74 | "created_at": "2015-03-20T06:34:28Z",
75 | "updated_at": "2015-03-20T06:34:28Z",
76 | "body": "I made a couple of minor comments, but overall this LGTM."
77 | },
78 | "repository": {
79 | "id": 23146519,
80 | "name": "mediacapture-main",
81 | "full_name": "w3c/mediacapture-main",
82 | "owner": {
83 | "login": "w3c",
84 | "id": 379216,
85 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
86 | "gravatar_id": "",
87 | "url": "https://api.github.com/users/w3c",
88 | "html_url": "https://github.com/w3c",
89 | "followers_url": "https://api.github.com/users/w3c/followers",
90 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
91 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
92 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
93 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
94 | "organizations_url": "https://api.github.com/users/w3c/orgs",
95 | "repos_url": "https://api.github.com/users/w3c/repos",
96 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
97 | "received_events_url": "https://api.github.com/users/w3c/received_events",
98 | "type": "Organization",
99 | "site_admin": false
100 | },
101 | "private": false,
102 | "html_url": "https://github.com/w3c/mediacapture-main",
103 | "description": "Media Capture and Streams specification (aka getUserMedia)",
104 | "fork": false,
105 | "url": "https://api.github.com/repos/w3c/mediacapture-main",
106 | "forks_url": "https://api.github.com/repos/w3c/mediacapture-main/forks",
107 | "keys_url": "https://api.github.com/repos/w3c/mediacapture-main/keys{/key_id}",
108 | "collaborators_url": "https://api.github.com/repos/w3c/mediacapture-main/collaborators{/collaborator}",
109 | "teams_url": "https://api.github.com/repos/w3c/mediacapture-main/teams",
110 | "hooks_url": "https://api.github.com/repos/w3c/mediacapture-main/hooks",
111 | "issue_events_url": "https://api.github.com/repos/w3c/mediacapture-main/issues/events{/number}",
112 | "events_url": "https://api.github.com/repos/w3c/mediacapture-main/events",
113 | "assignees_url": "https://api.github.com/repos/w3c/mediacapture-main/assignees{/user}",
114 | "branches_url": "https://api.github.com/repos/w3c/mediacapture-main/branches{/branch}",
115 | "tags_url": "https://api.github.com/repos/w3c/mediacapture-main/tags",
116 | "blobs_url": "https://api.github.com/repos/w3c/mediacapture-main/git/blobs{/sha}",
117 | "git_tags_url": "https://api.github.com/repos/w3c/mediacapture-main/git/tags{/sha}",
118 | "git_refs_url": "https://api.github.com/repos/w3c/mediacapture-main/git/refs{/sha}",
119 | "trees_url": "https://api.github.com/repos/w3c/mediacapture-main/git/trees{/sha}",
120 | "statuses_url": "https://api.github.com/repos/w3c/mediacapture-main/statuses/{sha}",
121 | "languages_url": "https://api.github.com/repos/w3c/mediacapture-main/languages",
122 | "stargazers_url": "https://api.github.com/repos/w3c/mediacapture-main/stargazers",
123 | "contributors_url": "https://api.github.com/repos/w3c/mediacapture-main/contributors",
124 | "subscribers_url": "https://api.github.com/repos/w3c/mediacapture-main/subscribers",
125 | "subscription_url": "https://api.github.com/repos/w3c/mediacapture-main/subscription",
126 | "commits_url": "https://api.github.com/repos/w3c/mediacapture-main/commits{/sha}",
127 | "git_commits_url": "https://api.github.com/repos/w3c/mediacapture-main/git/commits{/sha}",
128 | "comments_url": "https://api.github.com/repos/w3c/mediacapture-main/comments{/number}",
129 | "issue_comment_url": "https://api.github.com/repos/w3c/mediacapture-main/issues/comments{/number}",
130 | "contents_url": "https://api.github.com/repos/w3c/mediacapture-main/contents/{+path}",
131 | "compare_url": "https://api.github.com/repos/w3c/mediacapture-main/compare/{base}...{head}",
132 | "merges_url": "https://api.github.com/repos/w3c/mediacapture-main/merges",
133 | "archive_url": "https://api.github.com/repos/w3c/mediacapture-main/{archive_format}{/ref}",
134 | "downloads_url": "https://api.github.com/repos/w3c/mediacapture-main/downloads",
135 | "issues_url": "https://api.github.com/repos/w3c/mediacapture-main/issues{/number}",
136 | "pulls_url": "https://api.github.com/repos/w3c/mediacapture-main/pulls{/number}",
137 | "milestones_url": "https://api.github.com/repos/w3c/mediacapture-main/milestones{/number}",
138 | "notifications_url": "https://api.github.com/repos/w3c/mediacapture-main/notifications{?since,all,participating}",
139 | "labels_url": "https://api.github.com/repos/w3c/mediacapture-main/labels{/name}",
140 | "releases_url": "https://api.github.com/repos/w3c/mediacapture-main/releases{/id}",
141 | "created_at": "2014-08-20T11:37:16Z",
142 | "updated_at": "2015-03-19T14:41:47Z",
143 | "pushed_at": "2015-03-19T20:42:07Z",
144 | "git_url": "git://github.com/w3c/mediacapture-main.git",
145 | "ssh_url": "git@github.com:w3c/mediacapture-main.git",
146 | "clone_url": "https://github.com/w3c/mediacapture-main.git",
147 | "svn_url": "https://github.com/w3c/mediacapture-main",
148 | "homepage": null,
149 | "size": 16034,
150 | "stargazers_count": 8,
151 | "watchers_count": 8,
152 | "language": "HTML",
153 | "has_issues": true,
154 | "has_downloads": true,
155 | "has_wiki": true,
156 | "has_pages": true,
157 | "forks_count": 9,
158 | "mirror_url": null,
159 | "open_issues_count": 4,
160 | "forks": 9,
161 | "open_issues": 4,
162 | "watchers": 8,
163 | "default_branch": "master"
164 | },
165 | "organization": {
166 | "login": "w3c",
167 | "id": 379216,
168 | "url": "https://api.github.com/orgs/w3c",
169 | "repos_url": "https://api.github.com/orgs/w3c/repos",
170 | "events_url": "https://api.github.com/orgs/w3c/events",
171 | "members_url": "https://api.github.com/orgs/w3c/members{/member}",
172 | "public_members_url": "https://api.github.com/orgs/w3c/public_members{/member}",
173 | "avatar_url": "https://avatars.githubusercontent.com/u/379216?v=3",
174 | "description": "The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web."
175 | },
176 | "sender": {
177 | "login": "stefhak",
178 | "id": 1180334,
179 | "avatar_url": "https://avatars.githubusercontent.com/u/1180334?v=3",
180 | "gravatar_id": "",
181 | "url": "https://api.github.com/users/stefhak",
182 | "html_url": "https://github.com/stefhak",
183 | "followers_url": "https://api.github.com/users/stefhak/followers",
184 | "following_url": "https://api.github.com/users/stefhak/following{/other_user}",
185 | "gists_url": "https://api.github.com/users/stefhak/gists{/gist_id}",
186 | "starred_url": "https://api.github.com/users/stefhak/starred{/owner}{/repo}",
187 | "subscriptions_url": "https://api.github.com/users/stefhak/subscriptions",
188 | "organizations_url": "https://api.github.com/users/stefhak/orgs",
189 | "repos_url": "https://api.github.com/users/stefhak/repos",
190 | "events_url": "https://api.github.com/users/stefhak/events{/privacy}",
191 | "received_events_url": "https://api.github.com/users/stefhak/received_events",
192 | "type": "User",
193 | "site_admin": false
194 | }
195 | }
196 |
--------------------------------------------------------------------------------
/tests/pull_request-comment-notif.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: Stefan Hakansson via GitHub
5 | To: dom@localhost
6 | Subject: Re: [mediacapture-main] Update text for how constraint dictionaries get
7 | extended
8 | Message-ID:
9 | In-Reply-To:
10 |
11 | I made a couple of minor comments, but overall this LGTM.
12 |
13 |
14 | --
15 | GitHub Notif of comment by stefhak
16 | See https://github.com/w3c/mediacapture-main/pull/150#issuecomment-83934826
17 | Special template!
--------------------------------------------------------------------------------
/tests/push-notif.json:
--------------------------------------------------------------------------------
1 | {
2 | "ref": "refs/heads/master",
3 | "before": "e4961a375d2ba3a7ecb777f55571bf6e42ff6e2b",
4 | "after": "d3cb75fab91fd7dec6cd8fff69063405d31c505b",
5 | "created": false,
6 | "deleted": false,
7 | "forced": false,
8 | "base_ref": null,
9 | "compare": "https://github.com/dontcallmedom/github-notify-ml/compare/e4961a375d2b...d3cb75fab91f",
10 | "commits": [
11 | {
12 | "id": "d3cb75fab91fd7dec6cd8fff69063405d31c505b",
13 | "distinct": true,
14 | "message": "basic template for pushes",
15 | "timestamp": "2014-10-08T17:56:10+02:00",
16 | "url": "https://github.com/dontcallmedom/github-notify-ml/commit/d3cb75fab91fd7dec6cd8fff69063405d31c505b",
17 | "author": {
18 | "name": "Dominique Hazael-Massieux",
19 | "email": "dom@w3.org",
20 | "username": "dontcallmedom"
21 | },
22 | "committer": {
23 | "name": "Dominique Hazael-Massieux",
24 | "email": "dom@w3.org",
25 | "username": "dontcallmedom"
26 | },
27 | "added": [
28 | "templates/generic/push"
29 | ],
30 | "removed": [
31 |
32 | ],
33 | "modified": [
34 |
35 | ]
36 | }
37 | ],
38 | "head_commit": {
39 | "id": "d3cb75fab91fd7dec6cd8fff69063405d31c505b",
40 | "distinct": true,
41 | "message": "basic template for pushes",
42 | "timestamp": "2014-10-08T17:56:10+02:00",
43 | "url": "https://github.com/dontcallmedom/github-notify-ml/commit/d3cb75fab91fd7dec6cd8fff69063405d31c505b",
44 | "author": {
45 | "name": "Dominique Hazael-Massieux",
46 | "email": "dom@w3.org",
47 | "username": "dontcallmedom"
48 | },
49 | "committer": {
50 | "name": "Dominique Hazael-Massieux",
51 | "email": "dom@w3.org",
52 | "username": "dontcallmedom"
53 | },
54 | "added": [
55 | "templates/generic/push"
56 | ],
57 | "removed": [
58 |
59 | ],
60 | "modified": [
61 |
62 | ]
63 | },
64 | "repository": {
65 | "id": 24946939,
66 | "name": "github-notify-ml",
67 | "full_name": "dontcallmedom/github-notify-ml",
68 | "owner": {
69 | "name": "dontcallmedom",
70 | "email": "dom@w3.org"
71 | },
72 | "private": false,
73 | "html_url": "https://github.com/dontcallmedom/github-notify-ml",
74 | "description": "",
75 | "fork": false,
76 | "url": "https://github.com/dontcallmedom/github-notify-ml",
77 | "forks_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/forks",
78 | "keys_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/keys{/key_id}",
79 | "collaborators_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/collaborators{/collaborator}",
80 | "teams_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/teams",
81 | "hooks_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/hooks",
82 | "issue_events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/events{/number}",
83 | "events_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/events",
84 | "assignees_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/assignees{/user}",
85 | "branches_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/branches{/branch}",
86 | "tags_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/tags",
87 | "blobs_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/blobs{/sha}",
88 | "git_tags_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/tags{/sha}",
89 | "git_refs_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/refs{/sha}",
90 | "trees_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/trees{/sha}",
91 | "statuses_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/statuses/{sha}",
92 | "languages_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/languages",
93 | "stargazers_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/stargazers",
94 | "contributors_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/contributors",
95 | "subscribers_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/subscribers",
96 | "subscription_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/subscription",
97 | "commits_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/commits{/sha}",
98 | "git_commits_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/git/commits{/sha}",
99 | "comments_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/comments{/number}",
100 | "issue_comment_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues/comments/{number}",
101 | "contents_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/contents/{+path}",
102 | "compare_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/compare/{base}...{head}",
103 | "merges_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/merges",
104 | "archive_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/{archive_format}{/ref}",
105 | "downloads_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/downloads",
106 | "issues_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/issues{/number}",
107 | "pulls_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/pulls{/number}",
108 | "milestones_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/milestones{/number}",
109 | "notifications_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/notifications{?since,all,participating}",
110 | "labels_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/labels{/name}",
111 | "releases_url": "https://api.github.com/repos/dontcallmedom/github-notify-ml/releases{/id}",
112 | "created_at": 1412781937,
113 | "updated_at": "2014-10-08T15:26:13Z",
114 | "pushed_at": 1412783833,
115 | "git_url": "git://github.com/dontcallmedom/github-notify-ml.git",
116 | "ssh_url": "git@github.com:dontcallmedom/github-notify-ml.git",
117 | "clone_url": "https://github.com/dontcallmedom/github-notify-ml.git",
118 | "svn_url": "https://github.com/dontcallmedom/github-notify-ml",
119 | "homepage": null,
120 | "size": 0,
121 | "stargazers_count": 0,
122 | "watchers_count": 0,
123 | "language": "Python",
124 | "has_issues": true,
125 | "has_downloads": true,
126 | "has_wiki": true,
127 | "has_pages": false,
128 | "forks_count": 0,
129 | "mirror_url": null,
130 | "open_issues_count": 0,
131 | "forks": 0,
132 | "open_issues": 0,
133 | "watchers": 0,
134 | "default_branch": "master",
135 | "stargazers": 0,
136 | "master_branch": "master"
137 | },
138 | "pusher": {
139 | "name": "dontcallmedom",
140 | "email": "dom@w3.org"
141 | },
142 | "sender": {
143 | "login": "dontcallmedom",
144 | "id": 216410,
145 | "avatar_url": "https://avatars.githubusercontent.com/u/216410?v=2",
146 | "gravatar_id": "",
147 | "url": "https://api.github.com/users/dontcallmedom",
148 | "html_url": "https://github.com/dontcallmedom",
149 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
150 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
151 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
152 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
153 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
154 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
155 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
156 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
157 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
158 | "type": "User",
159 | "site_admin": false
160 | }
161 | }
--------------------------------------------------------------------------------
/tests/push-notif.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: =?utf-8?q?Dominique_Haza=C3=ABl-Massieux_via_GitHub?=
5 | To: dom@localhost
6 | Subject: [github-notify-ml] new commits pushed by dontcallmedom
7 | Message-ID:
8 |
9 |
10 | Per ml template!
11 |
12 | The following commits were just pushed by dontcallmedom to https://github.com/dontcallmedom/github-notify-ml:
13 |
14 |
15 | * basic template for pushes
16 | by Dominique Hazael-Massieux
17 | https://github.com/dontcallmedom/github-notify-ml/commit/d3cb75fab91fd7dec6cd8fff69063405d31c505b
18 |
19 |
20 |
--------------------------------------------------------------------------------
/tests/rec-repos.json:
--------------------------------------------------------------------------------
1 | ["w3c/webcrypto"]
2 |
--------------------------------------------------------------------------------
/tests/repo-created.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "created",
3 | "repository": {
4 | "id": 135493233,
5 | "node_id": "MDEwOlJlcG9zaXRvcnkxMzU0OTMyMzM=",
6 | "name": "Hello-World",
7 | "full_name": "Codertocat/Hello-World",
8 | "owner": {
9 | "login": "Codertocat",
10 | "id": 21031067,
11 | "node_id": "MDQ6VXNlcjIxMDMxMDY3",
12 | "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
13 | "gravatar_id": "",
14 | "url": "https://api.github.com/users/Codertocat",
15 | "html_url": "https://github.com/Codertocat",
16 | "followers_url": "https://api.github.com/users/Codertocat/followers",
17 | "following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
18 | "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
19 | "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
20 | "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
21 | "organizations_url": "https://api.github.com/users/Codertocat/orgs",
22 | "repos_url": "https://api.github.com/users/Codertocat/repos",
23 | "events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
24 | "received_events_url": "https://api.github.com/users/Codertocat/received_events",
25 | "type": "User",
26 | "site_admin": false
27 | },
28 | "private": false,
29 | "html_url": "https://github.com/Codertocat/Hello-World",
30 | "description": null,
31 | "fork": false,
32 | "url": "https://api.github.com/repos/Codertocat/Hello-World",
33 | "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks",
34 | "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}",
35 | "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}",
36 | "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams",
37 | "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks",
38 | "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}",
39 | "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events",
40 | "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}",
41 | "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}",
42 | "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags",
43 | "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}",
44 | "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}",
45 | "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}",
46 | "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}",
47 | "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}",
48 | "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages",
49 | "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers",
50 | "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors",
51 | "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers",
52 | "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription",
53 | "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}",
54 | "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}",
55 | "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}",
56 | "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}",
57 | "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}",
58 | "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}",
59 | "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges",
60 | "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}",
61 | "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads",
62 | "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}",
63 | "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}",
64 | "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}",
65 | "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}",
66 | "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}",
67 | "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}",
68 | "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments",
69 | "created_at": "2018-05-30T20:18:04Z",
70 | "updated_at": "2018-05-30T20:18:49Z",
71 | "pushed_at": "2018-05-30T20:18:48Z",
72 | "git_url": "git://github.com/Codertocat/Hello-World.git",
73 | "ssh_url": "git@github.com:Codertocat/Hello-World.git",
74 | "clone_url": "https://github.com/Codertocat/Hello-World.git",
75 | "svn_url": "https://github.com/Codertocat/Hello-World",
76 | "homepage": null,
77 | "size": 0,
78 | "stargazers_count": 0,
79 | "watchers_count": 0,
80 | "language": null,
81 | "has_issues": true,
82 | "has_projects": true,
83 | "has_downloads": true,
84 | "has_wiki": true,
85 | "has_pages": true,
86 | "forks_count": 0,
87 | "mirror_url": null,
88 | "archived": false,
89 | "open_issues_count": 2,
90 | "license": null,
91 | "forks": 0,
92 | "open_issues": 2,
93 | "watchers": 0,
94 | "default_branch": "master"
95 | },
96 | "sender": {
97 | "login": "Codertocat",
98 | "id": 21031067,
99 | "node_id": "MDQ6VXNlcjIxMDMxMDY3",
100 | "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
101 | "gravatar_id": "",
102 | "url": "https://api.github.com/users/Codertocat",
103 | "html_url": "https://github.com/Codertocat",
104 | "followers_url": "https://api.github.com/users/Codertocat/followers",
105 | "following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
106 | "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
107 | "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
108 | "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
109 | "organizations_url": "https://api.github.com/users/Codertocat/orgs",
110 | "repos_url": "https://api.github.com/users/Codertocat/repos",
111 | "events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
112 | "received_events_url": "https://api.github.com/users/Codertocat/received_events",
113 | "type": "User",
114 | "site_admin": false
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/tests/repo-created.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: Codertocat via GitHub
5 | To: dom@localhost
6 | Subject: Codertocat/Hello-World created by Codertocat
7 | Message-ID:
8 |
9 | Codertocat has just created a new repository: Codertocat/Hello-World
--------------------------------------------------------------------------------
/tests/repo-deleted.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "deleted",
3 | "repository": {
4 | "id": 135493233,
5 | "node_id": "MDEwOlJlcG9zaXRvcnkxMzU0OTMyMzM=",
6 | "name": "Hello-World",
7 | "full_name": "Codertocat/Hello-World",
8 | "owner": {
9 | "login": "Codertocat",
10 | "id": 21031067,
11 | "node_id": "MDQ6VXNlcjIxMDMxMDY3",
12 | "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
13 | "gravatar_id": "",
14 | "url": "https://api.github.com/users/Codertocat",
15 | "html_url": "https://github.com/Codertocat",
16 | "followers_url": "https://api.github.com/users/Codertocat/followers",
17 | "following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
18 | "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
19 | "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
20 | "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
21 | "organizations_url": "https://api.github.com/users/Codertocat/orgs",
22 | "repos_url": "https://api.github.com/users/Codertocat/repos",
23 | "events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
24 | "received_events_url": "https://api.github.com/users/Codertocat/received_events",
25 | "type": "User",
26 | "site_admin": false
27 | },
28 | "private": false,
29 | "html_url": "https://github.com/Codertocat/Hello-World",
30 | "description": null,
31 | "fork": false,
32 | "url": "https://api.github.com/repos/Codertocat/Hello-World",
33 | "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks",
34 | "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}",
35 | "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}",
36 | "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams",
37 | "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks",
38 | "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}",
39 | "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events",
40 | "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}",
41 | "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}",
42 | "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags",
43 | "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}",
44 | "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}",
45 | "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}",
46 | "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}",
47 | "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}",
48 | "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages",
49 | "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers",
50 | "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors",
51 | "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers",
52 | "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription",
53 | "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}",
54 | "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}",
55 | "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}",
56 | "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}",
57 | "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}",
58 | "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}",
59 | "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges",
60 | "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}",
61 | "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads",
62 | "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}",
63 | "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}",
64 | "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}",
65 | "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}",
66 | "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}",
67 | "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}",
68 | "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments",
69 | "created_at": "2018-05-30T20:18:04Z",
70 | "updated_at": "2018-05-30T20:18:49Z",
71 | "pushed_at": "2018-05-30T20:18:48Z",
72 | "git_url": "git://github.com/Codertocat/Hello-World.git",
73 | "ssh_url": "git@github.com:Codertocat/Hello-World.git",
74 | "clone_url": "https://github.com/Codertocat/Hello-World.git",
75 | "svn_url": "https://github.com/Codertocat/Hello-World",
76 | "homepage": null,
77 | "size": 0,
78 | "stargazers_count": 0,
79 | "watchers_count": 0,
80 | "language": null,
81 | "has_issues": true,
82 | "has_projects": true,
83 | "has_downloads": true,
84 | "has_wiki": true,
85 | "has_pages": true,
86 | "forks_count": 0,
87 | "mirror_url": null,
88 | "archived": false,
89 | "open_issues_count": 2,
90 | "license": null,
91 | "forks": 0,
92 | "open_issues": 2,
93 | "watchers": 0,
94 | "default_branch": "master"
95 | },
96 | "sender": {
97 | "login": "Codertocat",
98 | "id": 21031067,
99 | "node_id": "MDQ6VXNlcjIxMDMxMDY3",
100 | "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
101 | "gravatar_id": "",
102 | "url": "https://api.github.com/users/Codertocat",
103 | "html_url": "https://github.com/Codertocat",
104 | "followers_url": "https://api.github.com/users/Codertocat/followers",
105 | "following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
106 | "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
107 | "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
108 | "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
109 | "organizations_url": "https://api.github.com/users/Codertocat/orgs",
110 | "repos_url": "https://api.github.com/users/Codertocat/repos",
111 | "events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
112 | "received_events_url": "https://api.github.com/users/Codertocat/received_events",
113 | "type": "User",
114 | "site_admin": false
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/tests/repo-deleted.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: Codertocat via GitHub
5 | To: dom@localhost
6 | Subject: Codertocat/Hello-World deleted by Codertocat
7 | Message-ID:
8 |
9 | Codertocat has just deleted the repository Codertocat/Hello-World
--------------------------------------------------------------------------------
/tests/repo-transferred.json:
--------------------------------------------------------------------------------
1 | {
2 | "action": "transferred",
3 | "changes": {
4 | "owner": {
5 | "from": {
6 | "user": {
7 | "login": "dontcallmedom",
8 | "id": 216410,
9 | "node_id": "MDQ6VXNlcjIxNjQxMA==",
10 | "avatar_url": "https://avatars0.githubusercontent.com/u/216410?v=4",
11 | "gravatar_id": "",
12 | "url": "https://api.github.com/users/dontcallmedom",
13 | "html_url": "https://github.com/dontcallmedom",
14 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
15 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
16 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
17 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
18 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
19 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
20 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
21 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
22 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
23 | "type": "User",
24 | "site_admin": false
25 | }
26 | }
27 | }
28 | },
29 | "repository": {
30 | "id": 267321549,
31 | "node_id": "MDEwOlJlcG9zaXRvcnkyNjczMjE1NDk=",
32 | "name": "test-repo-transfer",
33 | "full_name": "w3c/test-repo-transfer",
34 | "private": false,
35 | "owner": {
36 | "login": "w3c",
37 | "id": 379216,
38 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjM3OTIxNg==",
39 | "avatar_url": "https://avatars2.githubusercontent.com/u/379216?v=4",
40 | "gravatar_id": "",
41 | "url": "https://api.github.com/users/w3c",
42 | "html_url": "https://github.com/w3c",
43 | "followers_url": "https://api.github.com/users/w3c/followers",
44 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
45 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
46 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
47 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
48 | "organizations_url": "https://api.github.com/users/w3c/orgs",
49 | "repos_url": "https://api.github.com/users/w3c/repos",
50 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
51 | "received_events_url": "https://api.github.com/users/w3c/received_events",
52 | "type": "Organization",
53 | "site_admin": false
54 | },
55 | "html_url": "https://github.com/w3c/test-repo-transfer",
56 | "description": "IGNOREME",
57 | "fork": false,
58 | "url": "https://api.github.com/repos/w3c/test-repo-transfer",
59 | "forks_url": "https://api.github.com/repos/w3c/test-repo-transfer/forks",
60 | "keys_url": "https://api.github.com/repos/w3c/test-repo-transfer/keys{/key_id}",
61 | "collaborators_url": "https://api.github.com/repos/w3c/test-repo-transfer/collaborators{/collaborator}",
62 | "teams_url": "https://api.github.com/repos/w3c/test-repo-transfer/teams",
63 | "hooks_url": "https://api.github.com/repos/w3c/test-repo-transfer/hooks",
64 | "issue_events_url": "https://api.github.com/repos/w3c/test-repo-transfer/issues/events{/number}",
65 | "events_url": "https://api.github.com/repos/w3c/test-repo-transfer/events",
66 | "assignees_url": "https://api.github.com/repos/w3c/test-repo-transfer/assignees{/user}",
67 | "branches_url": "https://api.github.com/repos/w3c/test-repo-transfer/branches{/branch}",
68 | "tags_url": "https://api.github.com/repos/w3c/test-repo-transfer/tags",
69 | "blobs_url": "https://api.github.com/repos/w3c/test-repo-transfer/git/blobs{/sha}",
70 | "git_tags_url": "https://api.github.com/repos/w3c/test-repo-transfer/git/tags{/sha}",
71 | "git_refs_url": "https://api.github.com/repos/w3c/test-repo-transfer/git/refs{/sha}",
72 | "trees_url": "https://api.github.com/repos/w3c/test-repo-transfer/git/trees{/sha}",
73 | "statuses_url": "https://api.github.com/repos/w3c/test-repo-transfer/statuses/{sha}",
74 | "languages_url": "https://api.github.com/repos/w3c/test-repo-transfer/languages",
75 | "stargazers_url": "https://api.github.com/repos/w3c/test-repo-transfer/stargazers",
76 | "contributors_url": "https://api.github.com/repos/w3c/test-repo-transfer/contributors",
77 | "subscribers_url": "https://api.github.com/repos/w3c/test-repo-transfer/subscribers",
78 | "subscription_url": "https://api.github.com/repos/w3c/test-repo-transfer/subscription",
79 | "commits_url": "https://api.github.com/repos/w3c/test-repo-transfer/commits{/sha}",
80 | "git_commits_url": "https://api.github.com/repos/w3c/test-repo-transfer/git/commits{/sha}",
81 | "comments_url": "https://api.github.com/repos/w3c/test-repo-transfer/comments{/number}",
82 | "issue_comment_url": "https://api.github.com/repos/w3c/test-repo-transfer/issues/comments{/number}",
83 | "contents_url": "https://api.github.com/repos/w3c/test-repo-transfer/contents/{+path}",
84 | "compare_url": "https://api.github.com/repos/w3c/test-repo-transfer/compare/{base}...{head}",
85 | "merges_url": "https://api.github.com/repos/w3c/test-repo-transfer/merges",
86 | "archive_url": "https://api.github.com/repos/w3c/test-repo-transfer/{archive_format}{/ref}",
87 | "downloads_url": "https://api.github.com/repos/w3c/test-repo-transfer/downloads",
88 | "issues_url": "https://api.github.com/repos/w3c/test-repo-transfer/issues{/number}",
89 | "pulls_url": "https://api.github.com/repos/w3c/test-repo-transfer/pulls{/number}",
90 | "milestones_url": "https://api.github.com/repos/w3c/test-repo-transfer/milestones{/number}",
91 | "notifications_url": "https://api.github.com/repos/w3c/test-repo-transfer/notifications{?since,all,participating}",
92 | "labels_url": "https://api.github.com/repos/w3c/test-repo-transfer/labels{/name}",
93 | "releases_url": "https://api.github.com/repos/w3c/test-repo-transfer/releases{/id}",
94 | "deployments_url": "https://api.github.com/repos/w3c/test-repo-transfer/deployments",
95 | "created_at": "2020-05-27T13:05:23Z",
96 | "updated_at": "2020-05-27T13:05:52Z",
97 | "pushed_at": "2020-05-27T13:05:25Z",
98 | "git_url": "git://github.com/w3c/test-repo-transfer.git",
99 | "ssh_url": "git@github.com:w3c/test-repo-transfer.git",
100 | "clone_url": "https://github.com/w3c/test-repo-transfer.git",
101 | "svn_url": "https://github.com/w3c/test-repo-transfer",
102 | "homepage": null,
103 | "size": 0,
104 | "stargazers_count": 0,
105 | "watchers_count": 0,
106 | "language": null,
107 | "has_issues": true,
108 | "has_projects": true,
109 | "has_downloads": true,
110 | "has_wiki": true,
111 | "has_pages": false,
112 | "forks_count": 0,
113 | "mirror_url": null,
114 | "archived": false,
115 | "disabled": false,
116 | "open_issues_count": 0,
117 | "license": null,
118 | "forks": 0,
119 | "open_issues": 0,
120 | "watchers": 0,
121 | "default_branch": "master"
122 | },
123 | "organization": {
124 | "login": "w3c",
125 | "id": 379216,
126 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjM3OTIxNg==",
127 | "url": "https://api.github.com/orgs/w3c",
128 | "repos_url": "https://api.github.com/orgs/w3c/repos",
129 | "events_url": "https://api.github.com/orgs/w3c/events",
130 | "hooks_url": "https://api.github.com/orgs/w3c/hooks",
131 | "issues_url": "https://api.github.com/orgs/w3c/issues",
132 | "members_url": "https://api.github.com/orgs/w3c/members{/member}",
133 | "public_members_url": "https://api.github.com/orgs/w3c/public_members{/member}",
134 | "avatar_url": "https://avatars2.githubusercontent.com/u/379216?v=4",
135 | "description": "The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web."
136 | },
137 | "sender": {
138 | "login": "dontcallmedom",
139 | "id": 216410,
140 | "node_id": "MDQ6VXNlcjIxNjQxMA==",
141 | "avatar_url": "https://avatars0.githubusercontent.com/u/216410?v=4",
142 | "gravatar_id": "",
143 | "url": "https://api.github.com/users/dontcallmedom",
144 | "html_url": "https://github.com/dontcallmedom",
145 | "followers_url": "https://api.github.com/users/dontcallmedom/followers",
146 | "following_url": "https://api.github.com/users/dontcallmedom/following{/other_user}",
147 | "gists_url": "https://api.github.com/users/dontcallmedom/gists{/gist_id}",
148 | "starred_url": "https://api.github.com/users/dontcallmedom/starred{/owner}{/repo}",
149 | "subscriptions_url": "https://api.github.com/users/dontcallmedom/subscriptions",
150 | "organizations_url": "https://api.github.com/users/dontcallmedom/orgs",
151 | "repos_url": "https://api.github.com/users/dontcallmedom/repos",
152 | "events_url": "https://api.github.com/users/dontcallmedom/events{/privacy}",
153 | "received_events_url": "https://api.github.com/users/dontcallmedom/received_events",
154 | "type": "User",
155 | "site_admin": false
156 | }
157 | }
158 |
--------------------------------------------------------------------------------
/tests/repo-transferred.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: =?utf-8?q?Dominique_Haza=C3=ABl-Massieux_via_GitHub?=
5 | To: dom@localhost
6 | Subject: w3c/test-repo-transfer transferred from dontcallmedom to w3c by dontcallmedom
7 | Message-ID:
8 |
9 | dontcallmedom has just transferred the repository test-repo-transfer from dontcallmedom to w3c
10 | https://github.com/w3c/test-repo-transfer
--------------------------------------------------------------------------------
/tests/repo1-data.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 23384500,
3 | "name": "webrtc-pc",
4 | "full_name": "w3c/webrtc-pc",
5 | "owner": {
6 | "login": "w3c",
7 | "id": 379216,
8 | "avatar_url": "https://avatars2.githubusercontent.com/u/379216?v=4",
9 | "gravatar_id": "",
10 | "url": "https://api.github.com/users/w3c",
11 | "html_url": "https://github.com/w3c",
12 | "followers_url": "https://api.github.com/users/w3c/followers",
13 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
14 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
15 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
16 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
17 | "organizations_url": "https://api.github.com/users/w3c/orgs",
18 | "repos_url": "https://api.github.com/users/w3c/repos",
19 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
20 | "received_events_url": "https://api.github.com/users/w3c/received_events",
21 | "type": "Organization",
22 | "site_admin": false
23 | },
24 | "private": false,
25 | "html_url": "https://github.com/w3c/webrtc-pc",
26 | "description": "WebRTC 1.0 API",
27 | "fork": false,
28 | "url": "https://api.github.com/repos/w3c/webrtc-pc",
29 | "forks_url": "https://api.github.com/repos/w3c/webrtc-pc/forks",
30 | "keys_url": "https://api.github.com/repos/w3c/webrtc-pc/keys{/key_id}",
31 | "collaborators_url": "https://api.github.com/repos/w3c/webrtc-pc/collaborators{/collaborator}",
32 | "teams_url": "https://api.github.com/repos/w3c/webrtc-pc/teams",
33 | "hooks_url": "https://api.github.com/repos/w3c/webrtc-pc/hooks",
34 | "issue_events_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/events{/number}",
35 | "events_url": "https://api.github.com/repos/w3c/webrtc-pc/events",
36 | "assignees_url": "https://api.github.com/repos/w3c/webrtc-pc/assignees{/user}",
37 | "branches_url": "https://api.github.com/repos/w3c/webrtc-pc/branches{/branch}",
38 | "tags_url": "https://api.github.com/repos/w3c/webrtc-pc/tags",
39 | "blobs_url": "https://api.github.com/repos/w3c/webrtc-pc/git/blobs{/sha}",
40 | "git_tags_url": "https://api.github.com/repos/w3c/webrtc-pc/git/tags{/sha}",
41 | "git_refs_url": "https://api.github.com/repos/w3c/webrtc-pc/git/refs{/sha}",
42 | "trees_url": "https://api.github.com/repos/w3c/webrtc-pc/git/trees{/sha}",
43 | "statuses_url": "https://api.github.com/repos/w3c/webrtc-pc/statuses/{sha}",
44 | "languages_url": "https://api.github.com/repos/w3c/webrtc-pc/languages",
45 | "stargazers_url": "https://api.github.com/repos/w3c/webrtc-pc/stargazers",
46 | "contributors_url": "https://api.github.com/repos/w3c/webrtc-pc/contributors",
47 | "subscribers_url": "https://api.github.com/repos/w3c/webrtc-pc/subscribers",
48 | "subscription_url": "https://api.github.com/repos/w3c/webrtc-pc/subscription",
49 | "commits_url": "https://api.github.com/repos/w3c/webrtc-pc/commits{/sha}",
50 | "git_commits_url": "https://api.github.com/repos/w3c/webrtc-pc/git/commits{/sha}",
51 | "comments_url": "https://api.github.com/repos/w3c/webrtc-pc/comments{/number}",
52 | "issue_comment_url": "https://api.github.com/repos/w3c/webrtc-pc/issues/comments{/number}",
53 | "contents_url": "https://api.github.com/repos/w3c/webrtc-pc/contents/{+path}",
54 | "compare_url": "https://api.github.com/repos/w3c/webrtc-pc/compare/{base}...{head}",
55 | "merges_url": "https://api.github.com/repos/w3c/webrtc-pc/merges",
56 | "archive_url": "https://api.github.com/repos/w3c/webrtc-pc/{archive_format}{/ref}",
57 | "downloads_url": "https://api.github.com/repos/w3c/webrtc-pc/downloads",
58 | "issues_url": "https://api.github.com/repos/w3c/webrtc-pc/issues{/number}",
59 | "pulls_url": "https://api.github.com/repos/w3c/webrtc-pc/pulls{/number}",
60 | "milestones_url": "https://api.github.com/repos/w3c/webrtc-pc/milestones{/number}",
61 | "notifications_url": "https://api.github.com/repos/w3c/webrtc-pc/notifications{?since,all,participating}",
62 | "labels_url": "https://api.github.com/repos/w3c/webrtc-pc/labels{/name}",
63 | "releases_url": "https://api.github.com/repos/w3c/webrtc-pc/releases{/id}",
64 | "deployments_url": "https://api.github.com/repos/w3c/webrtc-pc/deployments",
65 | "created_at": "2014-08-27T09:39:00Z",
66 | "updated_at": "2017-12-07T08:53:13Z",
67 | "pushed_at": "2017-12-14T15:46:26Z",
68 | "git_url": "git://github.com/w3c/webrtc-pc.git",
69 | "ssh_url": "git@github.com:w3c/webrtc-pc.git",
70 | "clone_url": "https://github.com/w3c/webrtc-pc.git",
71 | "svn_url": "https://github.com/w3c/webrtc-pc",
72 | "homepage": "https://w3c.github.io/webrtc-pc/",
73 | "size": 23258,
74 | "stargazers_count": 144,
75 | "watchers_count": 144,
76 | "language": "HTML",
77 | "has_issues": true,
78 | "has_projects": true,
79 | "has_downloads": true,
80 | "has_wiki": true,
81 | "has_pages": true,
82 | "forks_count": 69,
83 | "mirror_url": null,
84 | "archived": false,
85 | "open_issues_count": 100,
86 | "license": {
87 | "key": "other",
88 | "name": "Other",
89 | "spdx_id": null,
90 | "url": null
91 | },
92 | "forks": 69,
93 | "open_issues": 100,
94 | "watchers": 144,
95 | "default_branch": "master",
96 | "organization": {
97 | "login": "w3c",
98 | "id": 379216,
99 | "avatar_url": "https://avatars2.githubusercontent.com/u/379216?v=4",
100 | "gravatar_id": "",
101 | "url": "https://api.github.com/users/w3c",
102 | "html_url": "https://github.com/w3c",
103 | "followers_url": "https://api.github.com/users/w3c/followers",
104 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
105 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
106 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
107 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
108 | "organizations_url": "https://api.github.com/users/w3c/orgs",
109 | "repos_url": "https://api.github.com/users/w3c/repos",
110 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
111 | "received_events_url": "https://api.github.com/users/w3c/received_events",
112 | "type": "Organization",
113 | "site_admin": false
114 | },
115 | "network_count": 69,
116 | "subscribers_count": 58
117 | }
118 |
--------------------------------------------------------------------------------
/tests/repo2-data.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 46081609,
3 | "name": "webcrypto",
4 | "full_name": "w3c/webcrypto",
5 | "owner": {
6 | "login": "w3c",
7 | "id": 379216,
8 | "avatar_url": "https://avatars2.githubusercontent.com/u/379216?v=4",
9 | "gravatar_id": "",
10 | "url": "https://api.github.com/users/w3c",
11 | "html_url": "https://github.com/w3c",
12 | "followers_url": "https://api.github.com/users/w3c/followers",
13 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
14 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
15 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
16 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
17 | "organizations_url": "https://api.github.com/users/w3c/orgs",
18 | "repos_url": "https://api.github.com/users/w3c/repos",
19 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
20 | "received_events_url": "https://api.github.com/users/w3c/received_events",
21 | "type": "Organization",
22 | "site_admin": false
23 | },
24 | "private": false,
25 | "html_url": "https://github.com/w3c/webcrypto",
26 | "description": "The W3C Web Cryptography API ",
27 | "fork": false,
28 | "url": "https://api.github.com/repos/w3c/webcrypto",
29 | "forks_url": "https://api.github.com/repos/w3c/webcrypto/forks",
30 | "keys_url": "https://api.github.com/repos/w3c/webcrypto/keys{/key_id}",
31 | "collaborators_url": "https://api.github.com/repos/w3c/webcrypto/collaborators{/collaborator}",
32 | "teams_url": "https://api.github.com/repos/w3c/webcrypto/teams",
33 | "hooks_url": "https://api.github.com/repos/w3c/webcrypto/hooks",
34 | "issue_events_url": "https://api.github.com/repos/w3c/webcrypto/issues/events{/number}",
35 | "events_url": "https://api.github.com/repos/w3c/webcrypto/events",
36 | "assignees_url": "https://api.github.com/repos/w3c/webcrypto/assignees{/user}",
37 | "branches_url": "https://api.github.com/repos/w3c/webcrypto/branches{/branch}",
38 | "tags_url": "https://api.github.com/repos/w3c/webcrypto/tags",
39 | "blobs_url": "https://api.github.com/repos/w3c/webcrypto/git/blobs{/sha}",
40 | "git_tags_url": "https://api.github.com/repos/w3c/webcrypto/git/tags{/sha}",
41 | "git_refs_url": "https://api.github.com/repos/w3c/webcrypto/git/refs{/sha}",
42 | "trees_url": "https://api.github.com/repos/w3c/webcrypto/git/trees{/sha}",
43 | "statuses_url": "https://api.github.com/repos/w3c/webcrypto/statuses/{sha}",
44 | "languages_url": "https://api.github.com/repos/w3c/webcrypto/languages",
45 | "stargazers_url": "https://api.github.com/repos/w3c/webcrypto/stargazers",
46 | "contributors_url": "https://api.github.com/repos/w3c/webcrypto/contributors",
47 | "subscribers_url": "https://api.github.com/repos/w3c/webcrypto/subscribers",
48 | "subscription_url": "https://api.github.com/repos/w3c/webcrypto/subscription",
49 | "commits_url": "https://api.github.com/repos/w3c/webcrypto/commits{/sha}",
50 | "git_commits_url": "https://api.github.com/repos/w3c/webcrypto/git/commits{/sha}",
51 | "comments_url": "https://api.github.com/repos/w3c/webcrypto/comments{/number}",
52 | "issue_comment_url": "https://api.github.com/repos/w3c/webcrypto/issues/comments{/number}",
53 | "contents_url": "https://api.github.com/repos/w3c/webcrypto/contents/{+path}",
54 | "compare_url": "https://api.github.com/repos/w3c/webcrypto/compare/{base}...{head}",
55 | "merges_url": "https://api.github.com/repos/w3c/webcrypto/merges",
56 | "archive_url": "https://api.github.com/repos/w3c/webcrypto/{archive_format}{/ref}",
57 | "downloads_url": "https://api.github.com/repos/w3c/webcrypto/downloads",
58 | "issues_url": "https://api.github.com/repos/w3c/webcrypto/issues{/number}",
59 | "pulls_url": "https://api.github.com/repos/w3c/webcrypto/pulls{/number}",
60 | "milestones_url": "https://api.github.com/repos/w3c/webcrypto/milestones{/number}",
61 | "notifications_url": "https://api.github.com/repos/w3c/webcrypto/notifications{?since,all,participating}",
62 | "labels_url": "https://api.github.com/repos/w3c/webcrypto/labels{/name}",
63 | "releases_url": "https://api.github.com/repos/w3c/webcrypto/releases{/id}",
64 | "deployments_url": "https://api.github.com/repos/w3c/webcrypto/deployments",
65 | "created_at": "2015-11-12T21:21:05Z",
66 | "updated_at": "2017-12-14T22:27:46Z",
67 | "pushed_at": "2017-09-26T21:40:08Z",
68 | "git_url": "git://github.com/w3c/webcrypto.git",
69 | "ssh_url": "git@github.com:w3c/webcrypto.git",
70 | "clone_url": "https://github.com/w3c/webcrypto.git",
71 | "svn_url": "https://github.com/w3c/webcrypto",
72 | "homepage": "http://w3c.github.io/webcrypto/Overview.html",
73 | "size": 1302,
74 | "stargazers_count": 51,
75 | "watchers_count": 51,
76 | "language": "HTML",
77 | "has_issues": true,
78 | "has_projects": true,
79 | "has_downloads": true,
80 | "has_wiki": true,
81 | "has_pages": true,
82 | "forks_count": 16,
83 | "mirror_url": null,
84 | "archived": false,
85 | "open_issues_count": 29,
86 | "license": null,
87 | "forks": 16,
88 | "open_issues": 29,
89 | "watchers": 51,
90 | "default_branch": "master",
91 | "organization": {
92 | "login": "w3c",
93 | "id": 379216,
94 | "avatar_url": "https://avatars2.githubusercontent.com/u/379216?v=4",
95 | "gravatar_id": "",
96 | "url": "https://api.github.com/users/w3c",
97 | "html_url": "https://github.com/w3c",
98 | "followers_url": "https://api.github.com/users/w3c/followers",
99 | "following_url": "https://api.github.com/users/w3c/following{/other_user}",
100 | "gists_url": "https://api.github.com/users/w3c/gists{/gist_id}",
101 | "starred_url": "https://api.github.com/users/w3c/starred{/owner}{/repo}",
102 | "subscriptions_url": "https://api.github.com/users/w3c/subscriptions",
103 | "organizations_url": "https://api.github.com/users/w3c/orgs",
104 | "repos_url": "https://api.github.com/users/w3c/repos",
105 | "events_url": "https://api.github.com/users/w3c/events{/privacy}",
106 | "received_events_url": "https://api.github.com/users/w3c/received_events",
107 | "type": "Organization",
108 | "site_admin": false
109 | },
110 | "network_count": 16,
111 | "subscribers_count": 39
112 | }
113 |
--------------------------------------------------------------------------------
/tests/summary-quarterly.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 |
5 |
6 |
7 |
8 |
9 |
10 | Repositories
11 | -----
12 | * w3c/webcrypto
13 | - open issues and pull requests: 29
14 | - activity on issues: +5/-0/💬3
15 | - activity on pull requests: +1/-0/💬1
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Repositories tracked by this digest:
25 | -----------------------------------
26 | * https://github.com/w3c/webcrypto
27 |
28 |
29 |
30 |
31 | --
32 | Sent with ♥
33 |
--------------------------------------------------------------------------------
/tests/summary-quarterly.msg.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dontcallmedom/github-notify-ml/2521daa1d69f553d66675991b600563712677bb6/tests/summary-quarterly.msg.html
--------------------------------------------------------------------------------
/tests/templates/generic:
--------------------------------------------------------------------------------
1 | ../../templates/generic/
--------------------------------------------------------------------------------
/tests/templates/mls/dom@localhost/push:
--------------------------------------------------------------------------------
1 | [{{repository.name}}] new commits pushed by {{{pusher.name}}}
2 | Per ml template!
3 | The following commits were just pushed by {{{pusher.name}}} to {{{repository.html_url}}}:
4 |
5 | {{#commits}}
6 | * {{{message}}}
7 | by {{{author.name}}}
8 | {{{url}}}
9 |
10 | {{/commits}}
11 |
--------------------------------------------------------------------------------
/tests/templates/mls/dom@localhost/w3c/mediacapture-main/issue_comment.created:
--------------------------------------------------------------------------------
1 | Re: [{{{repository.name}}}] {{{issue.title}}}
2 | {{{comment.body}}}
3 |
4 | --
5 | GitHub Notif of comment by {{{comment.user.login}}}
6 | See {{{comment.html_url}}}
7 | Special template!
--------------------------------------------------------------------------------
/tests/trpublished-notif.json:
--------------------------------------------------------------------------------
1 | {
2 | "event": "tr.published",
3 | "specversion": {
4 | "status": "Working Draft",
5 | "uri": "http:\/\/www.w3.org\/TR\/2016\/WD-shacl-ucr-20160122\/",
6 | "date": "2016-01-22",
7 | "informative": false,
8 | "title": "SHACL Use Cases and Requirements",
9 | "shortlink": "http:\/\/www.w3.org\/TR\/odor\/",
10 | "editor_draft": "http:\/\/w3c.github.io\/data-shapes\/data-shapes-ucr\/",
11 | "process_rules": "http:\/\/www.w3.org\/2015\/Process-20150901\/",
12 | "_links": {
13 | "self": {
14 | "href": "https:\/\/api.w3.org\/specifications\/shacl-ucr\/versions\/20160122"
15 | },
16 | "editors": {
17 | "href": "https:\/\/api.w3.org\/specifications\/shacl-ucr\/versions\/20160122\/editors"
18 | },
19 | "deliverers": {
20 | "href": "https:\/\/api.w3.org\/specifications\/shacl-ucr\/versions\/20160122\/deliverers"
21 | },
22 | "specification": {
23 | "href": "https:\/\/api.w3.org\/specifications\/shacl-ucr"
24 | },
25 | "predecessor-version": {
26 | "href": "https:\/\/api.w3.org\/specifications\/shacl-ucr\/versions\/20160122\/predecessors"
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/tests/trpublished-notif.msg:
--------------------------------------------------------------------------------
1 | MIME-Version: 1.0
2 | Content-Transfer-Encoding: quoted-printable
3 | Content-Type: text/plain; charset="utf-8"; format="flowed"
4 | From: W3C Webmaster via W3C API
5 | To: dom@localhost
6 | Subject: "SHACL Use Cases and Requirements" published as a Working Draft
7 | Message-ID:
8 |
9 | "SHACL Use Cases and Requirements" has just been published as a W3C Working Draft dated 2016-01-22 at http://www.w3.org/TR/2016/WD-shacl-ucr-20160122/.
--------------------------------------------------------------------------------