You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
こんにちは、ライクル事業部 エンジニアの菊池@kichionです 去年(2021年)からフロントエンド環境の立ち上げを行い、現在はバックエンドに戻ってきて技術負債の解消などを中心にシステム改善を行っています ライクルでは早すぎたマイクロサービス化により、コードベースが30近いGithub repositoryに分散しており重複コードが散乱している状態でした 今回はコードベースの共通化策としてgolangで書かれた社内用のライブラリを配布する方法を紹介します 前提 外部API 開発言語 Github Organization 解決したかった問題 社内ライブラリ配布 配布フロー 各項目 配布元の構成 Github Actions workflow 配布先の構成 Github Actions workflow GOPRIVATE 終わりに 前提 外部API ライクルでは事業ドメインとしてGoog
The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The design is licensed under the Creative Commons 3.0 Attributions license. 種々の linter が様々なプロダクトの品質を高めてきた、というのは疑う余地のない事実です。実装の初歩的な問題をエディタ内や CI/CD パイプライン中で機械的に検出できる環境を作れば、開発者はコーディングやコードレビューの邪魔になる些末な問題を早期に頭から追い出し、本質的な問題に集中できます。 また、そのような環境づくり(e.g. linter のルールセットの定義、組織独自のルールの作成、…)は、まさに開発組織のベースラインを定義する作業として捉えることができます。一度誰かが定義
Golangのツールをチームで開発しているのですが、Merge Requestをmergeする度にgo.sumとのconflictが発生する。つらい。 実のところは「つらすぎる」というほどつらくはないのですが、毎回conflict markerの<<<<<<<を消していく作業で人生を浪費するのはつらい。 というわけで、暫定的に.gitattributesでunion merge driverを指定する運用をはじめてみました。 $ grep go.sum .gitattributes go.sum merge=union .gitattributesについてはここでも書いた。 理屈 テキスト系ファイルに対しGitで利用されるデフォルトのmerge driverはtextです。 このmerge driverでconflictが検出されると<<<<<<<や>>>>>>>でconflictしている
Go で書いた CLI ツールのリリースは GoReleaser と GitHub Actions で個人的には決まり February 4, 2020 lt;dr GoReleaser と GitHub Actions を使うと簡単にビルドしたバイナリを作ってアップロードできる。 2つの YAML を書いてリポジトリにコミットする .github/workflows/release.yml .goreleaser.yml git tag して push する バイナリがリリースされる 専用のツールをローカルにインストールする必要はない。 本題 前に、Go のコマンドラインツールを簡単にリリースする | tellme.tokyo というブログを書いた。 それよりももっと楽になったので紹介する。 基本的にこのページで紹介する方法では 2 つの YAML をリポジトリに置くだけで終わる。 ロー
最近仕事でGithub APIを使用していて、言語はgolangで実装しています。 その際にイチからGETやPOSTを実装しても良かったのですが正直めんどくさい 楽できるなら楽したい。と思っていたところ googleが作っているGithub APIを使用するライブラリがあったので、紹介します。 さすが天下のgoogleさん。しかもめちゃくちゃ勉強になるコードになってます。 go-githubライブラリとは アクセストークン取得 認証の方法 APIの制限に引っかかっていないか確認 特定のオーガニゼイションのパブリックリポジトリ取得方法 issueを作成する方法 issue取得方法 まとめ おまけ go-githubライブラリとは 天下のgoogleさんが作っているGithub APIを使用するOSSライブラリ。 ライブラリの関数を使用するだけ、issueを取得したり、リポジトリを取得したり、
皆さんこんにちは. 現在はfluctにてfluct DRという広告配信システムの開発を行っております, 大関です. GitHub上でのチーム開発では, レビューの依頼や, CIが通ったことを確認した上でのPull Requestのマージといった複数の作業が発生しますが, これらはGitHubのUIを複数回クリックする必要があり, 非常にストレスフルな作業です. 本稿では, こうした定形作業を自動化するbotとしてpopukoを開発・導入することで, 我々開発者のストレスを軽減するとともに, より堅牢かつフィードバックの多い開発が実施できるようになった事例を紹介します. GitHubでの開発はとてもクリック操作が多い 前段でも述べたように, GitHubを用いたチーム開発においては, 数多くの定形作業が存在します. コードレビューの可能な人を探してレビューを依頼する, 依頼の度に対象者をAs
ghooks-cmd-runner という、 Github の Webhook を受けて任意のスクリプトを実行する Go 製のツールを書きました。 Installation https://github.com/tkuchiki/ghooks-cmd-runner/releases にバイナリがあるので、ダウンロードして解答してください。 Usage $ ./ghooks-cmd-runner --help usage: ghooks-cmd-runner --config=CONFIG [<flags>] Receives Github webhooks and runs commands Flags: --help Show context-sensitive help (also try --help-long and --help-man). -c, --config=CONFIG
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
http://commit-m.minamijoyo.com/:titele という有名OSSのコミットメッセージを検索できるサービスがあって、英語のコミットメッセージを書くときに「あれ? これどういう風に書けばいいんダー」ってときに例文を検索できて捗る。 commit-m.minamijoyo.com が、自分の場合はコミットメッセージ書くときはvim とか git commit -m とかからなのでCLIで検索できたらより捗るかと思ってGolangで書いた。 APIとかは無いようなのでクロールしてる。 GoQuery 使えばこの手のクローラーが一瞬でかけるのでよさがある。 github.com go get github.com/yuroyoro/gommit-m で入れた後に gommit-m keyword [page] で検索できる。
JavaScript Ruby Python Swift PHP Sass Go Elixir TypeScript CoffeeScript Haml Shell Read more about Hound’s supported linters Convention Defining and sticking with a consistent style helps reduce the amount of decisions that developers need to make when writing code, helping to keep their focus on logic, not semantics and formatting. Consistency When every line of code is written in the same style,
HugoとGitHub PagesでMarkdownベースのWebサイトをお手軽に構築します。 今回は行った作業の概要のみをまとめて細部については省略します。 経緯 CodeIQで出題しているデスマコロシアムのWebサイトを作りたい、 と前々から思っていて放置していたのですが、 最近CodeIQのアイコンイラストをお願いしている Webデザイナの湊川あいさんのアドバイスもあり着手することにしました。 作成しはじめた時点ではデスマコロシアムが最終回になる予定じゃなかったんですけどね・・・ 湊川あいさんについて マンガでわかるWebデザイン執筆中の湊川あいさんにデスマコロシアムのアイコンを発注しました。 これが成果物です。 湊川さんは、Webデザイナでありつつイラスト・SEO・マーケティングなど 幅広い知識を持っており、アイコンイラストのみの枠に閉じていません。 マネーフォワード社のエンジニア
gobump で Go プロジェクトのバージョニングをおこなう の続き。すっかり書くのが遅くなってしまったけれど、別にもったいぶるような特別なことはないです。 ここでは、Pull Request のマージを契機に、バージョンを進めるコミットをし、push して、GitHub のリリースを進める……ということを CI でおこなうことを目標とします。 これはわりと簡単で、以下のようなスクリプトで実現できます。必要なものは gobump、ghr、jq と GitHub のパーソナルアクセストークン。通常はクロスコンパイルするのに gox も使うことになるでしょう。 set -e repo_owner=motemen repo_name=test-repository committer_email=motemen+gobump-bot@gmail.com committer_name=motem
チームで作業する同じリポジトリの中で Pull Request を送り合うのではなく、オープンソースプロジェクトに外部から PR がやってくる場合の話です。 最近のフロー 送られてきた PR に対しては、大まかには仕様の話、実装方針の話、具体的な実装の話を詰めながらマージできるように持っていくわけだけれど、それがほとんど満足いく状態になっていてマージしたいと思うタイミングになっても、変数の名前付けだとか、ちょっとした処理の書き方だとかで、相手にお願いするよりは自分で手を加えてからマージした方が手っ取り早いことがある。そういう時は PR 元のブランチを手元にチェックアウトして、そのブランチを自分の変更で進めた上で master にマージするようにすると、push 時に PR も閉じられて便利です。 motemen/lgtm.sh#1 の例。分かりにくいれど、PR にさらに 1 コミット足して
ソースコードを検索する際には何を使っていますか。GitHubの検索を使う人もいるでしょうし、grepで検索する人もいます。しかし好みの条件がつけられなくて不便に感じることも多いでしょう。 そこで使ってみたいのがソースコード検索エンジンです。Houndはもの凄く手軽に使えて高機能な検索エンジンとなっています。 Houndの使い方 インストールは以下のような手順となっています。 git clone git@github.com:etsy/Hound.git export GOPATH=`pwd` go run src/hound/cmds/houndd/main.go 実際にはrunを実行する前にconfig-example.jsonを編集してconfig.jsonとします。内容は以下の通りです。 { "dbpath" : "data", "repos" : { "SomeRepo" : {
Easy to install Simply run the binary for your platform. Or ship Gogs with Docker or Vagrant, or get it packaged. Cross-platform Gogs runs anywhere Go can compile for: Windows, Mac, Linux, ARM, etc. Lightweight Gogs has low minimal requirements and can run on an inexpensive Raspberry Pi. Some users even run Gogs instances on their NAS devices.
TL;DR fork元(オリジナル)をgo getしてその中で作業,forkした自分のレポジトリにpushしてPull Requestを送る. 問題 Github上のGo言語のプロジェクトにコミットするとき,cloneの仕方で若干ハマることがある.普通のOSSプロジェクトの場合は,forkしてそれをcloneしてpush,Pull Requestとすればよい.Go言語のプロジェクトでは,同じレポジトリの中でパッケージを分け,それをimportして使ってるものがある.そういう場合にforkしたものをそのままcloneすると,importの参照先がfork元の名前になりハマる. 例えば,github.com/someone/toolがあるとする.このレポジトリはgithub.com/someone/tool/utilsという別パッケージを持っており,mainがそれを使っているとする.つまり以下
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く