kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

WSL2の .NET SDKが認識されない現象を修復する

WSL2で.NET SDK使ってコンパイルしようとすると「dotnet buildがありません」といわれます。ランタイムはインストールされており、SDKも所定のフォルダー(/usr/share/dotnet/sdk/)にあります。

dotnet buildができない。

SDKはちゃんと所定のフォルダーに入っているが、--list-sdksで出てこない。私はUbuntuのフィードではなく、Microsoftのフィードを使っているのですが、どうもこれがよくないようで、GitHubのissueにも.NET 6時代から割とたくさん登録されています。

learn.microsoft.com

この方法でやっていますが、どうもダメなようです。で、中の人がissueに書いてくれています。

github.com

私はMicrosoftのパッケージフィードを使うのでsenario2です。これをやる前にインストール済みの.NETは完全に消しておきましょう。

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

フィードを登録しなおします。

sudo touch /etc/apt/preferences

preferenceファイルを作成します。そのあとこのファイルを編集して、以下の内容を追記します。

Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001

これはリポジトリの優先度を設定するファイルなのだそうです。

kwatanabe.hatenablog.jp

これでapt-update & installします。

ちゃんとインストールされました!このPCではあまりWSL2使っていなかったので、インストールできてなかったことも気づいてませんでした。

GitHub Advanced Security for Azure DevOpsを試してみる

azure.microsoft.com

申し込んだGitHub Advanced Security for Azure DevOps(以下GHAS)プレビューがようやく有効化されたので、さっそく試してみました…といっても、GitHubにあるものと全く同じなので、新鮮味というものはありませんが😅。

docs.github.com

ライセンス

learn.microsoft.com

90日以内にレポジトリに一度でもコミットしたユーザーをアクティブユーザーとして定義しており、アクティブユーザーあたり月額$49だそうです。レポジトリ数は一つ以上すべてですので、一つでも有効にしたチームプロジェクトであれば基本的に配下のレポジトリはすべて有効にしたほうがいいんじゃないかなと思います。課金は紐づけられたAzureサブスクリプションなので、必ず関連付けてください。

今のところチームプロジェクト単位で強制的に有効化するポリシーは今のところなさそうなので、フィードバックしておこうと思います。

初期設定

GHASが有効化されるとレポジトリの設定に上記のUIが表示されます。

Azure DevOpsにサブスクリプションを紐づけていたらBegin billingをクリックすると課金開始です。

既定ではシークレットキーのプッシュの保護も有効化されます。

アクティブユーザーはhttps://dev.azure.com/{organization}/_settings/billingページにadvanced securityがあるので、そこから確認できます。

この有効化する処理はセキュリティ設定するレポジトリに対してそれぞれでやってください。GitHubと同じですが、あちらはorganization配下のレポジトリでは自動で設定するポリシー設定できるはずです。

シークレットキーをプッシュさせない

たとえばこんな感じでAzure Blob Storageへアクセスするプログラムに接続文字列をべたっと書いたコードがあったとします。

GHASを有効化したレポジトリにプッシュするとき、こんな風にはじかれます。GHASを有効化するときBlock secrets on pushがデフォルトで有効になっています。これはサーバー側ではなく、クライアントでやっているのでサーバーに登録されるわけではありません。

じゃあWeb画面で編集したら?ということでやってみても、同様にブロックされます。シークレットキーを埋め込まなくなるので安心ですね。

コード脆弱性を発見する

trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
- task: AdvancedSecurity-Codeql-Init@1
  inputs:
    languages: 'csharp,javascript'
- task: AdvancedSecurity-Codeql-Autobuild@1
- task: AdvancedSecurity-Codeql-Analyze@1
  inputs:
    querysuite: 'default'
- task: AdvancedSecurity-Dependency-Scanning@1
- task: AdvancedSecurity-Publish@1

※ サンプルではmainブランチへのプッシュで実行するトリガーを設定していますが、実際はpull request trigger使うか、スケジュール実行のほうがいいでしょう。

