GitHubのプライベートリポジトリをgo getする

個人開発していて、GitHubの自分のプライベートリポジトリをgo getしようとして、エラーに遭遇しました。 今後同じような目にあった時のために、備忘録として残します。 エラー内容 以下のようなエラーが発生しました。 $ go get github.com/<username>/<private-repository-name> go: downloading github.com/<username>/<private-repository-name> v0.0.0-20200426100620-259de4f4dd2c go get github.com/<username>/<private-repository-name>: github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: verifying module: github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: reading https://sum.golang.org/lookup/github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: 410 Gone server response: not found: github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/d99582f38bf8799347c5c3580859733d5d5c417fd23feb23ec82dc0787605157: exit status 128: fatal: could not read Username for 'https://github.com': terminal prompts disabled 原因 go getでモジュールをダウンロードする際は通常、http通信をしているみたいです。 GitHubのプライベートリポジトリへは認証が通らず、エラーになっていました。 解決方法 以下手順で解決できます。 Personal access tokensを作成 git config設定 1. Personal access tokensを作成 GitHubのDeveloper settings画面でトークンを作成できます。 設定画面を開いたら、「Generate new token」を押すと、以下の画面が表示されます。...

April 27, 2020 · 1 min · 90 words · Yu

AtCoder Beginner Contest 163の振り返り

今回で5回目のコンテスト参加となりました。今回は「Unrated」になってしまいました。 コロナウイルスの影響で参加者がめちゃくちゃいて、サーバ処理が追いつかなかったんですかね。。コンテストが始まると一気にサーバ負荷がかかるという特殊な状況ですが、運営側には頑張っていただきたいです。 今回はC問題まで解いたので、そこまでの解説をします。 A - Circle Pond 問題文 半径Rの円の周長を出力してください。 制約 1 ≤ R ≤ 100 入力は全て整数である。 解説 Pythonはmath.piで円周率を使えます。 回答 import math R = int(input()) print(2*R*math.pi) B - Homework 問題文 高橋君の夏休みはN日間です。 夏休みの宿題がM個出されており、i番目の宿題をやるにはAi日間かかります。 複数の宿題を同じ日にやることはできず、また、宿題をやる日には遊ぶことができません。 夏休み中に全ての宿題を終わらせるとき、最大何日間遊ぶことができますか? ただし、夏休み中に全ての宿題を終わらせることができないときは、かわりに’-1‘を出力してください。 制約 1 ≤ N ≤ 10^6 1 ≤ M ≤ 10^4 1 ≤ Ai ≤ 10^4 解説 この問題は高橋君の夏休み日数から宿題にかかる全日数を引くだけです。 回答 N, M = [int(_) for _ in input().split()] A = [int(_) for _ in input().split()] ans = N for i in range(M): ans -= A[i] if(ans < 0): print("-1") else: print(ans) C - management 問題文 N人の社員からなる会社があり、各社員には1,…,Nの社員番号が割り当てられています。...

April 19, 2020 · 1 min · 143 words · Yu

AtCoder Beginner Contest 162の振り返り

今回で4回目のコンテスト参加となりました。結果として、C問題まではなんとか解くことができました。ですが、B問題を1回凡ミスしたことに気づかず20分後に再提出したこととC問題はPythonでは時間制限を突破できなくて、PyPyで提出をしてなんとか正解だったのであまり良くない内容でした。 まだまだ余裕でD問題に到達することができていないです。。 基礎力を強化するためにも、今回も振り返りをしていきます。(回答に記載しているコードは提出してACしたコードです。) A - Lucky 7 問題文 3桁の整数Nが与えられます。Nのいずれかの桁に数字の7は含まれますか? 含まれるなら Yes を、含まれないなら No を出力してください。 制約 100 ≤ X ≤ 999 解説 この問題は入力された3桁の文字数それぞれに「7」が含まれているかを確認すればOKです。 回答 N = input() if(N[0] == '7' or N[1] == '7' or N[2] == '7'): print("Yes") else: print("No") B - FizzBuzz Sum 問題文 FizzBuzz列a1,a2,…を次のように定めます。 iが3でも5でも割り切れるなら、ai = FizzBuzz そうではなくiが3で割り切れるなら、ai = Fizz そうではなくiが5で割り切れるなら、ai = Buzz そうではないなら、ai = i FizzBuzz列のN項目までに含まれる数の和を求めてください。 制約 1 ≤ X ≤ 10^6 解説 入力されたN項目までのそれぞれの数字をFizzBuzzで判別して、該当しない数字を足せばOKです。 回答 N = int(input()) ans = [] ans_num = 0 for i in range(N): s = i+1 if(s%3 == 0 and s%5 == 0): ans....

