[RUBY] Ich möchte den Prozess von der Projekterstellung bis zur GitHub-Repo-Erstellung automatisieren. Initial Commit to Git Push mit einem einzigen Befehl.

Einführung

Ich denke, Git und GitHub sind bei der Entwicklung zu unverzichtbaren Werkzeugen geworden.

Erstellen Sie ein Verzeichnis lokal, erstellen Sie eine README-Datei mit "git init", "git add", "git commit -m" Initial Commit ", greifen Sie auf GitHub zu, erstellen Sie ein Repository," git remote " add origin [email protected]: Kopiere den Teil von hoge / fuga.git und füge ihn ein, führe den Befehl aus und git push` ~

Es ist eine Reihe von störenden Abläufen, nicht wahr?

Jetzt erstellen wir ein CLI-Tool, das sie automatisiert.

Verwendete Technologie / erforderliche Umgebung

Dieses GitHub-Repository

Vorbereitungen

Die Verzeichnisstruktur ist wie folgt. Wenn Sie gem in der globalen Umgebung installieren können, ohne Gemfile zu verwenden, können Sie einfach "gem install ○○" verwenden.

[auto_github_repo]
|- .commands.sh
|- .env
|- github.rb
|- Gemfile #Später hinzugefügt
|- Gemfile.lock #Später hinzugefügt

Verwenden Sie ein Juwel namens Octokit, um von Ruby aus auf GitHub zuzugreifen und ein Repository zu erstellen. Zusätzlich zum Erstellen eines Repositorys werden verschiedene APIs vorbereitet und es ist interessant, daher sollten Sie sich diese ansehen. Hier ist eine Liste verschiedener Methoden. https://www.rubydoc.info/github/pengwynn/octokit/Octokit

Holen Sie sich ein GitHub-Zugriffstoken

Vielleicht verwenden viele Leute, die als Ingenieure in Unternehmen arbeiten, GitHub aus Sicherheitsgründen als zweistufige Zertifizierung. Dieses Mal habe ich es darauf basierend erstellt, und ich werde es weiter unten erläutern, da es erforderlich ist, das Zugriffstoken von GitHub separat zu erwerben, um die zweistufige Authentifizierung aus dem Ruby-Code zu übergeben.

Gehen Sie zuerst zu Ihrem GitHub, klicken Sie auf das Symbol oben rechts, öffnen Sie "Einstellungen" und Sie werden zur folgenden Seite weitergeleitet. Klicken Sie dann unten links auf "Entwicklereinstellungen". スクリーンショット 2020-06-07 15.55.53.png

Anschließend werden Sie zur folgenden Seite weitergeleitet. Fahren Sie daher mit "Persönliche Zugriffstoken" fort. スクリーンショット 2020-06-07 16.00.23.png

Klicken Sie hier auf "Neuen Token generieren"

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

Anschließend werden Sie zur folgenden Seite weitergeleitet. Schreiben Sie daher den Verwendungszweck in den Teil "Hinweis" und überprüfen Sie den Teil "Repo". Dieses Mal reicht Repo für die Behörde aus, aber es scheint, dass ein praktisches CLI-Tool erstellt werden kann, wenn andere Teile gut verwendet werden können. Wenn Sie es sich leisten können, versuchen Sie es bitte. スクリーンショット 2020-06-07 16.03.26.png Klicken Sie dann unten auf "Token generieren", um zu der Seite zu gelangen, auf der das Zugriffstoken angezeigt wird. Kopieren Sie es also.

Umgebungsvariablen einstellen

Erstellen Sie Informationen wie das zuvor in der ENV-Datei erstellte Zugriffstoken. Nur für den persönlichen Gebrauch ist es in Ordnung, festen Code zu schreiben.

.env:.env


USERNAME='GitHub-Benutzername'
GITHUB_ACCESS_TOKEN='Kopiertes Zugriffstoken'
FILEPATH='Geben Sie das Verzeichnis an, in dem Sie ein Projekt erstellen möchten' #Im Fall von I./Users/Mac-Benutzername/Program/Es wird gesagt.

Verfahren

Jetzt erstellen wir eine CLI-App.

Gemfile erstellen

Terminal


$ bundle init

Dadurch wird eine Gem-Datei erstellt. Fügen Sie daher den folgenden Gem hinzu.

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'

Installieren Sie Gem

Terminal


$ bundle

Nachdem wir fertig sind, schreiben wir ein Shell-Skript, das vom Terminal ausgeführt wird, und Ruby-Code, um mit GitHub zu arbeiten.

sh:.commands.sh


#!/bin/zsh #Ändern Sie für Bash dieses "zsh" in Bash

function create() {
    source .env #Umgebungsvariablen lesen
    ruby github.rb $1 #Führen Sie die Ruby-Datei aus$1 ist das im Befehl übergebene Argument (Name des zu erstellenden Verzeichnisses)
    cd $FILEPATH$1 #Wechseln Sie in das Verzeichnis des erstellten Projekts
    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 . #Starten Sie VS Code
}

Jetzt können Sie dieses CLI-Tool vom Terminal aus ausführen, die Ruby-Datei ausführen und sogar den Git-Befehl ausführen.

Als nächstes werden wir mit GitHub mit Ruby verknüpfen.

github.rb



require 'octokit'
require 'dotenv'

# .Env-Datei lesen
Dotenv.load '.env'

#Weisen Sie Variablen Umgebungsvariablen zu
github_access_token =  ENV['GITHUB_ACCESS_TOKEN']
path = ENV['FILEPATH']

#Machen Sie das Verzeichnis einmal oben
system('cd')
#Rufen Sie das Argument (zu erstellender Projektname) aus dem Terminalbefehl ab
folder_name = ARGV[0].to_s
Dir.mkdir(path + folder_name)
#Arbeite mit GitHub an Octokit
client = Octokit::Client.new(access_token: github_access_token)
client.user.login
client.create_repository(folder_name)
puts "Succesfully created repository #{folder_name}"

Damit ist die CLI-App abgeschlossen.

Lassen Sie uns das Projekt erstellen, das Sie vom Terminal aus erstellen möchten.

Terminal


$ source .commands.sh
$create Der Name des Projekts, das Sie erstellen möchten

Wenn das angegebene Projekt im GitHub-Repository erstellt wird, wird das aktuelle Verzeichnis in das Verzeichnis mit dem Projektnamen verschoben und VS-Code kann automatisch gestartet werden. Dies ist erfolgreich.

ezgif-4-4dcfe9e64830.gif

Wir hoffen, dass es als Starthilfe für die Entwicklung nützlich sein wird.

Recommended Posts

Ich möchte den Prozess von der Projekterstellung bis zur GitHub-Repo-Erstellung automatisieren. Initial Commit to Git Push mit einem einzigen Befehl.
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Ich möchte mit Firestore von Rails spielen
Ich möchte den Startbefehl mit Docker-Compose an Postgres übergeben.
Süchtig nach dem Importieren von Projekten aus GitHub
Ich möchte mit der Berechtigung des Windows-Verzeichnisses von WSL (Ubuntu) herumspielen.
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!