Removing the strict validation preview
As part of our plans for stricter validation in our REST API, we introduced a preview header to test out the changes before the rollout. Stricter validation has been postponed and beginning January 31, 2019, we will no longer support this header:
application/vnd.github.speedy-preview+json
We still believe that stricter validation would have a positive impact on our REST API overall and are looking for alternative ways to introduce it. Stay tuned for future updates.
If you have any questions, please reach out!
"GitHub Services" Feature Deprecation: What to Expect
As we have mentioned in previous posts, the "GitHub Services" feature will be deprecated this Thursday, January 31st, 2019. Here is what you can expect regarding "GitHub Services" going forward:
- GitHub will cut off all service hook deliveries. There will be no exceptions or extensions. If you still have service hooks configured for your repositories, we highly suggest migrating them to webhooks or GitHub Apps. Please see our "Replacing GitHub Services" guide for more information on how to do that.
- The
github/github-servicesrepository will be archived and no more contributions to the services will be accepted. - You will no longer be able to modify service hook configurations through the GitHub settings UI or the repository hooks API. This change will affect the following endpoints for service hooks only:
- You will still be able to view and remove service hooks through the GitHub settings UI and API until April 1st, 2019. After that date, we will be removing all service hook records.
- Updated 01-30-19: Email service hooks have been migrated to a new repository notifications feature. Management of those notifications can be found in the repository settings UI only. There are no necessary actions to be taken to enable this new feature, and there should be no interruption of service for email deliveries. See "About email notifications for pushes to your repository" in the GitHub Help documentation to learn how to configure commit email notifications. Email notifications for pushes to your repository will be available in GitHub Enterprise Server 2.17 and higher.
Note: The "GitHub Services" feature has a different deprecation timeline for GitHub Enterprise. Please see our deprecation timeline for more information.
Please contact us if you have any questions!
Creating Content Attachments Limited to 6 Hours
In an effort to provide a predictable user experience, we are going to begin limiting the creation of content attachments to 6 hours from when the content reference URL was added.
If an application tries to create a content attachment for a content reference URL older than 6 hours, a response with HTTP status code 422 will be returned.
Please contact us if you have any questions!
Preview the new Interactions API
We're releasing new REST API v3 endpoints that allow you to manage repository and organization interaction limits.
New endpoints
- Get interaction restrictions for a repository
- Add or update interaction restrictions for a repository
- Remove interaction restrictions for a repository
- Get interaction restrictions for an organization
- Add or update interaction restrictions for an organization
- Remove interaction restrictions for an organization
To access these new API endpoints during the preview period, you must provide a custom media type in the Accept header:
application/vnd.github.sombra-preview+json
During the preview period, we may change aspects of these API endpoints based on developer feedback. If we do, we will announce the changes here on the developer blog, but we will not provide any advance notice.
If you have any questions or feedback, please let us know!
Content Attachments API Public Beta
Developers share a lot of links on GitHub. Nearly one-third of comments on issues and pull requests include a link. Hidden behind each of those links is important context that can inform the conversation. Today weβre excited to announce that you can curate and showcase content to help drive those conversations with the Content Attachments API, which is now in public beta.
GitHub Apps now have the ability to listen for links in issues and pull requests and attach content to those links:

Setting up content attachments
Step 1. Create a GitHub App.
Register the domain that your app would like to create content attachments for (errors.ai in this case). Make sure to select Read & write access:
Make sure to select the Content reference event:

Step 2. Install your newly created GitHub App on a repository.
API interaction flow
Someone posts a link in an issue or pull request on a repository where your app is installed.
-
Your app will receive a
content_referenceevent with actioncreated. The contents of thecontent_referenceandinstallationhash are important.{ "action": "created", "content_reference": { "id": 1512, "node_id": "MDE2OkNvbnRlbnRSZWZlcmVuY2UxNTEy", "reference": "https://errors.ai/my-project/A-1234" }, "repository": {...}, "sender": {...}, "installation": { "id": 492164, "node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uNDkyMTY0" } } -
Using the
content_referenceidyou can now create a content attachment using the API by supplying atitleandbodyin the API call. You'll also need theinstallationidto authenticate as a GitHub App installation. You can use markdown in thebodyparameter.curl -X POST \ https://api.github.com/content_references/1512/attachments \ -H 'Accept: application/vnd.github.corsair-preview+json' \ -H 'Authorization: Bearer $INSTALLATION_TOKEN' \ -d '{ "title": "[A-1234] IntegrityError in core/models.py", "body": "duplicate key violates unique constraint user_email_uniq\nDETAIL: Key (email)=(hubot@github.com) already exists..." }' You'll see the new content attachment appear under the link in a pull request or issue comment on GitHub:

