[RUBY] Je veux automatiser le processus de la création du projet à la création du dépôt GitHub, Initial Commit à git push avec une seule commande.

introduction

Je pense que Git et GitHub sont devenus des outils indispensables lors du développement,

Créez un répertoire localement, créez un fichier README avec git init, git add ., git commit -m'Initial Commit', accédez à GitHub, créez un référentiel, git remote add origin [email protected]: copiez et collez la partie de hoge / fuga.git, exécutez la commande et git push ~

C'est une série de flux gênants, n'est-ce pas?

Créons maintenant un outil CLI qui les automatise.

Technologie utilisée / environnement requis

Ce référentiel GitHub

Préparation préalable

La structure des répertoires est la suivante. Si vous pouvez installer gem dans l'environnement global sans utiliser Gemfile, vous pouvez simplement utiliser gem install ○○.

[auto_github_repo]
|- .commands.sh
|- .env
|- github.rb
|- Gemfile #Ajouté plus tard
|- Gemfile.lock #Ajouté plus tard

Utilisez un gem appelé Octokit pour accéder à GitHub depuis Ruby et créer un référentiel. En plus de créer un référentiel, diverses API sont préparées et c'est intéressant, vous voudrez peut-être y jeter un œil. Voici une liste de différentes méthodes. https://www.rubydoc.info/github/pengwynn/octokit/Octokit

Obtenez un jeton d'accès GitHub

Peut-être que de nombreuses personnes qui travaillent en tant qu'ingénieurs dans des entreprises utilisent GitHub comme une certification en deux étapes pour des raisons de sécurité. Cette fois, je l'ai créé sur cette base, et je l'expliquerai ci-dessous car il est nécessaire d'acquérir séparément le jeton d'accès de GitHub afin de passer l'authentification en deux étapes à partir du code Ruby.

Tout d'abord, accédez à votre GitHub, cliquez sur l'icône en haut à droite, ouvrez Paramètres, et vous serez redirigé vers la page suivante. Cliquez ensuite sur "Paramètres du développeur" en bas à gauche. スクリーンショット 2020-06-07 15.55.53.png

Ensuite, vous serez redirigé vers la page suivante, veuillez donc passer à «Jetons d'accès personnels». スクリーンショット 2020-06-07 16.00.23.png

Cliquez sur "Générer un nouveau jeton" ici

スクリーンショット 2020-06-07 16.01.49.png

Ensuite, vous serez redirigé vers la page suivante, veuillez donc écrire l'utilisation prévue dans la partie Note et vérifier la partie repo. Cette fois, le repo est suffisant pour l'autorité, mais il semble qu'un outil CLI pratique puisse être créé si d'autres parties peuvent être bien utilisées. Si vous pouvez vous le permettre, essayez-le. スクリーンショット 2020-06-07 16.03.26.png Cliquez ensuite sur Generate token en bas pour aller à la page où le token d'accès est affiché, alors copiez-le.

Définition des variables d'environnement

Créez des informations telles que le jeton d'accès créé précédemment dans le fichier .env. Pour un usage personnel uniquement, il est possible d'écrire du code solide.

.env:.env


USERNAME='Nom d'utilisateur GitHub'
GITHUB_ACCESS_TOKEN='Jeton d'accès copié'
FILEPATH='Spécifiez le répertoire dans lequel vous souhaitez créer un projet' #Dans le cas de je/Users/nom d'utilisateur mac/Program/C'est dit.

procédure

Créons maintenant une application CLI.

Créer un Gemfile

Terminal


$ bundle init

Cela créera un Gemfile, alors ajoutez la gemme suivante.

Gemfile


# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem 'octokit', '~> 4.0'
gem 'dotenv'

Installer Gem

Terminal


$ bundle

Maintenant que nous sommes prêts, écrivons un script shell à exécuter à partir du terminal et du code Ruby pour travailler avec GitHub.

sh:.commands.sh


#!/bin/zsh #Pour bash, remplacez ce "zsh" par bash

function create() {
    source .env #Lecture des variables d'environnement
    ruby github.rb $1 #Exécuter le fichier ruby$1 est l'argument passé dans la commande (nom du répertoire à créer)
    cd $FILEPATH$1 #Déplacer vers le répertoire du projet créé
    git init
    git remote add origin [email protected]:$USERNAME/$1.git
    touch README.md
    git add .
    git commit -m 'Initial Commit'
    git push -u origin master
    code . #Lancer VS Code
}

Vous pouvez maintenant exécuter cet outil CLI à partir du terminal, exécuter le fichier Ruby et même exécuter la commande Git.

Ensuite, nous allons créer un lien avec GitHub avec Ruby.

github.rb



require 'octokit'
require 'dotenv'

# .Lire le fichier env
Dotenv.load '.env'

#Attribuer des variables d'environnement à des variables
github_access_token =  ENV['GITHUB_ACCESS_TOKEN']
path = ENV['FILEPATH']

#Mettre le répertoire en tête une fois
system('cd')
#Récupérez l'argument (nom du projet à créer) depuis la commande du terminal
folder_name = ARGV[0].to_s
Dir.mkdir(path + folder_name)
#Travailler avec GitHub sur Octokit
client = Octokit::Client.new(access_token: github_access_token)
client.user.login
client.create_repository(folder_name)
puts "Succesfully created repository #{folder_name}"

Ceci termine l'application CLI.

Créons le projet que vous souhaitez créer à partir du terminal.

Terminal


$ source .commands.sh
$create Le nom du projet que vous souhaitez créer

Si le projet spécifié est créé dans le référentiel GitHub, le répertoire actuel est déplacé vers le répertoire avec le nom du projet et VS Code peut être démarré automatiquement, il réussit.

ezgif-4-4dcfe9e64830.gif

Nous espérons qu'il sera utile comme point de départ du développement.

Recommended Posts

Je veux automatiser le processus de la création du projet à la création du dépôt GitHub, Initial Commit à git push avec une seule commande.
Je veux pousser une application créée avec Rails 6 vers GitHub
Je veux jouer avec Firestore de Rails
Je veux passer la commande de démarrage à postgres avec docker-compose.
Accro à l'importation de projets depuis GitHub
Je veux jouer avec l'autorisation du répertoire Windows de WSL (ubuntu)
Je souhaite utiliser DBViewer avec Eclipse 2018-12! !!