integrations / slack Goto Github PK
View Code? Open in Web Editor NEWBring your code to the conversations you care about with the GitHub and Slack integration
Home Page: https://slack.github.com/
License: MIT License
Bring your code to the conversations you care about with the GitHub and Slack integration
Home Page: https://slack.github.com/
License: MIT License
@todo
comment in df04c7a. It's been assigned to @wilhelmklopp because they committed the code.Fired on the pull_request.synchronize
event
Estimate: 0.5 weeks
This should be in a thread for x minutes
A user sees an ephemeral prompt to verify that the private link should be unfurled (always, this time, never)
Estimate: 1 week
Depends on #52 (SHOULD)
Unfurls are currently not supported by workspace-based Slack apps. Once they are, we need to update the code that makes use of OLD_MODEL_SLACK_SECRET_TOKEN
and OLD_MODEL_SLACK_TEST_TOKEN
At the moment, all our unfurls are major, but if multiple GitHub links are contained in the same message, they should be minor in order to take up less space.
Relevant Slack docs: https://api.slack.com/docs/message-link-unfurling#slack_app_unfurling
Additionally, don't unfurl at all if more than 3 links are shared in one message
We should send a notification for the deployment event that for example Heroku generates.
Example on branch: #22
Consideration: Only show master deployments?
Estimate: 0.5 weeks
/github unsubscribe [account] [type]
to unsubscribe from a specific type of notifications (issues
, prs
, comments
, reviews
, etc)
Estimate: 1 week
/github subscribe owner/repo
to subscribe to notifications for a repository
Estimate: 1 week
A user sees related changes that happen quickly (1 min) after the initial event as edits to the original message (statuses, more pushes, etc).
Demo: https://www.youtube.com/watch?v=dSucU5cny5Q
Estimate: 1 week
/github subscribe owner
to subscribe to notifications for an account
Estimate: 0.5 weeks
Likely postgres
Simple app that lets you select scopes and then kicks off the Slack OAuth flow so that you can see how dangerous your selected scopes are:
A user is notified of GitHub status changes from status.github.com
Estimate: 1.5 weeks
Estimate: 0.5 weeks
Only unfurl a link once per x hours per channel
Estimate: 1 week
@todo
comment in 3c3a1e2 in #40. It's been assigned to @wilhelmklopp because they committed the code.🤖
🤖
🤖 🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖 🤖
🤖
🤖 🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖 🤖
🤖
🤖 🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖 🤖
🤖
🤖 🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖 🤖
🤖
🤖 🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖
🤖
Estimate: 1 week
with body truncated
e.g. http://github.com/probot/probot
Estimate: 0.5 weeks
In the interest of resiliency and scalability, the app should store any incoming events in a queue, and run background workers to work the jobs off the queue.
Estimate: 1 week
e.g. https://github.com/github
Estimate: 0.5 weeks
A lot of the different functions in issues.js
do the same thing and can be combined now that we have the renderer in place.
Estimate: 0.5 weeks
When generating new snapshots for the first time (and potentially in other cases), it would be useful to see an image of the rendered slack message, in addition to the JSON object.
Example Jest output at the moment:
● Pull request rendering › works for minor notifications
expect(value).toMatchSnapshot()
New snapshot was not written. The update flag must be explicitly passed to write a new snapshot.
This is likely because this test is run in a continuous integration (CI) environment in which snapshots are not written by default.
Received value
Object {
"attachments": Array [
Object {
"author_icon": "https://avatars0.githubusercontent.com/u/173?v=4",
"author_link": "https://github.com/bkeepers",
"author_name": "bkeepers",
"color": "#6f42c1",
"fallback": "#36 Rearrange logic",
"footer": "<https://github.com/github-slack/app/pull/36|View it on GitHub>",
"footer_icon": "https://assets-cdn.github.com/favicon.ico",
"mrkdwn_in": Array [
"text",
],
"title": "#36 Rearrange logic",
"title_link": "https://github.com/github-slack/app/pull/36",
"ts": 1506619320,
},
],
}
at Object.test (test/renderer/index.test.js:91:22)
at Promise (<anonymous>)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
› 1 snapshot test failed.
If we build this, the Jest output above would remain, but additionally a screenshot would be shown:
We would do this by passing in the Jest snapshot to the Slack Message Builder and then take a screenshot of the rendered message with Puppeteer. We can display the image in the terminal using something like imagemagick
re style guide and the snapshot tests, it’d be cool if the app actually had rendered examples of all them message types. So if you go to
/styleguide/examples
you could see all the messages in one view
@todo
comment in a8cfa53. It's been assigned to @wilhelmklopp because they committed the code.@todo
comment in 8179b7f. It's been assigned to @wilhelmklopp because they committed the code.Since this is a private repo we cannot use Travis on the free plan.
We need to figure out a way to upgrade :)
Edit: Also something like greenkeeper/dependabot would be neat. I had a problem just now and either of those would have saved me 10-20min of investigating 😬
If I write this test:
require('../lib/storage');
test('hello', () => {
console.log("done");
});
And run jest test/repro.test.js
then I get this output:
PASS test/repo.test.js
✓ hello (4ms)
console.log test/repo.test.js:4
done
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.234s, estimated 1s
Ran all test suites matching /test\/repo.test.js/i.
But the process hangs and you have to type ctrl+c to kill it.
Need to create end to end tests for all GitHub events we're listening to
We should set up Sentry or a similar tool so that we can monitor errors that happen in the production environment. We currently don't see those.
@todo
comment in a8cfa53. It's been assigned to @wilhelmklopp because they committed the code.As a further iteration on #8, it should also unfurl links to rendered documents, like https://github.com/github-slack/app/blob/master/README.md
Estimate: 2 weeks
This issue was closed by @wilhelmklopp, but the renderer showed it as @bkeepers
I'm going through this now as I work on getting an instance of this deployed.
issues
webhookpull_request
webhookEstimate: 0.5 weeks
@todo
comment in 148de45 in #40. It's been assigned to @wilhelmklopp because they committed the code.A user sees an ephemeral prompt to verify that the private link should be unfurled (always, this time, never)
A user sees an unfurl of a private link.
Estimate: 2 weeks
Read through this comment to find out how to get early access: #52 (comment)
Things that need to be done before general availability:
/github settings
We've talked a few times about looking into TypeScript. Before we get too far on this project, we should evaluate if that is something we want to do.
Estimate: 1 week
This is pretty intense (especially for apps that have a lot of statuses).
Proposal:
It would be awesome if our production environment allowed us to make new features available first to all GitHub staff, and then to some small subset of all users (like canary for github/github)
cc @bkeepers for 💬 on whether we should do this and how we would accomplish it
/github unsubscribe owner/repo
to unsubscribe to notifications for a repository
Estimate: 0.5 weeks
We intend to use Slack's new workspace-based app model. Our launch timeline will be dictated by Slack's timeline for making them distributable.
Slack's message formatting is not quite markdown. We should do our best to translate GitHub markdown into something that displays decently on Slack.
Estimate: 2 weeks
This allows us to negate the [owner/repo]
prefix in the pretext of many messages.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.