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
はじめに GitHub Actions (GHA)、便利ですよね。 便利なんですが、たまに「え、そんな仕様だっけ?」みたいなワナに遭遇します。そして毎回忘れてワナにハマってしまいます。 今後そんなワナにハマって時間を無駄にしないよう、ワナ仕様について網羅していきます。 対象読者 GitHub Actions を使い倒したい方 割と大きめな規模の GitHub Actions を構成している方 初級編 run を複数行で書くときの記法 GHA というか YAML の記法です。いきなり GHA から外れてすみません 💦 が、よく忘れるので覚えておくと助かります。以下の 2 種類を覚えておけば、ほとんどの場合事足りると思います。 | は改行を改行として実行する
We, developers, spend a lot of time in our terminal. Or maybe we could spend even more, because there are so many great CLI/TUI tools that can boost the developer productivity, or just be fun to use. This article contains a categorized list of CLIs / TUIs I personally use and those widely adopted in the development community. Our sponsorMultiplayer auto-discovers, tracks, and documents your entire
プロファイルでできることは環境の設定だけです。シェルの設定は実際にはできないことはないのですが、やっても無意味なことになるのでできないとします。無意味なことになるというのは新しく起動したシェルにはプロファイルで行うシェルの設定は反映されないということです。環境の設定とは、特定のシェルに依存しない初期化処理のことで、その一つが環境変数の設定です。環境変数は OS の機能であってシェルの機能ではありません。環境の設定には、他に stty コマンドによる端末の設定や umask コマンドによる umask の設定などがありますが、プロファイルで設定することはあまりありません。 rc ファイルでは環境の設定とシェルの設定の両方ができます。シェルの設定、例えばプロンプト文字列の設定やシェルの機能を有効にしたり補完スクリプトの読み込みなどは rc ファイルに書きます。つまり、ほとんどのことは rc フ
TL;DR tar(1)の引数はオプションではなくkeyだから 歴史 tar(1)は Unix v7 (1979) で導入されたが、その前身は Unix v4 (1973) の tp(1)、更にこれは Unix v1 (1971) の tap(1) に遡る。 80年代に入りSystemV v.s. BSDといったことが起きたりし、PWB/UNIX (Programmer's WorkBench)で導入された cpio(1)とtar(1)、どちらがUnixの標準アーカイバか争われた結果、IEEE Std. 1003.1-2001 (POSIX.1-2001) を以って tar(1)は規格から削除され、代わりに IEEE Std 1003.2-1992 で導入された折衷案のpax(1)が標準となった。よって、現在実装中立なtar(1)の仕様書がそもそも存在しない。最後の中立規格は1997―19
Event https://testnight.connpass.com/event/311263/ Archive https://youtu.be/96KUNLiMe6w?t=327
PowerShellに関しては、2021年に1回まとめたのだが、あれから3年も経過したので最新情報も含めて、簡単に解説したい。なお、それぞれのこれまでの経緯などは、過去記事に記載しているので参考にしてほしい。 ●あらためて「PowerShell」の現状と登場後の経緯を整理する https://ascii.jp/elem/000/004/052/4052789/ 結論から言えば、PowerShellには、Windowsに同梱されている「Windows PowerShell」と、ユーザーがインストールする必要がある「PowerShell」がある。コマンドラインを使う頻度が高いようならば、最新のPowerShellをインストール、そうでなければWindows PowerShellで十分である。 PowerShellのインストーラーなどに表示される奇妙な人物イラストを見たことがある人もいるだろう。
はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、 rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ
はじめにTIG真野です。育休明けです。 フューチャー社内のタスクランナーはmakeやTaskなど複数の流派があり、チームによって使い分けられています。個人的にはmakeで良いんじゃないかと思っていますが、Taskも良いですよね。 makeは細かい記法をいつも忘れる+調べるとC言語向けの情報が出てきて脳内変換に手間を感じたため、makeを用いてWebバックエンドアプリをGoで開発するということをテーマに、役立ちそうな情報をまとめます。 なお、今記事におけるmakeは、GNU Makeを指します。バージョンは以下で動かしています。 MakefileのためのEditorConfigMakefileのインデントはハードタブである必要があります。誤りを防ぐためにもEditorConfigを設定しておくと良いでしょう。 makeは通常、Makefileという名称をデフォルトで認識しますが、同一フォルダ
この記事は、Merpay Tech Openness Month 2023 の4日目の記事です。 こんにちは。メルコインのバックエンドエンジニアの@goroです。 はじめに このGitHub Actionsのセキュリティガイドラインは、社内でGithub Actionsの利用に先駆け、社内有志によって検討されました。「GitHub Actionsを使うにあたりどういった点に留意すれば最低限の安全性を確保できるか学習してもらいたい」「定期的に本ドキュメントを見返してもらい自分たちのリポジトリーが安全な状態になっているか点検する際に役立ててもらいたい」という思いに基づいて作成されています。 今回はそんなガイドラインの一部を、社外の方々にも役立つと思い公開することにしました。 ガイドラインにおける目標 このガイドラインは事前に2段階の目標を設定して作成されています。まず第1に「常に達成したいこと
さくらのクラウドシェルは、ブラウザから無料で利用できるオンラインのシェル環境です。開発者向けの環境がプリインストールされているため、使い慣れたツールをすぐに利用できます。 無料で試す すぐに使えるツール さくらのクラウドシェルには Python、Ruby、Node.js などの開発言語のほかに、Vim、Emacs、tmux、Git、Ansible、Terraform、さくらのクラウドをコマンドラインから操作できる usacloud があらかじめインストールされています。 ローカル環境はそのまま 開発環境をローカルに構築しないため、お使いのPCのディスク容量や環境を気にする必要がありません。また、クラウドシェルを使えば開発チーム内の環境を揃えることも簡単です。 どこでも開発 ウェブブラウザからアクセスできるため、場所を問わずに開発が可能です。たとえば、自宅や外出先など、自分にとって最適な場所
(You can read this article in English here.) 免責事項GitHubはBug Bountyプログラムを実施しており、その一環として脆弱性の診断行為をセーフハーバーにより許可しています。 本記事は、そのセーフハーバーの基準を遵守した上で調査を行い、その結果発見した脆弱性に関して解説したものであり、無許可の脆弱性診断行為を推奨することを意図したものではありません。 GitHub上で脆弱性を発見した場合は、GitHub Bug Bountyへ報告してください。 要約GitHub Actionsのランナーのソースコードをホストするactions/runnerリポジトリにおいて、セルフホストランナーの使用方法に不備があり、結果としてGitHub Actionsに登録されているPersonal Access Tokenの窃取が可能だった。 このトークンはGit
Golangで作ったプロダクトを公開・配布するとき、課題となるのが利用するモジュールのライセンスです。 MITライセンスであれ、MPLライセンスであれ、利用するモジュールのLICENSEやNOTICEファイルを同梱することになるでしょう。 goxzとgo-licensesを使うと、クロスビルドした実行バイナリと利用モジュールのLICENSE等を含め頒布物を作成できるようになります。 最終イメージ 同梱されていることの確認 go-licenses ハマりポイント goxz まとめ 最終イメージ 最終イメージですが、以下のようなMakefileを用意しました。 プロダクトに設定したライセンスで利用できないモジュールがあるかどうかをlicense-checkで確認した後、cross-build.shを呼び出します。 .PHONY: license-check license-check: go-
これは、なにをしたくて書いたもの? 現在のシェルがSSHでリモートログインして起動したものかどうか、判定する方法はないのかな?と思って調べてみたのですが。 SSH_CONNECTIONという環境変数が設定されているかを見ればよいみたいです。 SSH_CONNECTION環境変数 sshコマンドのmanページに記載がありました。 SSH_CONNECTION環境変数には、クライアントとサーバーを識別する値が格納されます。具体的にはクライアントのIPアドレス、 ポート、サーバーのIPアドレス、ポートです。 SSH_CONNECTION Identifies the client and server ends of the connection. The variable contains four space-separated values: client IP address, clie
はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見
社内で、crontabのtabは実はtableだからクーロンタブじゃなくてクーロンテーブルなんだよね、という話が盛り上がった。 ファクトチェックとして、crontab(5)が紹介されていた(cron tableという言葉が出現している)。 manで事実確認がすぐできてすごいと思う一方、それを可能たらしめているmanもありがたいと思った。 man(1) とかの数字って何? 意外なものにmanがある 最近のコマンドにman pageが無い件 manまわりのコマンドの紹介 man(1) とかの数字って何? ちなみに、manのマニュアルやコマンド自体をアドレスするときに使うman(1)といった記法のカッコ内の数字は、manのセクション番号である。 コマンドと設定ファイルが同名であることがしばしばあるため、カッコ内にセクション番号を書くことで識別できるようにしている(例えば、crontab(1)はそ
1.この記事の立ち位置#自分がいつも調べていること、忘れがちな Tips や小ネタを列挙していく。そのため、網羅性は重視しない。 というのも、なにか調べていていろいろ読み漁った挙げ句、1周回って行き着くところは GitHub Actions の公式ドキュメントであり、たとえば Workflow の書き方は以下のページをよく開いている。 Workflow syntax for GitHub Actions - GitHub Docs それでも、公式ドキュメントで参照したい箇所を引っ張るための用語を知るまでに苦労することが往々にあり、この記事が、公式ドキュメントで参照したい箇所を導くための助けとなればと思い、書いていく。 2.Step と Job と Workflowの違いアレコレ#2-1.Step と Job と Workflow の違いの一行まとめ#Step < Job < Workflo
かれこれ 5 年くらい趣味開発で npm-scripts を書き続けている。長年書き続けているとノウハウが蓄積されてきて、「こう書くとスッキリする」「迷いがなくなる」「後から拡張したくなった時に、簡単に拡張できる」みたいな書き方が身についてきた。自分の型、あるいは手癖のようなものだと思う。 せっかくなので、id:mizdra の今の npm-scripts を書く時の手癖を書き連ねてみる。 基本形 { "scripts": { "build": "webpack --mode production", "dev": "webpack-dev-server --mode development", "lint": "eslint .", "test": "jest" } } 一番シンプルな npm-scripts を書く時のパターン。以下の 4 つの script を登録している。 buil
極限まで詳細を省けば何とか20分で雰囲気だけでも伝えられるんじゃないかと思って書きました。書き終えてから見返したら多分無理なので誇大広告となったことを深くお詫び申し上げます。 背景 概要 脆弱性の影響 ページキャッシュやsplice パイプ マージの可否 下準備 攻撃手順 まとめ 背景 先日Dirty PipeというLinuxカーネルの脆弱性が公表されました。 dirtypipe.cm4all.com Linuxのパイプに関する脆弱性なのですが、仕組みは意外とシンプルでぎりぎりブログでも伝わるかもしれないと思ったので自分の理解を書きました。あといつも細かく書きすぎて長くなるので、今回は雰囲気だけでも伝わるようにとにかく説明を簡略化し、ふわっとした概要だけでも理解してもらえるように頑張りました。その結果、若干正確性に欠ける部分があるかもしれませんがお許しください。細かい部分はまた別の記事でま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く