changelog.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. var changelog = require( "changelogplease" );
  2. var gittags = require( "git-tags" ).get( function( error, tags ) {
  3. if ( error ) {
  4. throw error
  5. }
  6. console.log( tags[ 1 ] + ".." + tags[ 0 ] );
  7. var exclude = [ "Merge", "Whitespace", "Fixup", "Cleanup", "Formatting", "Ignore" ];
  8. changelog( {
  9. ticketUrl: "https://github.com/hammerjs/hammer.js/issues/{id}",
  10. commitUrl: "https://github.com/hammerjs/hammerjs/commit/{id}",
  11. sort: false,
  12. repo: "./",
  13. committish: tags[ 1 ] + ".." + tags[ 0 ]
  14. }, function( error, log ) {
  15. if ( error ) {
  16. throw error;
  17. }
  18. log = parseLog( log );
  19. console.log( log );
  20. } );
  21. function parseLog( log ) {
  22. var lines = log.split( "\n" );
  23. var newLog = [];
  24. var log = [];
  25. var currentComponent;
  26. lines.shift();
  27. lines.forEach( function( line ) {
  28. var newLine = parseLine( line );
  29. if ( newLine ) {
  30. log.push( line );
  31. }
  32. } );
  33. var log = log.join( "\n" );
  34. return log.replace( /\*/g, "-" ).replace( /__TICKETREF__,/g, "" );
  35. }
  36. function parseLine( line ) {
  37. var parts = getParts( line );
  38. if ( exclude.indexOf( parts.component ) > -1 ) {
  39. return false;
  40. }
  41. return parts;
  42. }
  43. function getParts( line ) {
  44. var parts = line.split( ":" );
  45. var component = "";
  46. var message;
  47. var commits = line.match( /\{\{([A-Za-z0-9 ]){0,99}\}\}/ )
  48. if ( parts.length > 1 && parts[ 0 ].length <= 20 ) {
  49. component = parts[ 0 ];
  50. parts.shift();
  51. message = parts.join( ":" );
  52. } else {
  53. parts = line.split( " " );
  54. component = parts[ 1 ];
  55. parts.shift();
  56. message = parts.join( " " );
  57. }
  58. if ( component ) {
  59. component = component.replace( /\* |,/, "" );
  60. }
  61. return {
  62. component: component,
  63. message: message
  64. };
  65. }
  66. } );