Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DIW 2016: Github Project Scaffolding with Googl...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
dirtystylus
November 15, 2016
Technology
270
0
Share
DIW 2016: Github Project Scaffolding with Google Sheets and Zenhub
Talk given at Delaware Innovation Week. November 15, 2016
dirtystylus
November 15, 2016
More Decks by dirtystylus
See All by dirtystylus
Rapid Data APIs using GraphQL and Drupal
mllobrera
0
73
Decoupled Drupal Days 2018: Drupal Unhitched
mllobrera
0
370
Drupaldelphia 2018: Drupal Unhitched: The CMS in Decoupled Architectures
mllobrera
0
300
Drupalcon 2017: Pattern Language: Pattern Libraries in the Wild
mllobrera
0
510
Philly Tech Week 2016: Decoupled Development: Feeding Your Application with Off-the-Shelf Tools
mllobrera
0
190
Drupal Beyond the Browser: Using Drupal to Power Apps and Touchscreens
mllobrera
0
400
Decoupled Development with WordPress JSON APIs
mllobrera
0
830
Drupaldelphia 2014: Progressive Enhancement in Drupal 7, Using Ajax-Include Patterns
mllobrera
0
200
Drupaldelphia 2013 - Tyler School of Art: A Case Study in User-Centered Decision-Making
mllobrera
0
1.1k
Other Decks in Technology
See All in Technology
情シスがMCP環境導入時に打ちのめされる認可の崖
oidfj
0
440
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
3
770
TypeScript で Platform SDK を作る技術
toiroakr
1
260
JavaScript実装の自作プログラミング言語をTypeScript実装に移行した話
keisukeikeda
1
150
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
410
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
0
200
Amazon CloudFrontにおけるAIボットアクセス制御のポイント
kizawa2020
4
260
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
160
「使われるデータ基盤」を目指してデータアナリストとワークショップをやった話
jackojacko_
2
850
freee-mcpを Local→Remote で出してわかった MCP認可実装のリアル
terara
3
620
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
1
550
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
180
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Visualization
eitanlees
151
17k
Balancing Empowerment & Direction
lara
6
1.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
150
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
180
Abbi's Birthday
coloredviolet
2
7.7k
Leo the Paperboy
mayatellez
7
1.8k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
360
Transcript
Github Project Scaffolding with Google Sheets and Zenhub Delaware Innovation
Week November 15, 2016
Hi. I’m Mark. Director of Technology, Bluecadet @dirtystylus
Let’s talk about workflow. Beginnings, and endings.
Clues from cooking • Recipes—what is the base set of
things you repeat for success? • Tasks for setting up a project • Tasks for launching a project • Manual entry = time
Interlude: Bench Time @ Bluecadet • List of pre-approved internal
agency projects • Folks can chip away at things they’re excited about • Some examples: Electron for web-based apps. Unity 3D in Oculus Rift.
Addressing the pain points at the start and end.
Ingredients • Listening • Empathy • Github API • Python
• PyGithub (https://github.com/PyGithub/PyGithub)
Automation to reduce friction.
Step One: Create an Issue
#!/usr/bin/python import sys sys.path.append("./PyGithub"); from github import Github import getpass
# Authenticate to github.com and create PyGithub "Github" object username
= raw_input("Github username: ") pw = getpass.getpass() g = Github(username, pw) repository = "dirtystylus/pygithub-sandbox" repo = g.get_repo(repository) issue = repo.create_issue("Test issue", "This is a test issue.")
Step Two: Labels and Milestones
Prerequisites • Create Labels and Milestones first • Label is
String • Milestone is Integer • ¯\_(ツ)_/¯
username = raw_input("Github username: ") pw = getpass.getpass() g =
Github(username, pw) user = g.get_user(username) repository = "dirtystylus/pygithub-sandbox" repo = g.get_repo(repository) milestone = repo.get_milestone(1) labels = ["Launch Checklist"] issue = repo.create_issue("Test issue", "This is a test issue.", user, milestone, labels)
Step Three: CSV
Prerequisites • CSV file with a column of Issue names
• csv, time libraries
username = raw_input("Github username: ") pw = getpass.getpass() g =
Github(username, pw) user = g.get_user(username) repository = "dirtystylus/pygithub-sandbox" repo = g.get_repo(repository) milestone = repo.get_milestone(1) labels = ["Launch Checklist"] csv_file = "launch-checklist.csv"
with open(csv_file, 'rb') as f: reader = csv.reader(f) for row
in reader: issue = repo.create_issue("Launch Checklist: " + row[0], row[0], user, milestone, labels) print "Created issue Launch Checklist: " + row[0] time.sleep(2)
Step Four: Google Sheet
Living Documents • Launch Checklist Template item examples: ◦ Enable
caching ◦ Performance Tests (Webpagetest) ◦ Test 404 page ◦ Test 301 redirects
Prerequisites • Google Quick Start: https://developers.google.com/sheets/quickstart/python • client_secret.json • google-api-python-client
library
None
None
def get_credentials(): # Google OAuth stuff here def main(): #
Pretty much the same as before, except now we’re pulling in the spreadsheet from Google’s Sheets API and then looping through it
Example Time
None
None
None
None
None
None
Sudden-death overtime
Github + Zenhub • Zenhub (https://www.zenhub.com) • Lightweight kanban-style project
boards • Estimates, burndowns
Zenhub Board Setup • Backlog (sometimes we set up future
pipelines to reduce volume) • Ready • In Progress • Blocked • Done
None
Thank you. Mark Llobrera (@dirtystylus) Slides: https://speakerdeck.com/mllobrera/diw-2016-github-project-scaffolding-with-google-sheets-and-zenh ub Repo: https://github.com/dirtystylus/diw-2016