はじめに こんにちは。バックエンドエンジニアのよしかわです。本記事では GitHub Actions のワークフローを少し安全に書くコツを一つご紹介いたします。 この記事はエモーションテック Advent Calendar 2024の10日目の記事です。 脆弱性を含むワークフローの例 今回取り上げるのはスクリプトインジェクション対策です。例として公式ドキュメントで脆弱性を含むとして挙げられているコードを見てみます。これはプルリクエストのタイトルが octocat で始まっていれば「PR title starts with 'octocat'」を出力して成功し、そうでなければ「PR title did not start with 'octocat'」を出力して失敗するというものです。 - name: Check PR title run: | title="${{ github.event
こんにちは。SRE の @int128 です。 スタディサプリのプロダクト開発では GitHub Actions を積極的に導入しています。本稿では、日常の風景に溶け込んでいる GitHub Actions を紹介します。 プロダクトの開発運用を支える GitHub Actions リポジトリとオーナーシップ 我々は monorepo を採用しており、すべてのマイクロサービスを同じリポジトリで管理しています。リポジトリのディレクトリ構成は下図のようになっています。 . ├── .github/workflows/ │ ├── マイクロサービス--test.yaml │ ├── マイクロサービス--deploy.yaml │ ├── ... │ └── reusable--横断的関心事.yaml ├── マイクロサービス/ │ ├── README.md │ ├── プロダクションコード..
Introduction ⛵ The GitHub Performance Engineering team regularly conducts experiments to observe how our systems perform under varying load conditions. A consistent pattern in these experiments is the significant impact of CPU utilization on system performance. We’ve observed that as CPU utilization rises, it can lead to increased latency, which provides an opportunity to optimize system efficienc
拙著『GitHub CI/CD実践ガイド』は内容だけでなく、読書体験にもこだわりました。AmazonやSNSでも読みやすいという声は多く、技術書としては珍しい観点で評価を得ています。 Amazonにおける「GitHub CI/CD実践ガイド」の読者レビュー 本記事では書籍の「読みやすさ」という切り口から、執筆の舞台裏を紹介します。 最高の読書体験を目指す 技術書の使命は、役立つ情報を届けることです。しかし筆者は役立つだけでなく、読んでいて心地よい書籍にしたいと考えました。そこでまず決めたのが「最高の読書体験を目指す」ことです。そして最高の読書体験を実現するため、次のような設計原則を定めて執筆しました。 シンプルにする:短い文章・簡潔なコード・直感的な図表へと磨き上げる ノイズを減らす:難しい表現は避け、読者を迷わせる要素は徹底的に取り除く テンポを重視する:読者の集中力を削がないよう、読ん
[速報]GitHub、自然言語による指示だけでアプリケーションを生成する「GitHub Spark」テクニカルプレビュー公開 GitHubは、日本時間10月30日未明に開幕したイベント「GitHub Universe'24」で、自然言語による指示だけで、パーソナライズされた小規模なアプリケーション(Micro-App)をすぐに生成できる「GitHub Spark」の テクニカルプレビューを発表しました 。 下記はGitHub Sparkのデモとして公開された動画の一部をキャプチャしたものです。 例えばユーザーは、ダッシュボードから「An app for me to log all the cities I've travelled with a review and star rating」(これまで旅行したことのあるすべての都市のレビューと星の数での評価を記録するアプリ)のように、作りた
基調講演では、GitHub Copilotの新機能としてAnthropicやGoogleの大規模言語モデルが選択可能になることが発表されました。 選択可能になるのはAnthropicのClaude 3.5 Sonnet、GoogleのGemini 1.5 Pro、OpenAIのGPT-4o、o1-preview、o1-miniです。 Claude 3.5 Sonnetは本発表と同時にGitHub Copilotで利用可能となり、GoogleのGemini 1.5 Proは数週間のうちに利用可能となる予定です。同社は今後さらに多くの機能や領域でマルチモデルの選択を可能にしていく予定です。 同社CEOのトーマス・ドムケ(Thomas Dohmke)氏は「すべてのシナリオに最適な単一のモデルはなく、開発者は自分にとって最適なモデルを選べることを期待しています。AIコード生成の次のフェーズは、マル
2024/9/17に「GitHub CI/CD実践ガイド~ Forkwell Library#67」というイベントで登壇しました。本記事ではその講演をダイジェストでお届けします。あわせて当日のFAQにも回答します。 発表資料 イベントでは拙著『GitHub CI/CD実践ガイド』のポイントを解説しました。 資料はSpeakerDeckへ公開済みです。またアーカイブ動画がYouTubeから視聴できます。 発表ダイジェスト それでは講演内容をかいつまんで説明しましょう。アジェンダは次のとおりです。 CI/CDとはなにか GitHub Actionsの基本機能と作法 持続可能性を高める習慣 意図的脅威に対する防衛術 おわりに なおFAQだけ読みたい場合は、こちらをクリックすると飛べます。 1. CI/CDとはなにか 我々ソフトウェアエンジニアの仕事は「ソフトウェアをとおして、ユーザーに価値を届け
ファインディ株式会社でフロントエンドのリードをしております 新福(@puku0x)です。 GitHub Actionsは、CI/CD以外にも様々な業務の効率化に役立ちます。 この記事では、弊社で実施しているGitHub Actionsを使った自動化について紹介します。 自動化 担当者アサイン ラベル設定 リリース QAチェック項目の抽出 定期実行 まとめ 自動化 担当者アサイン 開発フローの中では、Pull requestを作ってからレビューに出すまでにいくつかのタスクを行うことがあります。 弊社では、Pull requestの作成者がAssignee(担当者)となる場合が多いため、↓こちらのActionを用いてアサインの自動化をしています。 github.com - uses: kentaro-m/auto-assign-action@v2.0.0 with: repo-token: $
はじめに こんにちは。プロセス改善・アジャイルコーチで、Tech Blog編集長の高橋(@Taka_bow)です。 皆さんは、2021年6月に生まれたGitHub Copilotを利用していますか? この生成AIベースのコーディング支援ツールは、コードの自動補完や生成、関数の自動生成、エラー修正支援など、開発者の作業を多面的にサポートします。 ファインディでは2023年3月から導入し、開発チーム全員が日常的に活用しています。Findy Team+で効果を測定した結果、コーディングの効率化やコミュニケーションコストの削減、さらには開発者の満足度向上など、多くの利点が確認されました。 今回は、このようなソフトウェア開発における生成AIの影響を分析した最新の論文を紹介します。GitHub Copilotが開発プロセスにもたらす変化や、開発者の生産性への影響についての研究が書かれた、興味深い論文で
GitHubは2024年8月20日(米国時間)、米国、ブラジル、インド、ドイツの企業におけるソフトウェア開発者など2000人を対象に、ソフトウェア開発におけるAI(人工知能)コーディングツールの導入状況や導入のメリット、課題などを調査した結果を発表した。 同調査ではAIコーディングツールを、「生成AIとLLM(大規模言語モデル)を使用して、ソフトウェア開発サイクル全体を通じてエンジニアリング支援を提供する開発者向けツール」と定義している。 調査は、GitHubの委託によりWakefield Researchが2024年2月26日~3月18日に、米国、ブラジル、インド、ドイツの企業に勤務する学生以外の従業員2000人(各国500人)を対象にオンラインで実施した。内訳はソフトウェアエンジニア、開発者、プログラマー、データサイエンティスト、ソフトウェアデザイナーだ。 GitHubは2023年に、
はじめに 知らない間にGitHub Copilotが結構進化していたので、それらの内容を紹介します。 GitHub Copilot Chatは知っていたのですが、単なるChatGPTみたいな会話機能を追加しただけだと思っていました。 要約 右クリックメニューや#fileのようなコマンドが登場し、それを入力するだけでChatに見てほしいコンテキストを伝えることができるようになった。 ファイル単位だけでなく、選択した行やブロックに限定することもできる。 テストコードや新しいプロジェクトをコマンド一つで生成できるようになっている。 推薦の候補も複数を同時に比較できるようになった。 一度に最大10個くらい出る上、タブで保管できる。 ターミナルや編集中のファイルからコマンド一つでChatを立ち上げることができる。 特別なプロンプトを入力しなくても、開いた場所の文脈を読み取ってくれる。 右クリックメニ
GitHubは、2024年8月14日(米国時間)、セキュリティ機能群である「GitHub Advanced Security(GHAS)」において、コードの脆弱性発見後に修正コードを提案してくれる「Copilot Autofix」機能の一般提供を開始した。同機能は、2023年11月の発表にあわせてプレビューが開始され、2024年3月にパブリックベータに進んでいた。 Copilot Autofixは、CodeQLの機能で発見されたクロスサイトスクリプティング(XSS)やSQLインジェクションなどの潜在的な脆弱性に対して、修正コードを生成して提案してくれる機能だ。開発者は、プルリクエストで提案された修正コードの却下や編集、コミットをすることができ、その提案に関する自然言語での解説や他に必要なアクションなども提示される。 GitHubでは、Copilot Autofixを用いることで、同じ脆弱性
GitHubは、コードをスキャンして脆弱性を自動的検出し、コードの修正案を示してくれる「Copilot Autofix」機能を正式サービスとして提供開始すると発表しました。 コード分析エンジン「CodeQL」でコードスキャン Copilot Autofixは、GitHubが開発したコード分析エンジンである「CodeQL」を用いてコードをスキャンし、クロスサイトスクリプティングやSQLインジェクションなどを含むさまざまな脆弱性を検出します。 検出された脆弱性に対しては、Copilotがその説明と修正コードの提案を行い、開発者に提示します。 開発者は提示された内容を確認した上で「Create PR with fix」ボタンを押すと、提示されたコードの変更を含むプルリクエストが作成されます。プルリクエストがマージされれば修正完了です。 Copilot Autofixは過去のコードに対しても適用で
「Refined GitHub」はGitHubに多数の使いやすい機能を導入してくれるブラウザ拡張機能です。 GitHub - refined-github/refined-github: :octocat: Browser extension that simplifies the GitHub interface and adds useful features https://github.com/refined-github/refined-github Refined GitHubの導入手順は次の通り。まず、上記のリンクをクリックしてRefined GitHubのGitHubリポジトリを開きます。Refined GitHubはChrome版・Firefox版・Safari版がありますが、今回はChromeを使うのでChromeのロゴの横のボタンをクリック。 Chromeウェブストア
はじめに こんにちは!Hamee株式会社の tatsuo48 です。 GitHub ActionsにはデフォルトでGITHUB_TOKENというシークレットが存在しており、環境変数にセットして利用することで、Actionsがトリガーされたリポジトリに対する操作が可能です。 GITHUB_TOKENシークレットについて これはこれで便利なんですが、特定の条件のときに少し問題があります。 CIの中で別リポジトリを使いたいときどうする問題 上記の通り、GITHUB_TOKENでは権限の範囲がActionsがトリガーされたリポジトリに制限されます。よって以下のようなユースケースには適しません。 CIの中で別のプライベートリポジトリを参照したい Terraformのプライベートモジュールとか こういった場合、マシンユーザという人に紐付かないユーザを作り、そのユーザの個人アクセストークンが使われたりす
GitHub Appsとは何かがよく分からなかったので、実際に作りながら学んでいきます。 GitHub Appsとは 1つめは利用者側から見た概要。2つめは開発者から見た概要です。 GitHub AppsはGitHubの機能を拡張するツール GitHubを操作したり、GitHub外と連携したりできる。例えばissueを開いたり、Slackに通知したり リポジトリにインストールして使用する マーケットプレイスで様々なGitHub Appsが公開されている。リポジトリにインストールするだけで同じ機能が実現できるのが嬉しい。Actionsでそれをしようとするとyamlが個別に必要になる。 パッと見でも、リポジトリ内の画像サイズを最適化してくれるアプリ、静的解析してくれるアプリ、依存関係の古いバージョンを自動で検知して更新PRを出してくれるアプリなど、多種多様。 GitHub Appsはどのように
最近はPATの代わりにGitHub Appsを使って認証できるらしい。 PRがマージされたらアプリにversion bumpとタグ付けとReleaseの作成をしてみたときの備忘録。 GitHub Appsを作る GitHub Appの追加 Settings > Developer settingsの「New GitHub App」から。 以下を入力していけばOK 「GitHub App name」にアプリ名 「Homepage URL」にアプリのURL とりあえず、GitHubアカウントのプロフィールページを設定 「Expire user authorization tokens」にチェックを入れたまま アプリのトークンは有効期限付きに 「Webhook」の「Active」のチェックを外す 今回はいらないので無効化 「Permissions」の設定 タグ付けとpushがしたいので以下の形
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く