Post on 14-Jan-2017
Wednesday, June 13, 12
Confluence Developer, AtlassianSam Tardif
Building cool shit with Bitbucket’s REST API
Bitbucket as a Platform
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Pic: Not enough time
Wednesday, June 13, 12
Pic: ramp up time
Wednesday, June 13, 12
Wednesday, June 13, 12
REST
Wednesday, June 13, 12
Wednesday, June 13, 12
Bitbucket’s Issue Tracker
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Pic: Card wall
Wednesday, June 13, 12
Bitbucket Cards
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
/api/1.0/oauth/request_token
/api/1.0/oauth/authenticate
/api/1.0/oauth/access_token
User clicks login
Authenticate this person for me plz
Thanks, access tokens plz
Authenticated REST calls /api/1.0/*
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Edit column
Wednesday, June 13, 12
Drag columns
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Versions
Wednesday, June 13, 12
Create a version
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Release a version
Wednesday, June 13, 12
Building It
Wednesday, June 13, 12
http://heroku.com
Wednesday, June 13, 12
Bootstraphttp://twitter.github.com/bootstrap/
Wednesday, June 13, 12
http://jquery.com/
Wednesday, June 13, 12
http://bitbucketjs.bitbucket.org/
Wednesday, June 13, 12
1 var bitbucket_cards = bitbucket.repository( 2 'samtardif', 'bitbucket-cards'); 3 4 bitbucket_cards.issues({ 5 search: 'version=1.0' 6 }, 7 8 function (issues) { 9 $.each(issues, function () {10 // render it11 });12 }13 );
Wednesday, June 13, 12
1 var bitbucket_cards = bitbucket.repository(2 'samtardif', 'bitbucket-cards');3 4 bitbucket_cards.issues(search, callback);5 bitbucket_cards.details(callback);6 bitbucket_cards.branches(callback);7 bitbucket_cards.changesets(callback);8 bitbucket_cards.file('abc123', 'path', callback);9 bitbucket_cards.followers(callback);
Wednesday, June 13, 12
1 @app.route('/proxy/<path:url>', methods=[...])2 def proxy(url):3 client = requests.session(...)4 5 if request.method == 'GET':6 query = '?...'7 response = client.get(API_BASE + url + query)8 9 return response.content
Wednesday, June 13, 12
Sinatra
Wednesday, June 13, 12
Why REST Rocks
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Pic: See how BB behaves as a platform
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
The Future
Wednesday, June 13, 12
Wednesday, June 13, 12
1 <app xmlns="http://bitbucket.org/app-1.0.xsd"> 2 <slug>bbcards</slug> 3 <name>Bitbucket Cards</name> 4 <description>Card wall.</description> 5 <developer>Atlassian</developer> 6 <website>http://www.atlassian.com</website> 7 <repo> 8 <tab key="cwtab" label="Card Wall" 9 url="http://bitbucketcards.com/"/>10 </repo>11 </app>
Wednesday, June 13, 12
Bitbucket Header
Remote App in an iframe
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Excitement!
Wednesday, June 13, 12
$45,00046 Days
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Wednesday, June 13, 12
Thank you!
Wednesday, June 13, 12