blob: 12fec33f513c8ae3b1334a6d7b658cc746d9a40d [file] [log] [blame]
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="lang:clipboard.copy" content="Copy to clipboard">
<meta name="lang:clipboard.copied" content="Copied to clipboard">
<meta name="lang:search.language" content="en">
<meta name="lang:search.pipeline.stopwords" content="True">
<meta name="lang:search.pipeline.trimmer" content="True">
<meta name="lang:search.result.none" content="No matching documents">
<meta name="lang:search.result.one" content="1 matching document">
<meta name="lang:search.result.other" content="# matching documents">
<meta name="lang:search.tokenizer" content="[\s\-]+">
<link rel="shortcut icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.4.3">
<title>Using `dippy-bird` - Team Bliss</title>
<link rel="stylesheet" href="../../assets/stylesheets/application.30686662.css">
<script src="../../assets/javascripts/modernizr.74668098.js"></script>
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono&display=fallback">
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
<link rel="stylesheet" href="../../assets/fonts/material-icons.css">
</head>
<body dir="ltr">
<svg class="md-svg">
<defs>
</defs>
</svg>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#using-dippy-bird" tabindex="1" class="md-skip">
Skip to content
</a>
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="../.." title="Team Bliss" class="md-header-nav__button md-logo">
<i class="md-icon"></i>
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
Team Bliss
</span>
<span class="md-header-nav__topic">
Using `dippy-bird`
</span>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<label class="md-icon md-search__icon" for="__search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
&#xE5CD;
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="result">
<div class="md-search-result__meta">
Type to start searching
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container">
<main class="md-main" role="main">
<div class="md-main__inner md-grid" data-md-component="container">
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="../.." title="Team Bliss" class="md-nav__button md-logo">
<i class="md-icon"></i>
</a>
Team Bliss
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." title="Home" class="md-nav__link">
Home
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2">
<label class="md-nav__link" for="nav-2">
Bliss OS
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-2">
Bliss OS
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../Bliss OS/" title="Index" class="md-nav__link">
Index
</a>
</li>
<li class="md-nav__item">
<a href="../../Bliss OS/build-guide/" title="Build Guide" class="md-nav__link">
Build Guide
</a>
</li>
<li class="md-nav__item">
<a href="../../Bliss OS/extras/" title="Extras" class="md-nav__link">
Extras
</a>
</li>
<li class="md-nav__item">
<a href="../../Bliss OS/installation-guide/" title="Installation Guide" class="md-nav__link">
Installation Guide
</a>
</li>
<li class="md-nav__item">
<a href="../../Bliss OS/troubleshooting/" title="Troubleshooting" class="md-nav__link">
Troubleshooting
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
<label class="md-nav__link" for="nav-3">
BlissRoms
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-3">
BlissRoms
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../BlissRoms/" title="Index" class="md-nav__link">
Index
</a>
</li>
<li class="md-nav__item">
<a href="../../BlissRoms/build-guide/" title="Build Guide" class="md-nav__link">
Build Guide
</a>
</li>
<li class="md-nav__item">
<a href="../../BlissRoms/build-tips/" title="Build Tips" class="md-nav__link">
Build Tips
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4" checked>
<label class="md-nav__link" for="nav-4">
Common
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-4">
Common
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" title="Index" class="md-nav__link">
Index
</a>
</li>
<li class="md-nav__item">
<a href="../git-started/" title="Git Started" class="md-nav__link">
Git Started
</a>
</li>
<li class="md-nav__item">
<a href="../maintaining-proper-authorship/" title="Maintaining proper authorship" class="md-nav__link">
Maintaining proper authorship
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Using `dippy-bird`
</label>
<a href="./" title="Using `dippy-bird`" class="md-nav__link md-nav__link--active">
Using `dippy-bird`
</a>
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#installation" class="md-nav__link">
Installation
</a>
</li>
<li class="md-nav__item">
<a href="#usage" class="md-nav__link">
Usage
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#reviewing-commits-code-review-only" class="md-nav__link">
Reviewing commits (code-review only)
</a>
</li>
<li class="md-nav__item">
<a href="#reviewing-commits-code-review-and-verification" class="md-nav__link">
Reviewing commits (code-review and verification)
</a>
</li>
<li class="md-nav__item">
<a href="#submitting-commits-admins-only" class="md-nav__link">
Submitting commits (admins only)
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
<label class="md-nav__link" for="nav-5">
Infrastructure
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-5">
Infrastructure
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../infrastructure/" title="Index" class="md-nav__link">
Index
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#installation" class="md-nav__link">
Installation
</a>
</li>
<li class="md-nav__item">
<a href="#usage" class="md-nav__link">
Usage
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#reviewing-commits-code-review-only" class="md-nav__link">
Reviewing commits (code-review only)
</a>
</li>
<li class="md-nav__item">
<a href="#reviewing-commits-code-review-and-verification" class="md-nav__link">
Reviewing commits (code-review and verification)
</a>
</li>
<li class="md-nav__item">
<a href="#submitting-commits-admins-only" class="md-nav__link">
Submitting commits (admins only)
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset">
<h1 id="using-dippy-bird">Using <code>dippy-bird</code></h1>
<p>If you want to review commits quickly on our Gerrit, <a href="https://github.com/wikimedia/mediawiki-tools-dippybird/blob/master/dippy-bird.php">use the <code>dippy-bird.php</code> script created by the WikiMedia foundation.</a></p>
<p>Thanks to Vaughn Newman (@rwaterspf1) for the original instructions!</p>
<h2 id="installation">Installation</h2>
<p>Make sure you have PHP installed.</p>
<p><a href="https://github.com/wikimedia/mediawiki-tools-dippybird/blob/master/dippy-bird.php">Download the script</a> and put it in an easily-accessible place.</p>
<h2 id="usage">Usage</h2>
<h3 id="reviewing-commits-code-review-only">Reviewing commits (code-review only)</h3>
<p>To review commits, run:</p>
<pre><code>php dippy-bird.php --username=ideaman924 --server=review.blissroms.com --port=29418 -q="status:open topic:test" -a=review --review=+1 --verify=0
</code></pre>
<p>This will review all commits that match the following criteria:</p>
<ul>
<li>Is open for review (not closed, merged, or abandoned)</li>
<li>Has the topic <code>test</code></li>
</ul>
<p>And will apply +1 code-review and no verify, indicating that you have a successful build with the commits included.</p>
<h3 id="reviewing-commits-code-review-and-verification">Reviewing commits (code-review and verification)</h3>
<p>To review commits with verification, run:</p>
<pre><code>php dippy-bird.php --username=ideaman924 --server=review.blissroms.com --port=29418 -q="status:open topic:test" -a=review --review=+2 --verify=+1
</code></pre>
<p>This will review all commits that match the following criteria:</p>
<ul>
<li>Is open for review (not closed, merged, or abandoned)</li>
<li>Has the topic <code>test</code></li>
</ul>
<p>And will apply +2 code-review and +1 verify, indicating that you have tested the commits on an actual device. This means that the commits are now ready for merging.</p>
<h3 id="submitting-commits-admins-only">Submitting commits (admins only)</h3>
<p>To submit commits that are already reviewed, run:</p>
<pre><code>php dippy-bird.php --username=jackeagle --server=review.blissroms.com --port=29418 -q="status:open topic:test" -a=submit
</code></pre>
<p>This will submit all commits that match the following criteria:</p>
<ul>
<li>Is open for review (not closed, merged, or abandoned)</li>
<li>Has the topic <code>test</code></li>
</ul>
<p>And will push them to our main GitHub. If the commits are not reviewed yet, or if they do not have the verified tag, this command will fail for the patchsets that are not reviewed yet. Other commits will still be merged.</p>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid">
<a href="../maintaining-proper-authorship/" title="Maintaining proper authorship" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
</div>
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Maintaining proper authorship
</span>
</div>
</a>
<a href="../../infrastructure/" title="Index" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
Index
</span>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
</div>
</a>
</nav>
</div>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
powered by
<a href="https://www.mkdocs.org">MkDocs</a>
and
<a href="https://squidfunk.github.io/mkdocs-material/">
Material for MkDocs</a>
</div>
</div>
</div>
</footer>
</div>
<script src="../../assets/javascripts/application.ac79c3b0.js"></script>
<script>app.initialize({version:"1.0.4",url:{base:"../.."}})</script>
</body>
</html>