Getting started
Try out one of the apps already supporting content attachments or build your own:
Questions
How many domains can an app register?
An app can register up to 5 domains, read more.
What kind of links are GitHub Apps notified of?
For an app to receive a content_reference event, the posted link must be "free standing", so it cannot be part of a markdown link.
If posted, this link will trigger the content_reference event:
https://example.com/test/url
However, this link will not:
[my favorite URL](https://example.com/test/url)
Also, remember, that for an app to receive the content_reference event, it needs to be installed on the repository and have the matching domain registered. So in the above case the app would need to have example.com registered as a content_reference in the app settings.
If you have any questions or feedback, please let us know!
Postponing stricter validation
Recently we announced plans for stricter validation in our REST API and have been monitoring the effect these changes would have on integrators. After careful consideration, we've decided to not rollout stricter validation at this time.
The preview header introduced as part of this change will remain intact. You can continue to use stricter validation by passing the following header:
application/vnd.github.speedy-preview+json
We still believe that stricter validation would have a positive impact on our REST API overall and are looking for alternative ways to introduce it. Stay tuned for future updates.
If you have any questions, please reach out!
GitHub Services Brownout Updates and Timeline
On October 1st, we announced that we were going to do a week-long brownout of GitHub Services-based webhooks this week. During this time no GitHub Services payloads would have been delivered. The motivation behind the brownout is to allow our users and integrators to see the places that GitHub Services are still being used and begin working towards migrating away from GitHub Services. After a lot of thought and discussion, we've decided that a week-long brownout at this time would be too disruptive for everyone. Instead, we are going to do a gradual increase in brownouts until the final blackout date of January 31st, 2019 (please see our deprecation timeline for more information on that).
The following is the updated timeline for GitHub Services brownouts:
- November 7th, 2018: We will suspend GitHub Services deliveries for a few hours throughout the day.
- December 12th, 2018: GitHub Service deliveries will be suspended for a full 24 hours
- January 7th, 2019: GitHub Services will be suspended for a full 7 days. Regular deliveries will resume January 14th, 2019.
We will make sure to post a status on our status page at the start and end of each of these brownouts.
Note: If this change affects you, please see our guide to Replacing GitHub Services with webhooks.
Please contact us if you have any questions!
Improved Experience for Marketplace Pending Order Changes
Today we are announcing updates to Marketplace-related webhooks and REST API's that will make handling orders with pending changes easier.
New webhooks
Integrators can now receive hooks when someone submits a plan change that won't be processed until the end of their billing cycle. Learn more here.
Updated API's
The same information can now also be fetched from the REST API.
Learn more about fetching details about a single account or for fetching all accounts on a given plan.
If you have any questions or feedback, please let us know!
Webhook Log Retention Limited to 30 Days
In an effort to provide a more powerful and stable webhook log experience, we are going to begin limiting the webhook log retention to 30 days.
The webhook logs are viewable only from the organization or repository settings UI. We currently allow users to page through webhook logs until the they reach the first delivery for that hook regardless of how old the delivery is. However, as of Friday, November 2nd, users will only be able to page back through 30 days of webhook delivery logs.
Note: This update does not affect GitHub Enterprise. The webhook log retention period on GitHub Enterprise will continue to be 8 days.
Please contact us if you have any questions!
Preview more complete workflows for Pull Requests in GraphQL
To go with our recent issues preview, we're releasing a more exhaustive Pull Request API in GraphQL to enable you to close or merge pull requests.
For a more complete list of new objects and mutations made available during this preview, please refer to the GraphQL docs.
To access this new API during the preview period, you must provide a custom
media type in the Accept header:
application/vnd.github.ocelot-preview
Note: GraphQL APIs under preview cannot be accessed via the GraphQL Explorer at this time.
During the preview period, we may change aspects of these APIs based on developer feedback. If we do, we will announce the changes here on the developer blog, but we will not provide any advance notice.
If you have any questions or feedback of other interactions you might like for issues, please let us know!