get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 617341,
    "url": "http://patchwork.ozlabs.org/api/patches/617341/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/openwrt/patch/owrt-patch-20160502-1@vittgam.net/",
    "project": {
        "id": 45,
        "url": "http://patchwork.ozlabs.org/api/projects/45/?format=api",
        "name": "OpenWrt development",
        "link_name": "openwrt",
        "list_id": "openwrt-devel.lists.openwrt.org",
        "list_email": "openwrt-devel@lists.openwrt.org",
        "web_url": "http://openwrt.org/",
        "scm_url": "git://git.openwrt.org/openwrt.git",
        "webscm_url": "https://dev.openwrt.org/browser",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<owrt-patch-20160502-1@vittgam.net>",
    "list_archive_url": null,
    "date": "2016-05-02T03:28:12",
    "name": "[OpenWrt-Devel] base-files: Fix config_generate when there are no switch VLANs or ports configured in board.json.",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "a3bb6ca88daded8c65d044c23e8ddc7bcf94cfa8",
    "submitter": {
        "id": 65409,
        "url": "http://patchwork.ozlabs.org/api/people/65409/?format=api",
        "name": "Vittorio Gambaletta",
        "email": "openwrt@vittgam.net"
    },
    "delegate": {
        "id": 54613,
        "url": "http://patchwork.ozlabs.org/api/users/54613/?format=api",
        "username": "blogic",
        "first_name": "John",
        "last_name": "Crispin",
        "email": "blogic@openwrt.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/openwrt/patch/owrt-patch-20160502-1@vittgam.net/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/617341/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/617341/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<openwrt-devel-bounces@lists.openwrt.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "<openwrt-devel@lists.openwrt.org>"
        ],
        "Received": [
            "from arrakis.dune.hu (caladan.dune.hu [78.24.191.180])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3qyqWr0rg1z9t6j\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon,  2 May 2016 13:28:24 +1000 (AEST)",
            "from arrakis.dune.hu (localhost [127.0.0.1])\n\tby arrakis.dune.hu (Postfix) with ESMTP id A808AB91B9C;\n\tMon,  2 May 2016 05:28:16 +0200 (CEST)",
            "from arrakis.dune.hu (localhost [127.0.0.1])\n\tby arrakis.dune.hu (Postfix) with ESMTP;\n\tMon,  2 May 2016 05:28:16 +0200 (CEST)",
            "from arrakis.dune.hu (localhost [127.0.0.1])\n\tby arrakis.dune.hu (Postfix) with ESMTP id E5107B91B97\n\tfor <openwrt-devel@lists.openwrt.org>;\n\tMon,  2 May 2016 05:28:14 +0200 (CEST)",
            "from mail.vittgam.net (server1.vittgam.net [213.239.197.142])\n\tby arrakis.dune.hu (Postfix) with ESMTPS\n\tfor <openwrt-devel@lists.openwrt.org>;\n\tMon,  2 May 2016 05:28:13 +0200 (CEST)",
            "from vl3 (vl3.r12.network.mietitrebbia.rocks [10.48.6.117])\n\tby mail.vittgam.net with SMTP id u423SCGZ184280\n\tfor <openwrt-devel@lists.openwrt.org>; Mon, 2 May 2016 05:28:12 +0200"
        ],
        "Authentication-Results": "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (4096-bit key;\n\tunprotected) header.d=vittgam.net header.i=@vittgam.net\n\theader.b=afkERqF3; dkim-atps=neutral",
        "X-Spam-Checker-Version": "SpamAssassin 3.4.1 (2015-04-28) on arrakis.dune.hu",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-1.5 required=5.0 tests=BAYES_00,T_DKIM_INVALID\n\tautolearn=unavailable autolearn_force=no version=3.4.1",
        "X-policyd-weight": "using cached result; rate: -6.1",
        "X-DKIM": "OpenDKIM Filter v2.4.2 mail.vittgam.net u423SCGZ184280",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=vittgam.net;\n\ts=20150519; t=1462159692;\n\tbh=0SExyi3QSf7PGzhOl2bldNivGTNyvm3g7JPhAb0oRkc=;\n\th=From:To:Subject:Content-Type:Message-ID;\n\tb=afkERqF3dsDY2FLJd23jgzPf9GitSBeUKXGphzPDzaxtQ/xW2mP1FyNatDDikXc68\n\tdxg9Yo1u+OzCx2LbWBdGK4qyonoZ0Owsws5+Y//eL6OYyc8x1JZP+rpwSpSTozrrpJ\n\tXp0UgIyDAoD2ZPm3ZzDJWgsbfBFj/ykEeDU/w/n+0+IycZwkLK1cexhWNA6qCRBaqA\n\tnhDpqXQRBfdAR+7pYX20vUA7eJNGpnvibE/7DqFm1Gg/eTlM7/EaNnJ+Xb3Xg9b58h\n\tEl859pC9A45mLXBcsV8rCsQRNJ0Pm9Eh07JWKPeVlfpyV69jtYyhnyMM5l8umTT552\n\tjDgCPhGm3XqEr9g1X/OVBhqw71DEeozOwff56BJXVZtnnVjasieFkDOpvb6iAMtO14\n\tLLAus3XySMcJes2ukQUfQP6oOJhg3UCFnaY/kmLkEnEloo4Pv2zg1cmGeloVEwsMzX\n\tcwRoKS1rOVUO5mcgln+YPkAIDKFlE+mja557uHCzRkX54XjGRRtFloMQGlb772b6u7\n\thHozGM40y9kPo9hMWWjSZi1tsf3MHBBme1zIjBDG5qat2vMa5PnZf0lja2qYMhFCc6\n\tElIRguhd7lsaCwpPQxXeo/3fmb+9CRkfxOIoDdWz7rQJo7a/m7kovyPR2DwDypwbnE\n\tkArQ727OStaHsyhHrclelgv4=",
        "Date": "Mon, 2 May 2016 05:28:12 +0200",
        "From": "\"Vittorio Gambaletta (VittGam)\" <openwrt@vittgam.net>",
        "To": "<openwrt-devel@lists.openwrt.org>",
        "Message-ID": "<owrt-patch-20160502-1@vittgam.net>",
        "Subject": "[OpenWrt-Devel] [PATCH] base-files: Fix config_generate when there\n\tare no switch VLANs or ports configured in board.json.",
        "X-BeenThere": "openwrt-devel@lists.openwrt.org",
        "X-Mailman-Version": "2.1.20",
        "Precedence": "list",
        "List-Id": "OpenWrt Development List <openwrt-devel.lists.openwrt.org>",
        "List-Unsubscribe": "<https://lists.openwrt.org/cgi-bin/mailman/options/openwrt-devel>,\n\t<mailto:openwrt-devel-request@lists.openwrt.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.openwrt.org/pipermail/openwrt-devel/>",
        "List-Post": "<mailto:openwrt-devel@lists.openwrt.org>",
        "List-Help": "<mailto:openwrt-devel-request@lists.openwrt.org?subject=help>",
        "List-Subscribe": "<https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel>,\n\t<mailto:openwrt-devel-request@lists.openwrt.org?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "openwrt-devel-bounces@lists.openwrt.org",
        "Sender": "\"openwrt-devel\" <openwrt-devel-bounces@lists.openwrt.org>"
    },
    "content": "The json_select call fails when there are no roles or ports objects\nin board.json. \"json_select ..\" must not be executed after failing.\n\nThis fixes for example LEDs not being set up in /etc/config/system.\n\nSigned-off-by: Vittorio Gambaletta <openwrt@vittgam.net>\n---",
    "diff": "--- a/package/base-files/files/bin/config_generate\n+++ b/package/base-files/files/bin/config_generate\n@@ -144,22 +144,24 @@ generate_switch_vlans_ports() {\n \t#\n \n \tjson_get_keys roles roles\n-\tjson_select roles\n+\tif [ -n \"$roles\" ]; then\n+\t\tjson_select roles\n \n-\tfor role in $roles; do\n-\t\tjson_select \"$role\"\n-\t\t\tjson_get_vars ports\n-\t\tjson_select ..\n+\t\tfor role in $roles; do\n+\t\t\tjson_select \"$role\"\n+\t\t\t\tjson_get_vars ports\n+\t\t\tjson_select ..\n \n-\t\tuci -q batch <<-EOF\n-\t\t\tadd network switch_vlan\n-\t\t\tset network.@switch_vlan[-1].device='$switch'\n-\t\t\tset network.@switch_vlan[-1].vlan='$role'\n-\t\t\tset network.@switch_vlan[-1].ports='$ports'\n-\t\tEOF\n-\tdone\n+\t\t\tuci -q batch <<-EOF\n+\t\t\t\tadd network switch_vlan\n+\t\t\t\tset network.@switch_vlan[-1].device='$switch'\n+\t\t\t\tset network.@switch_vlan[-1].vlan='$role'\n+\t\t\t\tset network.@switch_vlan[-1].ports='$ports'\n+\t\t\tEOF\n+\t\tdone\n \n-\tjson_select ..\n+\t\tjson_select ..\n+\tfi\n \n \n \t#\n@@ -167,31 +169,33 @@ generate_switch_vlans_ports() {\n \t#\n \n \tjson_get_keys ports ports\n-\tjson_select ports\n+\tif [ -n \"$ports\" ]; then\n+\t\tjson_select ports\n+\n+\t\t\tfor port in $ports; do\n+\t\t\tjson_select \"$port\"\n+\t\t\t\tjson_get_vars num\n+\n+\t\t\t\tif json_is_a attr object; then\n+\t\t\t\t\tjson_get_keys attr attr\n+\t\t\t\t\tjson_select attr\n+\t\t\t\t\t\tuci -q batch <<-EOF\n+\t\t\t\t\t\t\tadd network switch_port\n+\t\t\t\t\t\t\tset network.@switch_port[-1].device='$switch'\n+\t\t\t\t\t\t\tset network.@switch_port[-1].port=$num\n+\t\t\t\t\t\tEOF\n+\n+\t\t\t\t\t\tfor attr in $attr; do\n+\t\t\t\t\t\t\tjson_get_var val \"$attr\"\n+\t\t\t\t\t\t\tuci -q set network.@switch_port[-1].$attr=\"$val\"\n+\t\t\t\t\t\tdone\n+\t\t\t\t\tjson_select ..\n+\t\t\t\tfi\n+\t\t\tjson_select ..\n+\t\tdone\n \n-\tfor port in $ports; do\n-\t\tjson_select \"$port\"\n-\t\t\tjson_get_vars num\n-\n-\t\t\tif json_is_a attr object; then\n-\t\t\t\tjson_get_keys attr attr\n-\t\t\t\tjson_select attr\n-\t\t\t\t\tuci -q batch <<-EOF\n-\t\t\t\t\t\tadd network switch_port\n-\t\t\t\t\t\tset network.@switch_port[-1].device='$switch'\n-\t\t\t\t\t\tset network.@switch_port[-1].port=$num\n-\t\t\t\t\tEOF\n-\n-\t\t\t\t\tfor attr in $attr; do\n-\t\t\t\t\t\tjson_get_var val \"$attr\"\n-\t\t\t\t\t\tuci -q set network.@switch_port[-1].$attr=\"$val\"\n-\t\t\t\t\tdone\n-\t\t\t\tjson_select ..\n-\t\t\tfi\n \t\tjson_select ..\n-\tdone\n-\n-\tjson_select ..\n+\tfi\n }\n \n generate_switch() {\n",
    "prefixes": [
        "OpenWrt-Devel"
    ]
}