feat(post): add initial version of command
This commit is contained in:
		
							parent
							
								
									0ee9cc31e9
								
							
						
					
					
						commit
						17ad82bfbc
					
				
							
								
								
									
										51
									
								
								src/post.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/post.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					'use strict'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var exec = require('child_process').exec
 | 
				
			||||||
 | 
					var readFile = require('fs').readFileSync
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var changelog = require('conventional-changelog')
 | 
				
			||||||
 | 
					var GitHubApi = require('github')
 | 
				
			||||||
 | 
					var parse = require('parse-github-repo-url')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var github = new GitHubApi({
 | 
				
			||||||
 | 
					  version: '3.0.0'
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = function (options, cb) {
 | 
				
			||||||
 | 
					  var pkg = JSON.parse(readFile('./package.json'))
 | 
				
			||||||
 | 
					  var repository = pkg.repository ? pkg.repository.url : null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!repository) return cb('Package must have a repository')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  changelog({
 | 
				
			||||||
 | 
					    version: pkg.version,
 | 
				
			||||||
 | 
					    repository: repository,
 | 
				
			||||||
 | 
					    file: false
 | 
				
			||||||
 | 
					  }, function(err, log) {
 | 
				
			||||||
 | 
					    if (err) return cb(err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    exec('git rev-parse HEAD', function(err, hash) {
 | 
				
			||||||
 | 
					      if (err) return cb(err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      var ghRepo = parse(repository)
 | 
				
			||||||
 | 
					      var release = {
 | 
				
			||||||
 | 
					        owner: ghRepo[0],
 | 
				
			||||||
 | 
					        repo: ghRepo[1],
 | 
				
			||||||
 | 
					        tag_name: 'v' + pkg.version,
 | 
				
			||||||
 | 
					        target_commitish: hash,
 | 
				
			||||||
 | 
					        draft: options.debug,
 | 
				
			||||||
 | 
					        body: log
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      github.authenticate({
 | 
				
			||||||
 | 
					        type: 'oauth',
 | 
				
			||||||
 | 
					        token: options.token
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      github.releases.createRelease(release, function(err) {
 | 
				
			||||||
 | 
					        if (err) return cb(err)
 | 
				
			||||||
 | 
					        cb(null, true)
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user