CodeQLの設定、スキャンする言語の設定(JavaScriptとC#)、プロジェクトのビルド、静的解析、依存関係の検査(脆弱性のあるパッケージあるかなど)、実行結果の発行…で、実際カスタマイズするところはCodeQLの解析部分と対象言語くらいでしょう。

docs.github.com

現在サポートされている言語はこれだけあります。

組織内の都合でVB.NET使っている場合はVisual Studio内蔵のものを使えばいいですが、GHAS使える場合はCodeQL使えばいいんじゃないかと思います。GitHubのGHASのライセンスを持っている人であればクライアントでも使えるそうです。

codeql.github.com

今後

今のところdependabotがないですが、これも提供されるとうれしいですね。

Realforce マウス RM1 とマウスパッドがやってきた

PC Watchでたまにやっている読者プレゼント、いつも期待せずに応募していますが今回はちょっとほしかったRealforceのマウスとマウスパッドだったので、少し気合を入れてメッセージ書いて送ったら、本人が忘れたころに…

なんと当選しました!いや実は前日に宅配便の到着通知で分かっていたのですが。普段使いのキーボードはPS/2のころからずっとRealforceでとうとうマウスとマウスパッドまでそろってしまいました。

www.realforce.co.jp

普段のマウスはずっとMicrosoftのもので今はPrecision Mouseを使っています。

握り心地はこちらのエルゴノミクスのほうが気に入っているのですが、何分MS製のマウスの持病というか、割と早く加水分解してしまうのと、レシーバーが大きすぎて、デスクトップにはいいのですがノートにはつらい。以前一本レシーバー折ってしまいました。

それはともかく、キータイプには定評のあるRealforce。マウスは…すばらしい。Precision mouseではちょっと堅めのクリックでこれはこれでいいのですが、RM1はすっと入るような、それでいてしっかり認識するし、押しごたえもあるようなクリックです。

www.realforce.co.jp

今どきはファームウェアの更新もあるんですね。最初にRealforceのソフトダウンロードして、ファームも更新します。LEDの配色も自分で好きなものを選べます…いろはまぁどれでもいいかなと思いましたが、選び始めると凝りますね。

初期ではカーソル移動が800dpiで私の4Kモニターではちょっと移動量が少ないと思ったので、1600dpiへ変更。これも表面のボタン一つです。そんなに頻繁に切り替えないと思いますので、付属のソフトで別の機能を割り当ててもいいんじゃないでしょうか。例えばWindowsであればデスクトップの切り替えにするとか。

私は今デスクわきにフルサイズタワーを使っています。有線ケーブルでは背面の端子に届かないかな?と、今までずっと無線のマウス使っていました。今回久しぶり(Trackball Explorer以来かな?)の有線ということで、ケーブル長に不安があって延長USBケーブル買おうかなと思っていましたが余裕をもって届きました。これくらい標準で長さがあるとありがたいですね。

ゴムのところがないので加水分解しなさそうで製品寿命まで使い倒せそうです。

地味ですが、マウスパッドもすばらしい。今まで比較的お安く、なかなかいいマウスパッドであるSteelSeriesを使っていました(2枚持っています)。

[rakuten:biccamera:11721396:detail]

これもしっかりホールドするし、マウスのトラッキングに不測のないものでしたが、Realforceのマウスパッドは裏に接着剤でもついているのかと思うくらい固定されています。

[rakuten:realforce:10000107:detail]

今机にキーボード二枚置かざるを得ないのでたまにマウスパッドの位置をずらすのですが、少し気にして持ち上げないといけないくらいです。

これからしっかり相棒として使っていこうと思います。東プレ様、PC Watch編集部様、ありがとうございました!

Azure DevOps 2023/6/9の更新

Azure DevOps Sprint222(ぞろ目!)の翻訳を行いました。オリジナルはこちらからご覧ください。Sprint 222ロールアウト中にブラジルでトラブル起こしたからか、少し遅くなりましたね。

learn.microsoft.com

ついにというか、やっとというかGitHub Advanced Security for Azure DevOpsのパブリックプレビューが始まりました。プライベートプレビューにも申し込んでいたのですが音沙汰なく…。そして、パブリックプレビューの申し込みURLがオープンしてすぐに申し込んだのですが、こちらも音沙汰ありません。ほんとにやっているのかな?

Visual Studioを使うと複数のorganizationにまたがるPAT作成をテナントポリシーで禁止していても作れてしまっていたのだそうです(知らなかった)。もちろんAzure AD接続していた時の話でしょう。それをちゃんと無効化しましたよ、というセキュリティの穴をふさいだ話。グローバル管理者は非アクティブにできますが、それじゃ困るという人は管理者と交渉。

work itemにはmarkdownが使えていたのですが、コメントでは使えませんでした。そのギャップをようやく解消するプライベートプレビューがはじまります。メールを送れと書いていますが、メールアドレスがないという…フィードバックはしています(とはいえいつものDanさんだと思います)。

パイプラインをリソースとして指定することで成果物に関連づいているwork itemもみえるようになるそうです。これは便利。

Kubernetes 1.24でトークンの自動生成ができなくなっていたそうですが、つらかったので復旧させたそうです。ありがたいですね。

macOS 13のホストエージェントがようやくパブリックプレビューです。リリースされて半年以上たってようやくプレビュー、そして今年後半にはまたmacOS 14 Sonomaが出てきてしまいます。そもそもツール類(そもそも‘Visual Studio)が出てこないことにはプレビューが出せないというのもわかるのですが、もう少し何とかなってくれると嬉しい。

前回のリリースノートでAgentにPATが不要になった、と書いたのですがやろうとしてもうまくいかずどうしたものかと思っていたら、まだ…だった?またためしてみます。

次はいつも通り3週間後のリリースになるといいな。

translate to Japanese to Azure DevOps release not…