Using Twitter as a build status board

Twitter is an ideal medium for creating a build board. Everyone has an account, team members can elect how and when they'd like to be informed, it works on a multitude of devices for the BYOD crowd.

You need a Twitter account, and a Twitter development account so that you can define an application and request the necessary Keys and Tokens.

But once you have this information, you're good to send your first tweets

Tweet Deck Illustration




TweetDeck employed as an 'activity board'



Function Set-TwitterStatus
{
    param (
        [string]$tweet)

    [Reflection.Assembly]::LoadWithPartialName("System.Security")  | Out-Null
    [Reflection.Assembly]::LoadWithPartialName("System.Net")  | Out-Null
  
    $status = [System.Uri]::EscapeDataString($tweet);  
    $oauth_consumer_key = "";  
    $oauth_consumer_secret = "";  
    $oauth_token = "";  
    $oauth_token_secret = "";  
    $oauth_nonce = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.DateTime]::Now.Ticks.ToString()));  

    $ts = [System.DateTime]::UtcNow - [System.DateTime]::ParseExact("01/01/1970", "dd/MM/yyyy", $null).ToUniversalTime();  
    $oauth_timestamp = [System.Convert]::ToInt64($ts.TotalSeconds).ToString();  
  
    $signature = "POST&";  
    $signature += [System.Uri]::EscapeDataString("https://api.twitter.com/1.1/statuses/update.json") + "&";  
    $signature += [System.Uri]::EscapeDataString("oauth_consumer_key=" + $oauth_consumer_key + "&");  
    $signature += [System.Uri]::EscapeDataString("oauth_nonce=" + $oauth_nonce + "&");   
    $signature += [System.Uri]::EscapeDataString("oauth_signature_method=HMAC-SHA1&");  
    $signature += [System.Uri]::EscapeDataString("oauth_timestamp=" + $oauth_timestamp + "&");  
    $signature += [System.Uri]::EscapeDataString("oauth_token=" + $oauth_token + "&");  
    $signature += [System.Uri]::EscapeDataString("oauth_version=1.0&");  
    $signature += [System.Uri]::EscapeDataString("status=" + $status);  
  
    $signature_key = [System.Uri]::EscapeDataString($oauth_consumer_secret) + "&" + [System.Uri]::EscapeDataString($oauth_token_secret);  
  
    $hmacsha1 = new-object System.Security.Cryptography.HMACSHA1;  
    $hmacsha1.Key = [System.Text.Encoding]::ASCII.GetBytes($signature_key);  
    $oauth_signature = [System.Convert]::ToBase64String($hmacsha1.ComputeHash([System.Text.Encoding]::ASCII.GetBytes($signature)));  
  
    $oauth_authorization = 'OAuth ';  
    $oauth_authorization += 'oauth_consumer_key="' + [System.Uri]::EscapeDataString($oauth_consumer_key) + '",';  
    $oauth_authorization += 'oauth_nonce="' + [System.Uri]::EscapeDataString($oauth_nonce) + '",';  
    $oauth_authorization += 'oauth_signature="' + [System.Uri]::EscapeDataString($oauth_signature) + '",';  
    $oauth_authorization += 'oauth_signature_method="HMAC-SHA1",'  
    $oauth_authorization += 'oauth_timestamp="' + [System.Uri]::EscapeDataString($oauth_timestamp) + '",'  
    $oauth_authorization += 'oauth_token="' + [System.Uri]::EscapeDataString($oauth_token) + '",';  
    $oauth_authorization += 'oauth_version="1.0"';  



    $post_body = [System.Text.Encoding]::ASCII.GetBytes("status=" + $status);   
    [System.Net.HttpWebRequest] $request = [System.Net.WebRequest]::Create("https://api.twitter.com/1.1/statuses/update.json");  
    $request.Method = "POST";  
    $request.Headers.Add("Authorization", $oauth_authorization);  
    $request.ContentType = "application/x-www-form-urlencoded";  
    $body = $request.GetRequestStream();  
    $body.write($post_body, 0, $post_body.length);  
    $body.flush();  
    $body.close();  
    $response = $request.GetResponse();
}

Then, you're good to create tweets to suit your needs.

Set-TwitterStatus "Build 1000 has completed with 0 errors"
Set-TwitterStatus "Build 1000 was deploy to OAT in 1m:55s"

Comments

  1. SEGA MegaDrive and Genesis Classics Review - The King Of
    SEGA has been enjoying a massive collection of Mega 카지노 사이트 Drive & Genesis Classics on Steam, and yes, kirill-kondrashin some will. From the PlayStation Game Rating: 3 · ‎Review by Andrew Webster

    ReplyDelete
  2. Wild Howl is the best free casino sport you can find on each on-line and physical casino. If you have an thecasinosource.com interest in a problem, try taking part in} King of the North and see when you can win. Pokies may be performed from the browser on the mobile in case it supports HTML5 software program. Bringing you to mind that Flash-based video games not work as Flash player was disabled by Adobe completely. Free spins permit you to play a gratis pastime with elevated image multipliers.

    ReplyDelete

Post a Comment