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

Tour de Stash, AtlasCamp US 2012

on

  • 1,555 views

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.

Statistics

Views

Total Views
1,555
Views on SlideShare
1,322
Embed Views
233

Actions

Likes
0
Downloads
13
Comments
0

6 Embeds 233

http://www.atlassian.com 188
http://lanyrd.com 19
http://magnolia-staging.private.atlassian.com 15
https://www.atlassian.com 9
https://wacdev.internal.atlassian.com 1
https://fr.atlassian.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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 Tour de Stash, AtlasCamp US 2012 Presentation Transcript

  • 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 REST
  • What is Stash?Git Hosting Browsing SSH Web UI MyRepo.git HTTP REST Integration Commit Hooks Events
  • What is Stash?Git Hosting Browsing SSH Web UI MyRepo.git HTTP REST Integration Code Changes Commit Hooks Pull Requests Events
  • Ideas?
  • Plugin ideas?• Toolchain integration REST • Issue tracking Commit Hooks • Continuous Integration Events • IDEs
  • Plugin ideas?• Reporting • Metrics Web UI • Static analysis• File Rendering • Business: PDF, DOC, XLS etc. • Specialist: 3DS, OBJ, WAV, MOV etc.
  • Plugin ideas?• Release management Events• Code ‘bots’ Pull Requests• Commit Hooks • Auto-deployment Commit Hooks • Pre-commit validation
  • Plugin ideas?• Release management Events• Code ‘bots’ Pull Requests• Commit Hooks • Auto-deployment Commit Hooks • Pre-commit validation
  • 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 breaking changes between releases• Puppy-fooding!
  • 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 ThrottleCheck repo.git
  • Beer O’Clock Check git push PermissionCheck LicenseCheck ThrottleCheck BeerOClockCheck repo.git
  • 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 & groups • permissioning• 1:1 mapping with REST API
  • stash-api• Events galore! • Administration - users, groups, permissions, server config • Repositories & projects • Hosting - pushes, pulls, throttling • Sync & async
  • Example: Load Monitorhttp://tinyurl.com/stashlas-camp
  • Load MonitorLoadMonitorListener MailService
  • Load Monitor LoadMonitorLoadMonitorListener FormFragment MailService PluginSettingsFactory
  • stash-api• RepositoryService repository CRUD (incl. forks!)• RepositoryMetadataService branches & tags• HistoryService file changes & changesets• ContentService diffs, content, blame
  • 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 (branching/merging)
  • 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 OutputHandler
  • git-notes in Stash GitNotes git-notes ContextProvider web-panel GitNotesService ShowNote ShowNote ScmClientExitHandler OutputHandler
  • 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