Your SlideShare is downloading. ×
Tour de Stash, AtlasCamp US 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tour de Stash, AtlasCamp US 2012

1,088

Published on

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

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,088
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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
  • Transcript

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

    ×