@@ -19,6 +19,7 @@ import { assign } from './assign'
1919import { closeHandler } from './close'
2020import { openHandler } from './open'
2121import { search } from './search'
22+ import { lockHandler } from './lock'
2223
2324// -- Constants ------------------------------------------------------------------------------------
2425export const testing = process . env . NODE_ENV === 'testing'
@@ -40,6 +41,8 @@ export const DETAILS = {
4041 labels : [ String ] ,
4142 list : Boolean ,
4243 link : Boolean ,
44+ lock : Boolean ,
45+ 'lock-reason' : [ 'off-topic' , 'too heated' , 'resolved' , 'spam' ] ,
4346 message : String ,
4447 milestone : [ Number , String ] ,
4548 'no-milestone' : Boolean ,
@@ -97,7 +100,7 @@ export async function run(options, done) {
97100 const payload = draft . argv . remain && draft . argv . remain . slice ( 1 )
98101
99102 if ( payload && payload [ 0 ] ) {
100- if ( / ^ \d + $ / . test ( payload [ 0 ] ) ) {
103+ if ( options . argv . original . length === 2 ) {
101104 draft . browser = true
102105 draft . number = payload [ 0 ]
103106 } else {
@@ -161,6 +164,14 @@ export async function run(options, done) {
161164 } catch ( err ) {
162165 throw new Error ( `Error listing issues\n${ err } ` )
163166 }
167+ } else if ( options . lock ) {
168+ logger . log ( `Locking issue ${ options . number } on ${ options . userRepo } ` )
169+
170+ try {
171+ await lockHandler ( options )
172+ } catch ( err ) {
173+ throw new Error ( `Error locking issue\n${ err } ` )
174+ }
164175 } else if ( options . new ) {
165176 await beforeHooks ( 'issue.new' , { options } )
166177
0 commit comments