Jens Schumacher   Jay
Since Stash 1.0...
Since Stash 1.0...141days
Since Stash 1.0...141days  2 releases everyks           one 7                  wee
Since Stash 1.0...141days  2 releases everyks           one 7                   wee 10 add-ons the Marketplace           in
Since Stash 1.0...141days  2 releases everyks           one 7                   wee 10 add-ons the Marketplace           in
Since Stash 1.0...141days  2 releases everyks           one 7                   wee 10 add-ons the Marketplace           in
1000+customers
Stash 1.0 - 1.2
Enterprise Focus        Security & Access Control        Visibility        Integration
Permissions
Databases
End-User Features
Stash 1.3
Pull Requests
What is a Pull Request?              `
What is a Pull Request?           `               `
Pull Requests
Pull Requests
Pull Requests
Pull Requests
Pull Requests
Pull Requests
Pull Requests
Pull Requests
Stash 1.4
Pull Requests
Pull Requests
Pull Requests
Branch Permissions
Scale
500+
NextTim Pettersen
Tour de StashTim Pettersen, Atlassian
What is Stash?    MyRepo.git
What is Stash?Git Hosting   SSH              MyRepo.git  HTTP
What is Stash?Git Hosting                Browsing   SSH                      Web UI              MyRepo.git  HTTP         ...
What is Stash?Git Hosting                   Browsing   SSH                         Web UI                 MyRepo.git  HTTP...
What is Stash?Git Hosting                       Browsing   SSH                             Web UI                 MyRepo.g...
Ideas?
Plugin ideas?• Toolchain integration                             REST • Issue tracking                          Commit Hoo...
Plugin ideas?• Reporting • Metrics               Web UI • Static analysis• File Rendering • Business: PDF, DOC, XLS etc. •...
Plugin ideas?• Release management           Events• Code ‘bots’                            Pull Requests• Commit Hooks  • ...
Plugin ideas?• Release management           Events• Code ‘bots’                            Pull Requests• Commit Hooks  • ...
Built on plugins,     for pluginsstash-spi        webappstash-api     bundled pluginsscm-git      3rd party plugins
First Class Citizens• Features as plugins: driving continual  expansion of stash-api & stash-spi• @Deprecated - no breakin...
DON’T PANIC!• Atlassian Plugins 2• SDK Support• Atlassian Platform• Velocity support (but prefer Soy)• New Atlassian PDL
DON’T PANIC!• Atlassian Plugins 2• SDK Support• Atlassian Platform• Velocity support (but prefer Soy)• New Atlassian PDL
stash-spistash-spi               webappstash-api          bundled plugins scm-git          3rd party plugins
stash-spi• Changeset indexing• SSH end-points• SCM request checks• Form fragments
Example:Beer O’Clock Pluginhttp://tinyurl.com/stashlas-camp
Beer O’Clock Check      git     push               PermissionCheck                LicenseCheck                ThrottleChec...
Beer O’Clock Check      git     push               PermissionCheck                 LicenseCheck                ThrottleChe...
Beer O’Clock Check
stash-apistash-spi               webappstash-api          bundled plugins scm-git          3rd party plugins
stash-api• Services, services, services...  • server admin  • repositories & projects  • content & history  • users & grou...
stash-api• Events galore! • Administration - users, groups,    permissions, server config • Repositories & projects • Hosti...
Example:    Load Monitorhttp://tinyurl.com/stashlas-camp
Load MonitorLoadMonitorListener    MailService
Load Monitor                         LoadMonitorLoadMonitorListener                        FormFragment    MailService    ...
stash-api• RepositoryService repository CRUD  (incl. forks!)• RepositoryMetadataService  branches & tags• HistoryService fi...
Scale, scale, scale!• Throttling• Streamy APIs• Paging & hard limits
Don’t stress!• Super-easy paging• Transparent throttling• Intelligent front-end
scm-gitstash-spi             webappstash-api        bundled pluginsscm-git          3rd party plugins
What is Git?• Powerful distributed versioned  storage system• Stash as a platform? • History management • Collaboration (b...
scm-git• Low level git commands• Easy process handling• Typesafe builders• Flexibility to create new commands
Example: git-notes in Stashhttp://tinyurl.com/stashlas-camp
git-notes in Stash GitNotesService ShowNote            ShowNote                                   ScmClientExitHandler    ...
git-notes in Stash    GitNotes                       git-notes ContextProvider                   web-panel GitNotesService...
naughty!
naughty!• Invoking Git on the request thread
naughty!• Invoking Git on the request thread• Failing to ask for a resource ticket
Thanks!http://tinyurl.com/stashlas-camp
Tour de Stash, AtlasCamp US 2012
Tour de Stash, AtlasCamp US 2012
Tour de Stash, AtlasCamp US 2012
Tour de Stash, AtlasCamp US 2012
Tour de Stash, AtlasCamp US 2012
Tour de Stash, AtlasCamp US 2012
Upcoming SlideShare
Loading in...5
×

Tour de Stash, AtlasCamp US 2012

1,190

Published on

Jens Schumacher, Product Manager & Tim Pettersen, Development Team Lead

Come and learn all about building plugins for Atlassian's shiny new product: Stash! Large amounts of Stash's functionality (including our SSH and HTTP hosting, our JIRA integration and the entire REST API) comes entirely from bundled plugins. This has driven a rich, clearly defined API and SPI and a strong commitment to backwards compatibility. Stash has been built from the ground up with plugins and plugin developers in mind. In this talk we'll inspire you with a broad look at what's available in the Stash API and SPI, as well as a peek at our low-level SCM API which provides a clean way to to interface directly with your repositories using Git. During the talk we'll be using lots of code examples and implementing a small plugin that shows off different facets of Stash's API, SPI and SCM API.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,190
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Tour de Stash, AtlasCamp US 2012

    1. 1. Jens Schumacher Jay
    2. 2. Since Stash 1.0...
    3. 3. Since Stash 1.0...141days
    4. 4. Since Stash 1.0...141days 2 releases everyks one 7 wee
    5. 5. Since Stash 1.0...141days 2 releases everyks one 7 wee 10 add-ons the Marketplace in
    6. 6. Since Stash 1.0...141days 2 releases everyks one 7 wee 10 add-ons the Marketplace in
    7. 7. Since Stash 1.0...141days 2 releases everyks one 7 wee 10 add-ons the Marketplace in
    8. 8. 1000+customers
    9. 9. Stash 1.0 - 1.2
    10. 10. Enterprise Focus Security & Access Control Visibility Integration
    11. 11. Permissions
    12. 12. Databases
    13. 13. End-User Features
    14. 14. Stash 1.3
    15. 15. Pull Requests
    16. 16. What is a Pull Request? `
    17. 17. What is a Pull Request? ` `
    18. 18. Pull Requests
    19. 19. Pull Requests
    20. 20. Pull Requests
    21. 21. Pull Requests
    22. 22. Pull Requests
    23. 23. Pull Requests
    24. 24. Pull Requests
    25. 25. Pull Requests
    26. 26. Stash 1.4
    27. 27. Pull Requests
    28. 28. Pull Requests
    29. 29. Pull Requests
    30. 30. Branch Permissions
    31. 31. Scale
    32. 32. 500+
    33. 33. NextTim Pettersen
    34. 34. Tour de StashTim Pettersen, Atlassian
    35. 35. What is Stash? MyRepo.git
    36. 36. What is Stash?Git Hosting SSH MyRepo.git HTTP
    37. 37. What is Stash?Git Hosting Browsing SSH Web UI MyRepo.git HTTP REST
    38. 38. What is Stash?Git Hosting Browsing SSH Web UI MyRepo.git HTTP REST Integration Commit Hooks Events
    39. 39. What is Stash?Git Hosting Browsing SSH Web UI MyRepo.git HTTP REST Integration Code Changes Commit Hooks Pull Requests Events
    40. 40. Ideas?
    41. 41. Plugin ideas?• Toolchain integration REST • Issue tracking Commit Hooks • Continuous Integration Events • IDEs
    42. 42. Plugin ideas?• Reporting • Metrics Web UI • Static analysis• File Rendering • Business: PDF, DOC, XLS etc. • Specialist: 3DS, OBJ, WAV, MOV etc.
    43. 43. Plugin ideas?• Release management Events• Code ‘bots’ Pull Requests• Commit Hooks • Auto-deployment Commit Hooks • Pre-commit validation
    44. 44. Plugin ideas?• Release management Events• Code ‘bots’ Pull Requests• Commit Hooks • Auto-deployment Commit Hooks • Pre-commit validation
    45. 45. Built on plugins, for pluginsstash-spi webappstash-api bundled pluginsscm-git 3rd party plugins
    46. 46. First Class Citizens• Features as plugins: driving continual expansion of stash-api & stash-spi• @Deprecated - no breaking changes between releases• Puppy-fooding!
    47. 47. DON’T PANIC!• Atlassian Plugins 2• SDK Support• Atlassian Platform• Velocity support (but prefer Soy)• New Atlassian PDL
    48. 48. DON’T PANIC!• Atlassian Plugins 2• SDK Support• Atlassian Platform• Velocity support (but prefer Soy)• New Atlassian PDL
    49. 49. stash-spistash-spi webappstash-api bundled plugins scm-git 3rd party plugins
    50. 50. stash-spi• Changeset indexing• SSH end-points• SCM request checks• Form fragments
    51. 51. Example:Beer O’Clock Pluginhttp://tinyurl.com/stashlas-camp
    52. 52. Beer O’Clock Check git push PermissionCheck LicenseCheck ThrottleCheck repo.git
    53. 53. Beer O’Clock Check git push PermissionCheck LicenseCheck ThrottleCheck BeerOClockCheck repo.git
    54. 54. Beer O’Clock Check
    55. 55. stash-apistash-spi webappstash-api bundled plugins scm-git 3rd party plugins
    56. 56. stash-api• Services, services, services... • server admin • repositories & projects • content & history • users & groups • permissioning• 1:1 mapping with REST API
    57. 57. stash-api• Events galore! • Administration - users, groups, permissions, server config • Repositories & projects • Hosting - pushes, pulls, throttling • Sync & async
    58. 58. Example: Load Monitorhttp://tinyurl.com/stashlas-camp
    59. 59. Load MonitorLoadMonitorListener MailService
    60. 60. Load Monitor LoadMonitorLoadMonitorListener FormFragment MailService PluginSettingsFactory
    61. 61. stash-api• RepositoryService repository CRUD (incl. forks!)• RepositoryMetadataService branches & tags• HistoryService file changes & changesets• ContentService diffs, content, blame
    62. 62. Scale, scale, scale!• Throttling• Streamy APIs• Paging & hard limits
    63. 63. Don’t stress!• Super-easy paging• Transparent throttling• Intelligent front-end
    64. 64. scm-gitstash-spi webappstash-api bundled pluginsscm-git 3rd party plugins
    65. 65. What is Git?• Powerful distributed versioned storage system• Stash as a platform? • History management • Collaboration (branching/merging)
    66. 66. scm-git• Low level git commands• Easy process handling• Typesafe builders• Flexibility to create new commands
    67. 67. Example: git-notes in Stashhttp://tinyurl.com/stashlas-camp
    68. 68. git-notes in Stash GitNotesService ShowNote ShowNote ScmClientExitHandler OutputHandler
    69. 69. git-notes in Stash GitNotes git-notes ContextProvider web-panel GitNotesService ShowNote ShowNote ScmClientExitHandler OutputHandler
    70. 70. naughty!
    71. 71. naughty!• Invoking Git on the request thread
    72. 72. naughty!• Invoking Git on the request thread• Failing to ask for a resource ticket
    73. 73. Thanks!http://tinyurl.com/stashlas-camp
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×