get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2196426/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2196426,
    "url": "http://patchwork.ozlabs.org/api/patches/2196426/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/ovn/patch/20260213213712.18793-9-ihrachyshka@nvidia.com/",
    "project": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/projects/68/?format=api",
        "name": "Open Virtual Network development",
        "link_name": "ovn",
        "list_id": "ovs-dev.openvswitch.org",
        "list_email": "ovs-dev@openvswitch.org",
        "web_url": "http://openvswitch.org/",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260213213712.18793-9-ihrachyshka@nvidia.com>",
    "list_archive_url": null,
    "date": "2026-02-13T21:37:11",
    "name": "[ovs-dev,08/10] github: Disable Microsoft apt repos.",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "afbeb279b0a9c7b69dd92cfc57def347aaeeb7b6",
    "submitter": {
        "id": 91320,
        "url": "http://patchwork.ozlabs.org/api/people/91320/?format=api",
        "name": "Ihar Hrachyshka",
        "email": "ihrachyshka@nvidia.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/ovn/patch/20260213213712.18793-9-ihrachyshka@nvidia.com/mbox/",
    "series": [
        {
            "id": 492138,
            "url": "http://patchwork.ozlabs.org/api/series/492138/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/ovn/list/?series=492138",
            "date": "2026-02-13T21:37:03",
            "name": "Debian packaging and CI improvements.",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/492138/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2196426/comments/",
    "check": "fail",
    "checks": "http://patchwork.ozlabs.org/api/patches/2196426/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<ovs-dev-bounces@openvswitch.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "dev@openvswitch.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "ovs-dev@lists.linuxfoundation.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=JpgxASZy;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=140.211.166.137; helo=smtp4.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org)",
            "smtp4.osuosl.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key,\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=JpgxASZy",
            "smtp3.osuosl.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com",
            "smtp3.osuosl.org; dkim=pass (2048-bit key,\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=JpgxASZy"
        ],
        "Received": [
            "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fCQWg5mCwz1xvS\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 14 Feb 2026 08:38:07 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id C7D2A41F0B;\n\tFri, 13 Feb 2026 21:38:05 +0000 (UTC)",
            "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id cqyK21osQutT; Fri, 13 Feb 2026 21:38:03 +0000 (UTC)",
            "from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56])\n\tby smtp4.osuosl.org (Postfix) with ESMTPS id 9E5BE41F09;\n\tFri, 13 Feb 2026 21:38:03 +0000 (UTC)",
            "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id 85572C0035;\n\tFri, 13 Feb 2026 21:38:03 +0000 (UTC)",
            "from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n by lists.linuxfoundation.org (Postfix) with ESMTP id 18E27C0070\n for <dev@openvswitch.org>; Fri, 13 Feb 2026 21:38:02 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp3.osuosl.org (Postfix) with ESMTP id D82C9613A3\n for <dev@openvswitch.org>; Fri, 13 Feb 2026 21:37:58 +0000 (UTC)",
            "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 0vTXXzy0Oar2 for <dev@openvswitch.org>;\n Fri, 13 Feb 2026 21:37:56 +0000 (UTC)",
            "from SA9PR02CU001.outbound.protection.outlook.com\n (mail-southcentralusazlp170130001.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c10c::1])\n by smtp3.osuosl.org (Postfix) with ESMTPS id 3F86A61399\n for <dev@openvswitch.org>; Fri, 13 Feb 2026 21:37:56 +0000 (UTC)",
            "from MN2PR08CA0018.namprd08.prod.outlook.com (2603:10b6:208:239::23)\n by SA1PR12MB6798.namprd12.prod.outlook.com (2603:10b6:806:25a::22)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb\n 2026 21:37:50 +0000",
            "from BL6PEPF0001AB51.namprd04.prod.outlook.com\n (2603:10b6:208:239:cafe::4c) by MN2PR08CA0018.outlook.office365.com\n (2603:10b6:208:239::23) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend Transport; Fri,\n 13 Feb 2026 21:37:47 +0000",
            "from mail.nvidia.com (216.228.117.160) by\n BL6PEPF0001AB51.mail.protection.outlook.com (10.167.242.75) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 21:37:49 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Fri, 13 Feb\n 2026 13:37:35 -0800",
            "from JGWXHWDL4X.nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Fri, 13 Feb\n 2026 13:37:34 -0800"
        ],
        "X-Virus-Scanned": [
            "amavis at osuosl.org",
            "amavis at osuosl.org"
        ],
        "X-Comment": "SPF check N/A for local connections - client-ip=140.211.9.56;\n helo=lists.linuxfoundation.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN> ",
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 9E5BE41F09",
            "OpenDKIM Filter v2.11.0 smtp3.osuosl.org 3F86A61399"
        ],
        "Received-SPF": [
            "Pass (mailfrom) identity=mailfrom;\n client-ip=2a01:111:f403:c10c::1;\n helo=sa9pr02cu001.outbound.protection.outlook.com;\n envelope-from=ihrachyshka@nvidia.com; receiver=<UNKNOWN>",
            "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp3.osuosl.org 3F86A61399",
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=hdjhjwrz9NtkdAOc9Mvw/PcJcNBAFJPLdCVAdYEjpspS1BT/8up+f2dhsuXN+F2Rp87O94o+ZcQ4lSqbwB6aGLulehFQaqk5/rU+1Z5BgLbGq7OPyaE+jPhKmcv0YkSLX6BVogxaWDm05JEKhZA5ppSKuwvIVSp5j3Eu/fi/mIToYo34IVnAlS7q/7MJLsWUjs+X/LCO2GGNn++0lfoPGJpyRQ3QgGznh62gVaax0uAwIgIVT8CwDIhk7NJdGLRu8h6wsqRZDH6kAIYGjlPcq2r9gr53akwF0c5yzWGpLZ30xcFsJ6PCCi3dC61i+Snv+cGy4GLyWXXacSeWi5gezA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=JatDN3dwM85jxX5+NrghDC7h5ayt3IbL/5AfRX71ePI=;\n b=nIAUQn2woUDjfW0cpJpvczP9cf0+10rWHszh38KPYHdyCND8PHqciScPkgN7KPgEnviZSQo5P53AZd7b/NA+yE19AZcCsz1+IB0zECvFGP2ADlGZ54aj+mwYM4hCJ2CnKw7ZcxY0GCLPmeULPrX29y8GNEG6fmYt+PHUWNjeqXwg2EeJKsWzi060xHY7UJ4MQe9H/+IeZHTEeNPjoPLCxq0XuMsCV/kDk0ymzVXNGrF/iiXjN1ipF2rJHqevBWB/+tXcRcqFnLpjxHTY95Y4gZ8mWwGgOV2hsPoH6MLLb0HjaDuWOBctCRqEoqh/aZRvgkouiMO14E/s3J7epXK1aQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=openvswitch.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=JatDN3dwM85jxX5+NrghDC7h5ayt3IbL/5AfRX71ePI=;\n b=JpgxASZyyj1tueaRTiVZAXDyzJ7f0/jV6kcgeKeMNuYn9vYfuR8wwsM//HWctYNL0ob4obdF2k/kHxbhMALWCgN2oo/+GSjFLLHwYuh5lwQUb+LLD4PwR5xy45Go4mkHrgX2J5O1Ucf9BwLE8/8V1hC6POByxLuEg4iEUmoc3ZuaX2sgrxvioPJZzLxsS0tuNvgXfodynwC4Mk43vPVbHGUKXUGCn4Mhdq1P2gxHTvesAA4dDqgrh2xsGiYZRDeli7dr7KLX99AMHXdTYZQoVh1kpozlxFgPBN/J5BJ4TfcDt0PZnF0JEaaPj+t3vIOZfzQ473hohWnTfjak+BwQ6Q==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "To": "<dev@openvswitch.org>",
        "Date": "Fri, 13 Feb 2026 16:37:11 -0500",
        "Message-ID": "<20260213213712.18793-9-ihrachyshka@nvidia.com>",
        "X-Mailer": "git-send-email 2.52.0",
        "In-Reply-To": "<20260213213712.18793-1-ihrachyshka@nvidia.com>",
        "References": "<20260213213712.18793-1-ihrachyshka@nvidia.com>",
        "MIME-Version": "1.0",
        "X-Originating-IP": "[10.126.230.35]",
        "X-ClientProxiedBy": "rnnvmail201.nvidia.com (10.129.68.8) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "BL6PEPF0001AB51:EE_|SA1PR12MB6798:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "242ffc41-2a67-46a7-c849-08de6b4822c2",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|376014|1800799024|82310400026|36860700013|13003099007;",
        "X-Microsoft-Antispam-Message-Info": "\n LSB3MkrhHQjmJDKs7MBoZ6DDF1fKpkRzchfuA7WQTYbs8l7/OZnFBTA4FhYUPKc15s6MhS8GeOQxTKAQHUkJTyiqn7DfGIs1SM6lo9Ah3T4au4cjaH/3Ajn5pVGhs3HKLjhJFaqEs6BQm0XlL5xOIi6xYWDdyOmEru5WpeRcRtexEvkEut72wE5SqR1ModwWTjrUZyhYdyMCmfVIML0vcEMbtyHY7v4zPYuEIUsx0lw2xiina9PjAC3ZZH7Oj5jICj/5sPYoMn42C3I/88UanN+7pH52DrmedHJ8lUiwBrvGHGGYBWXcidGmLzKVAQ3KE8DFEOP82If1iHCX+1LQ2iOtfjTtuND6aKNlmQjhCO8HCi+t4JQtn7E4nLXQ8VBCnuoKXO8NpCSFwAzfmBt1bYAdn3mze9NBoj+XU4E15qVs4KsV+T9sjPo9n0/mpQIaYwKXfXpw0Rm4SnzXK1RVjQv2xAvtReY9zfAWDs5OaYdEhXveeOhEfcd7hgPs/cdVloBhFZMys3fmNnVEmf5kvGNL6zRezpbRMiqp81bDdM0ouFF6ClOAig3MWyDvLDtVCtCiw9AC5fMMwLBufvQ7dJDdiC50QKPFpzR26yg/tkNlUN7kQCrblqX7Epa5KTgl+HKHq6MKGOvbkFQ0VKPYZah0/iwFTf1YlYLvjw45fZGed5fPo3XXdF7e0slXaIJVzGpgN2tWMpuVlLHiV7+bIchCE/KMoPyEbgsPtFos2ej4UaowWo7cG/KxSONsOyKOrtiLEvEl2LzFJYbJoFvAOX8hotQErBMTEuisaRF4BZjw8/Go4uL6PInCjsXfNK3iyMJcdPadkEDzIh74mUxtIvpIgPGTb33xmp+nxGhZg/IQpcDvqrKx2zeZH5WNI5SgvnY4JKSOezg6VQL57wiELLDmQN1JELA0/8XWfuoxzKtw9gughczruEeT2xGJlIVI7uYwYdemKl7VC/G3ukCeHdv77sieKLjsXS08m6BLR9TFzjx2BI8Mjh6vN99IgGdcC+/m+43uMRIsNcrNztIAlXIG7Pz0PT+UvBsKDE7OD2H2JJHL4H0nDeNwTGTZ5S2kj9uVpZTn/4NpKmpuWqWrTNLU7p1sb8PasKU7rD2RR7ynywgbUklYgJMVCzldcP/s5B0reQNaP44V/AayddfDgE8GQJnp9HVqvHCwYO3d21tAoioXPDp/ub/TBVgGQyk1WnrGzOa8fSGEnZcXlJVOpC/D2C1ebpSTZ9g8Fy5SDm/cebw6fwhD100hZXzHnu3im+/oAvaJfdy69I7NpC9O4iMfS2Kr5P4Nq5FwqyMa1tGFkJ9/NQciv9zCVKZGdRTfgEaakWA7kjAwKYY2kgzYoV1SwvBfhML3TunhR6VQHiIf/MMdRc/PzpmuJpPpJMEpfcffQFq/A7F8RYEy63W+Aauf3KmljaMsSKq70lcxo/e7c/AyQ8JAF+Gy2mpraVWrv73Df97UDCC9hvfGMazpN1DBeCPWhV8DuT7+t+DETuz+D+qFt6O6Gjr+fJ0qCStEHjZeGq9B+yyNvpJhZTkt/WssLLp/G+TAdNbVnMREznsRUnfLO6OU8TkXXKGKv+pQKXs56AlExUIvYyKEhqzf6GNvAfxY+RMc8h8zcAHGg6b2KjTG6BIl0pd87BERpXaIVmOiE9YMW7BO2tLEmC0fkQ==",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE;\n SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013)(13003099007);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n iP89mlpVUqajy0gfQD1Dyl3V3Tu6kegfgGHTFxNrulXLfXGLqSRgnmLvxf52EWRWAHG63UeracGovvzYiRXtip0ggTDclgqnUBSTJ1qz2WgqNvOI5wQGGfKOr8WsLHQF+Nwoa6OCr+zh6h4P51cRKh6aHckTmBzKOWjS0BP4eyH0L4O9ccDLb6OPf9NadEUmSz6QD57fsJCeGDvrnhKPS2F+I47aY72OH8t15M89yVCfGQwH7+4a/Fw+h3hKx4FzCpyJ3YVxVsyOjhbcHLH525IZfxSpkr1BxDyJv9pFm8dD48K1f42uCRxW1tRs9dDyTmNLTCFEzOa/fffli+PV/DNbs1g8RRP9J/NFntUHh2HBrQNIg82l9rvHSTAt5sVtxpxfejtk4fW7BlXw5kyyzTHr+mkwHpE8Esvgoat0OBiF4vsoebqyX0YVGlbJpmWj",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "13 Feb 2026 21:37:49.6324 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 242ffc41-2a67-46a7-c849-08de6b4822c2",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BL6PEPF0001AB51.namprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SA1PR12MB6798",
        "Subject": "[ovs-dev] [PATCH ovn 08/10] github: Disable Microsoft apt repos.",
        "X-BeenThere": "ovs-dev@openvswitch.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "<ovs-dev.openvswitch.org>",
        "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>",
        "List-Archive": "<http://mail.openvswitch.org/pipermail/ovs-dev/>",
        "List-Post": "<mailto:ovs-dev@openvswitch.org>",
        "List-Help": "<mailto:ovs-dev-request@openvswitch.org?subject=help>",
        "List-Subscribe": "<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=subscribe>",
        "From": "Ihar Hrachyshka via dev <ovs-dev@openvswitch.org>",
        "Reply-To": "Ihar Hrachyshka <ihrachyshka@nvidia.com>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "ovs-dev-bounces@openvswitch.org",
        "Sender": "\"dev\" <ovs-dev-bounces@openvswitch.org>"
    },
    "content": "We don't use them, and their presence may cause transient failures\nsometimes, e.g.:\n\n```\nReading package lists...\nE: Failed to fetch https://packages.microsoft.com/[...]  403  Forbidden [IP: ...]\nE: The repository 'https://packages.microsoft.com/[...]' is no longer signed.\nError: Process completed with exit code 100.\n```\n\nSigned-off-by: Ihar Hrachyshka <ihrachyshka@nvidia.com>\n---\n .ci/linux-util.sh                              |  2 +-\n .github/actions/prepare-apt/action.yaml        | 14 ++++++++++++++\n .github/workflows/containers.yml               |  2 +-\n .github/workflows/ovn-fake-multinode-tests.yml | 14 ++++++++++----\n .github/workflows/ovn-kubernetes.yml           |  4 +++-\n .github/workflows/ovn-upgrade-tests.yml        | 11 ++++++-----\n .github/workflows/test.yml                     | 16 +++++++++-------\n Makefile.am                                    |  1 +\n 8 files changed, 45 insertions(+), 19 deletions(-)\n create mode 100644 .github/actions/prepare-apt/action.yaml",
    "diff": "diff --git a/.ci/linux-util.sh b/.ci/linux-util.sh\nindex b5bd1f8c9..e0f338e69 100755\n--- a/.ci/linux-util.sh\n+++ b/.ci/linux-util.sh\n@@ -11,7 +11,7 @@ function free_up_disk_space_ubuntu()\n     # in the list above.\n     local pkgs=$(echo $pkgs | sed 's/[^ ]* */~n&/g')\n \n-    sudo apt update && sudo apt-get --auto-remove -y purge $pkgs\n+    sudo apt-get --auto-remove -y purge $pkgs\n \n     local paths='/usr/local/lib/android/ /usr/share/dotnet/ /opt/ghc/\n                  /usr/local/share/boost/'\ndiff --git a/.github/actions/prepare-apt/action.yaml b/.github/actions/prepare-apt/action.yaml\nnew file mode 100644\nindex 000000000..91aa4dda7\n--- /dev/null\n+++ b/.github/actions/prepare-apt/action.yaml\n@@ -0,0 +1,14 @@\n+name: 'Prepare APT'\n+description: 'Remove problematic repos and update APT cache'\n+\n+runs:\n+  using: 'composite'\n+  steps:\n+    - name: Prepare APT\n+      shell: bash\n+      run: |\n+        # Remove Microsoft repos that are pre-configured on GitHub runners.\n+        # They can cause transient 403 errors and we don't need them.\n+        sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list \\\n+                   /etc/apt/sources.list.d/azure-cli.list || true\n+        sudo apt update\ndiff --git a/.github/workflows/containers.yml b/.github/workflows/containers.yml\nindex 2779cff55..f5ed03db4 100644\n--- a/.github/workflows/containers.yml\n+++ b/.github/workflows/containers.yml\n@@ -24,7 +24,7 @@ jobs:\n       - uses: actions/checkout@v4\n \n       - name: Update APT cache\n-        run: sudo apt update\n+        uses: ./.github/actions/prepare-apt\n \n       - name: Install dependencies\n         run: sudo apt install -y ${{ env.DEPENDENCIES }}\ndiff --git a/.github/workflows/ovn-fake-multinode-tests.yml b/.github/workflows/ovn-fake-multinode-tests.yml\nindex 89f9cd550..d3a75ddaf 100644\n--- a/.github/workflows/ovn-fake-multinode-tests.yml\n+++ b/.github/workflows/ovn-fake-multinode-tests.yml\n@@ -51,10 +51,11 @@ jobs:\n         repository: ${{ matrix.cfg.repo }}\n         ref: ${{ matrix.cfg.branch }}\n \n+    - name: Update APT cache\n+      uses: ./.github/actions/prepare-apt\n+\n     - name: Install dependencies\n-      run: |\n-        sudo apt update || true\n-        sudo apt-get install -y podman\n+      run: sudo apt-get install -y podman\n \n     - name: Fix /etc/hosts file\n       run: |\n@@ -116,9 +117,11 @@ jobs:\n     - name: Check out ovn\n       uses: actions/checkout@v4\n \n+    - name: Update APT cache\n+      uses: ./.github/actions/prepare-apt\n+\n     - name: install required dependencies\n       run:  |\n-        sudo apt update || true\n         sudo apt install -y ${{ env.dependencies }}\n         sudo apt install -y linux-modules-extra-$(uname -r)\n \n@@ -132,6 +135,9 @@ jobs:\n         . .ci/linux-util.sh\n         disable_apparmor\n \n+    - name: Update APT cache\n+      uses: ./.github/actions/prepare-apt\n+\n     - name: Free up disk space\n       run: |\n         . .ci/linux-util.sh\ndiff --git a/.github/workflows/ovn-kubernetes.yml b/.github/workflows/ovn-kubernetes.yml\nindex 857d12ada..dc77ee75e 100644\n--- a/.github/workflows/ovn-kubernetes.yml\n+++ b/.github/workflows/ovn-kubernetes.yml\n@@ -136,10 +136,12 @@ jobs:\n         . .ci/linux-util.sh\n         fix_etc_hosts\n \n+    - name: Update APT cache\n+      uses: ./.github/actions/prepare-apt\n+\n     - name: Install VRF kernel module\n       run: |\n         set -x\n-        sudo apt update\n         sudo apt-get install linux-modules-extra-$(uname -r) -y\n         sudo modprobe vrf\n \ndiff --git a/.github/workflows/ovn-upgrade-tests.yml b/.github/workflows/ovn-upgrade-tests.yml\nindex 1edbf27e9..718d779cb 100644\n--- a/.github/workflows/ovn-upgrade-tests.yml\n+++ b/.github/workflows/ovn-upgrade-tests.yml\n@@ -38,16 +38,17 @@ jobs:\n       TESTSUITE: \"upgrade-test\"\n \n     steps:\n-    - name: system-level-dependencies\n-      run: |\n-        sudo apt update\n-        sudo apt -y install linux-modules-extra-$(uname -r)\n-\n     - name: checkout\n       uses: actions/checkout@v4\n       with:\n         submodules: recursive\n \n+    - name: Update APT cache\n+      uses: ./.github/actions/prepare-apt\n+\n+    - name: system-level-dependencies\n+      run: sudo apt -y install linux-modules-extra-$(uname -r)\n+\n     - name: Fix /etc/hosts file\n       run: |\n         . .ci/linux-util.sh\ndiff --git a/.github/workflows/test.yml b/.github/workflows/test.yml\nindex 9fbea311f..879607c53 100644\n--- a/.github/workflows/test.yml\n+++ b/.github/workflows/test.yml\n@@ -35,7 +35,7 @@ jobs:\n       - uses: actions/checkout@v4\n \n       - name: Update APT cache\n-        run: sudo apt update\n+        uses: ./.github/actions/prepare-apt\n \n       - name: Install dependencies\n         run: sudo apt install -y ${{ env.DEPENDENCIES }}\n@@ -138,12 +138,6 @@ jobs:\n         - { runner: ubuntu-24.04-arm, compiler: gcc, testsuite: system-test, test_range: \"201-\", unstable: unstable }\n \n     steps:\n-    - name: system-level-dependencies\n-      if: ${{ startsWith(matrix.cfg.testsuite, 'system-test') }}\n-      run: |\n-        sudo apt update\n-        sudo apt -y install linux-modules-extra-$(uname -r)\n-\n     - name: checkout\n       if: github.event_name == 'push' || github.event_name == 'pull_request'\n       uses: actions/checkout@v4\n@@ -155,6 +149,14 @@ jobs:\n       if: github.event_name == 'schedule'\n       uses: actions/checkout@v4\n \n+    - name: Update APT cache\n+      if: ${{ startsWith(matrix.cfg.testsuite, 'system-test') }}\n+      uses: ./.github/actions/prepare-apt\n+\n+    - name: system-level-dependencies\n+      if: ${{ startsWith(matrix.cfg.testsuite, 'system-test') }}\n+      run: sudo apt -y install linux-modules-extra-$(uname -r)\n+\n     # Weekly runs test using the tip of the most recent stable OVS branch\n     # instead of the submodule.\n     - name: checkout OVS\ndiff --git a/Makefile.am b/Makefile.am\nindex 50c0fbcd2..754ef34f8 100644\n--- a/Makefile.am\n+++ b/Makefile.am\n@@ -95,6 +95,7 @@ EXTRA_DIST = \\\n \t.ci/osx-prepare.sh \\\n \t.ci/ovn-kubernetes/prepare.sh \\\n \t.ci/ovn-kubernetes/custom.patch \\\n+\t.github/actions/prepare-apt/action.yaml \\\n \t.github/workflows/containers.yml \\\n \t.github/workflows/test.yml \\\n \t.github/workflows/ovn-kubernetes.yml \\\n",
    "prefixes": [
        "ovs-dev",
        "08/10"
    ]
}