@@ -5,7 +5,7 @@ const chalk = require('chalk');
55const execa = require ( 'execa' ) ;
66const inquirer = require ( 'inquirer' ) ;
77
8- const validate = require ( '../utils /validate' ) ;
8+ const validate = require ( './validate' ) ;
99
1010// Global reference to the GitHub username.
1111let GHUserName ;
@@ -27,8 +27,26 @@ const initializeGHWorkFlow = async () => {
2727 // Holding global reference to the GitHub username.
2828 GHUserName = userName ;
2929
30- // Check if the remote repository already exists and act accordingly.
31- await checkIfRepositoryExists ( ) ;
30+ // Check if it is a valid username
31+ if ( ! ( await checkIfValidUser ( ) ) ) {
32+ await initializeGHWorkFlow ( ) ;
33+ }
34+ } ;
35+
36+ /**
37+ * Checks if the remote repository exists
38+ *
39+ * @returns {Promise<boolean> }
40+ */
41+
42+ const checkIfValidUser = async ( ) => {
43+ const API_URL = `https://api.github.com/users/${ GHUserName } ` ;
44+ try {
45+ await axios . get ( API_URL ) ;
46+ return true ;
47+ } catch ( err ) {
48+ return false ;
49+ }
3250} ;
3351
3452/**
@@ -102,7 +120,7 @@ const configureLocalRepo = async () => {
102120 const repoUrl = `https://github.com/${ GHUserName } /teachcode-solutions` ;
103121
104122 // Initialize an empty git repo.
105- await execa ( 'git' , [ ' init'] ) ;
123+ await execa . shell ( 'git init' ) ;
106124
107125 // Set the remote url.
108126 await execa . shell ( `git remote add origin ${ repoUrl } ` ) ;
0 commit comments