$30 off During Our Annual Pro Sale. View Details »

Automating Software Development

Automating Software Development

Software is more than code, and a lot of time and overhead that goes into building software can be automated. This talk will look at the tools and techniques that software teams are using to automate everything from project management, to code review, to product feedback.

Brandon Keepers
PRO

June 19, 2018
Tweet

More Decks by Brandon Keepers

Other Decks in Programming

Transcript

  1. Automating
    Software
    Development
    @bkeepers - GitHub

    View Slide

  2. #TheFuture #OrMaybeNot

    View Slide

  3. Jidoka
    automation with a human touch.

    View Slide

  4. C O D E
    i s mo r e th an
    SOFTWARE

    View Slide

  5. source: @searls & https://online.husson.edu/software-development-cycle/

    View Slide

  6. CONTINUOUS
    INTEGRATION
    CONTINUOUS
    DELIVERY
    source: @searls & https://online.husson.edu/software-development-cycle/

    View Slide

  7. CONTINUOUS
    INTEGRATION
    CONTINUOUS
    DELIVERY
    CONTINUOUS
    FEEDBACK
    CONTINUOUS
    REFINEMENT
    CONTINUOUS
    PRODUCTION
    CONTINUOUS
    VALIDATION
    source: @searls & https://online.husson.edu/software-development-cycle/

    View Slide

  8. C O D E
    eve r yt h i ng i s
    BECOMING

    View Slide

  9. Marketplace
    Data

    View Slide

  10. probot.github.io

    View Slide

  11. [screenshot of apps]

    View Slide

  12. Stale
    >45k public issues
    ~700 organizations
    Close stale Issues and Pull
    Requests

    View Slide

  13. Reminders
    >100 organizations
    Set reminders on Issues
    and Pull Requests

    View Slide

  14. Polls
    ~75 organizations
    Create polls in
    discussions.

    View Slide

  15. Polls
    ~75 organizations
    Create polls in
    discussions.

    View Slide

  16. out-of-office-boss
    Used by nobody
    My boss is out of office, but
    how would he respond if he
    wasn’t?
    https://glitch.com/edit/#!/lying-daffodil

    View Slide

  17. TODO
    >200 organizations
    Creates new issues from
    actionable comments in
    your code.

    View Slide

  18. Alex Linter
    Ensure sensitive, considerate
    writing before you merge
    your Pull Requests

    View Slide

  19. Work in Progress
    >500 organizations
    Prevent merging of work in
    progress.

    View Slide

  20. Work in Progress
    >500 organizations
    Prevent merging of work in
    progress.

    View Slide

  21. Build your own

    View Slide

  22. Hello World

    View Slide

  23. Hello World

    View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. https://probot.github.io/docs

    View Slide

  28. https://developer.github.com/v3/activity/events/types

    View Slide

  29. https://octokit.github.io/rest.js

    View Slide

  30. check_run
    check_suite
    commit_comment
    create
    delete
    deployment
    deployment_status
    download
    follow
    fork
    fork_apply
    gist
    gollum
    installation
    installation_repositories
    issue_comment
    issues
    label
    member
    membership
    milestone
    organization
    org_block
    page_build
    project_card
    project_column
    project
    public

    pull_request
    pull_request_review
    pull_request_review_comment
    push
    release
    repository
    status
    team
    team_add
    watch
    app.on(
    )

    View Slide

  31. context.github.query(graphQL)
    https://developer.github.com/v4

    View Slide

  32. context.github.*
    https://developer.github.com/v3

    View Slide

  33. Work in Progress
    >500 organizations
    Prevent merging of work in
    progress.

    View Slide

  34. Work in Progress
    >500 organizations
    Prevent merging of work in
    progress.

    View Slide

  35. WIP

    View Slide

  36. WIP

    View Slide

  37. WIP

    View Slide

  38. WIP

    View Slide

  39. WIP

    View Slide

  40. WIP

    View Slide

  41. probot.github.io/community

    View Slide

  42. Thanks!
    @bkeepers probot.github.io

    View Slide

  43. we’re hiring!
    …and my manager asked me to tell you…
    github.com/about/careers

    View Slide

  44. Webhooks
    API
    GitHub Apps PROBOT

    View Slide

  45. Webhooks
    API
    GitHub Apps PROBOT
    git push

    View Slide

  46. Webhooks
    API
    GitHub Apps PROBOT
    git push
    WebHooks
    {
    "ref": "refs/heads/changes",
    "before": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
    "after": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
    "created": false,
    "deleted": false,
    "forced": false,

    View Slide

  47. Webhooks
    API
    GitHub Apps PROBOT
    git push
    WebHooks
    {
    "ref": "refs/heads/changes",
    "before": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
    "after": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
    "created": false,
    "deleted": false,
    "forced": false,
    WebHooks
    $ CURL -x POST -d body=“hello world”
    /myname/myrepo/issues/1/comments

    View Slide

  48. Webhooks
    API
    GitHub Apps PROBOT
    git push
    WebHooks
    {
    "ref": "refs/heads/changes",
    "before": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
    "after": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
    "created": false,
    "deleted": false,
    "forced": false,
    WebHooks
    $ CURL -x POST -d body=“hello world”
    /myname/myrepo/issues/1/comments

    View Slide