April 12, 2020 · 2 min · 294 words · Yu

React + Go + MongoDBの環境をDocker Composeで作成した

現在、勉強がてら個人開発をしていて、せっかくの個人開発なので、今までさわったことがないReact, Go, MongoDBでwebアプリを作ります。 その最初の段階として、Docker Composeを使って環境構築を進めます。 Reactの環境構築 今回の開発では、プロジェクト配下をこんな感じにしています。 プロジェクト ├── backend ├── frontend Reactはfrontend配下に構築します。 Dockerfileの作成 DockerfileにDocker上で起動させるコンテナの構成情報を書きます。 frontend配下に以下内容で作成します。 FROM node:13.12.0-alpine3.10 WORKDIR /usr/src/app 1行目にはコンテナのDockerイメージ、2行目にはコンテナ内の作業ディレクトリを記載しています。 alpineはAlpine Linuxのことで、必要最低限の構成がされているおかげで、Dockerイメージの軽量化を図ることができます。 docker-compose.ymlの作成 docker-compose.ymlで複数のコンテナをまとめて起動することができます。拡張子は「.yml」「.yaml」どちらでも動きます。 どっちかに統一してくれればいいのに。 プロジェクト配下に以下内容で作成します。 version: '3' services: node: build: context: ./frontend dockerfile: Dockerfile volumes: - ./frontend:/usr/src/app command: sh -c "yarn start" ports: - "3000:3000" volumesではコンテナ内のusr/src/appをfrontendに永続化させます。 portsでは外部の3000ポートとコンテナ内の3000ポートをつなげています。ローカル環境ではlocalhost:3000でアクセスができるようになります。 Dockerイメージのビルド docker-compose.ymlのある階層で以下コマンドを叩きます。 docker-compose build Building node Step 1/2 : FROM node:13.12.0-alpine3.10 ---> b529a862f234 Step 2/2 : WORKDIR /usr/src/app ---> Using cache ---> b753b92fbf97 Successfully built b753b92fbf97 Successfully tagged プロジェクト名_node:latest 上記のような表示がされ、ビルドすることができます。...

April 11, 2020 · 3 min · 522 words · Yu

PythonでPoetryを使ってみた

先日、僕が入会しているオンラインサロンのメンバーの方に、「PipenvよりもPoetryの方がいい!」といったことをお聞きして、Poetryを知らなかったので調べて使ってみました。日本語に翻訳してくれている公式ドキュメントにそって進めていきます。 Poetryとは PEP 518で提案されたpyproject.tomlによるパッケージ管理を導入したツールです。 pyproject.tomlでrequirements.txt、setup.py、setup.cfg、MANIFEST.inを置き換えることができます。Pipenvはrequirements.txtの置き換えしかできないので、いろんなファイルを置き換えることができて良いですね。また、Pipenvで使用するPipfileは独自規格で今後継続的に採用されるか不明なので、PipenvよりPoetryを使う方が良さそうです。 Poetryインストール MacやLinuxでは以下コマンドでインストールします。 curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python $HOME/.poetry/binにインストールされます。 Poetryを更新したいときは、以下コマンドを実行します。 poetry self update Bash, Fish, Zshでの補完の有効化 僕はシェルにFishを使っていて、補完をサポートしてくるのでありがたいです。 公式ドキュメントには自分のシェルに合った次のコマンドどれかを使えばいいそうです。 # Bash poetry completions bash > /etc/bash_completion.d/poetry.bash-completion # Bash (macOS/Homebrew) poetry completions bash > $(brew --prefix)/etc/bash_completion.d/poetry.bash-completion # Fish poetry completions fish > ~/.config/fish/completions/poetry.fish # Zsh poetry completions zsh > ~/.zfunc/_poetry # Oh-My-Zsh mkdir $ZSH/plugins/poetry poetry completions zsh > $ZSH/plugins/poetry/_poetry 変更を効かせるために、シェルの再起動をしましょう。 プロジェクトのセットアップ Poetryを試すためのプロジェクトを作成します。 次のコマンドで作成できます。poetry-demoと名付けています。 poetry new poetry-demo するとpoetry-demoディレクトリが作成されます。...

April 5, 2020 · 2 min · 409 words · Yu