Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

June 19, 2018
Tweet

More Decks by Brandon Keepers

Other Decks in Programming

Transcript

  1. Automating
    Software
    Development
    @bkeepers - GitHub

    View full-size slide

  2. #TheFuture #OrMaybeNot

    View full-size slide

  3. Jidoka
    automation with a human touch.

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  9. Marketplace
    Data

    View full-size slide

  10. probot.github.io

    View full-size slide

  11. [screenshot of apps]

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. Polls
    ~75 organizations
    Create polls in
    discussions.

    View full-size slide

  15. Polls
    ~75 organizations
    Create polls in
    discussions.

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  21. Build your own

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  25. 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  30. probot.github.io/community

    View full-size slide

  31. Thanks!
    @bkeepers probot.github.io

    View full-size slide

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

    View full-size slide

  33. Webhooks
    API
    GitHub Apps PROBOT

    View full-size slide

  34. Webhooks
    API
    GitHub Apps PROBOT
    git push

    View full-size slide

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

    View full-size slide

  36. 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 full-size slide

  37. 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 full-size slide