Github: Add Releases Button

Adds a releases button

As of 2014-10-12. See the latest version.

  1. // ==UserScript==
  2. // @name Github: Add Releases Button
  3. // @namespace https://github.com/phracker
  4. // @version 0.1.0
  5. // @description Adds a releases button
  6. // @include http*://*github.com/*/*
  7. // ==/UserScript==
  8.  
  9. // var owfn = document.getElementsByClassName('only-with-full-nav').item(0);
  10.  
  11. // var ur = 'hubc ' + document.URL.replace('https://github.com/','').replace('.git','').replace(/\/network$/,'').replace(/\/wiki$/,'').replace(/\/pull\/.*$/,'').replace(/\/commit\/.*$/,'').replace(/\/$/,'');
  12. // // var ur = 'hubc ' + document.URL.replace(/(.*)github.com\/(.+)\/(.+)\/(.*)/,/hubc $2\/$3/);
  13. // console.log(ur);
  14. // var inner = '<h3><span class="text-emphasized">hubc</span> clone command</h3><div class="input-group"><input type="text" class="input-mini input-monospace js-url-field" value="' + ur + '" readonly="readonly"><span class="input-group-button"><button aria-label="Copy to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="'+ur+'" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button></span></div>';
  15. // var d = document.createElement('div');
  16. // d.setAttribute("class","clone-url");
  17. // d.setAttribute("style","display:inline;");
  18. // d.innerHTML = inner;
  19. // owfn.appendChild(d);
  20.  
  21. var releasesButton = document.evaluate('/html/body/div[1]/div[3]/div[3]/div[1]/div[1]/div[1]/div/ul[1]/li[4]',document,null,9,null).singleNodeValue.cloneNode(true);
  22. releasesButton.setAttribute('aria-label','Releases');
  23. var a = releasesButton.getElementsByTagName('a').item(0);
  24. a.href = a.href.replace(/wiki$/,'releases');
  25. a.setAttribute('aria-label','Releases');
  26. a.setAttribute('data-hotkey','g r');
  27. a.setAttribute('data-selected-links',a.getAttribute('data-selected-links').replace('repo_wiki','repo_releases').replace(/wiki$/,'releases'));
  28. a.getElementsByClassName('full-word').item(0).textContent = 'Releases';
  29. a.getElementsByClassName('octicon').item(0).class = 'octicon octicon-rocket';
  30.  
  31. var menu = document.evaluate('/html/body/div[1]/div[3]/div[3]/div[1]/div[1]/div[1]/div/ul[1]',document,null,9,null).singleNodeValue;
  32. menu.appendChild(releasesButton);