get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 135971,
    "url": "https://patches.dpdk.org/api/patches/135971/?format=api",
    "web_url": "https://patches.dpdk.org/project/ci/patch/20240118234120.29256-4-ahassick@iol.unh.edu/",
    "project": {
        "id": 5,
        "url": "https://patches.dpdk.org/api/projects/5/?format=api",
        "name": "CI",
        "link_name": "ci",
        "list_id": "ci.dpdk.org",
        "list_email": "ci@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dpdk-ci",
        "webscm_url": "https://git.dpdk.org/tools/dpdk-ci/",
        "list_archive_url": "https://inbox.dpdk.org/ci",
        "list_archive_url_format": "https://inbox.dpdk.org/ci/{}",
        "commit_url_format": ""
    },
    "msgid": "<20240118234120.29256-4-ahassick@iol.unh.edu>",
    "list_archive_url": "https://inbox.dpdk.org/ci/20240118234120.29256-4-ahassick@iol.unh.edu",
    "date": "2024-01-18T23:41:20",
    "name": "[v3,3/3] doc: Add documentation",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "9e898f353680695ee6119ef9f8d874c9f89114b2",
    "submitter": {
        "id": 3127,
        "url": "https://patches.dpdk.org/api/people/3127/?format=api",
        "name": "Adam Hassick",
        "email": "ahassick@iol.unh.edu"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/ci/patch/20240118234120.29256-4-ahassick@iol.unh.edu/mbox/",
    "series": [
        {
            "id": 30842,
            "url": "https://patches.dpdk.org/api/series/30842/?format=api",
            "web_url": "https://patches.dpdk.org/project/ci/list/?series=30842",
            "date": "2024-01-18T23:41:17",
            "name": "Add a script to create series artifacts",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/30842/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/135971/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/135971/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<ci-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 95935438F8;\n\tFri, 19 Jan 2024 00:42:12 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8BA07402D7;\n\tFri, 19 Jan 2024 00:42:12 +0100 (CET)",
            "from mail-qk1-f182.google.com (mail-qk1-f182.google.com\n [209.85.222.182])\n by mails.dpdk.org (Postfix) with ESMTP id E3D5D4026F\n for <ci@dpdk.org>; Fri, 19 Jan 2024 00:42:10 +0100 (CET)",
            "by mail-qk1-f182.google.com with SMTP id\n af79cd13be357-783182d4a09so17302385a.2\n for <ci@dpdk.org>; Thu, 18 Jan 2024 15:42:10 -0800 (PST)",
            "from pogmachine2.loudonlune.net ([216.212.51.182])\n by smtp.gmail.com with ESMTPSA id\n oq6-20020a05620a610600b0078334ada139sm5625641qkn.7.2024.01.18.15.42.09\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 18 Jan 2024 15:42:10 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=iol.unh.edu; s=unh-iol; t=1705621330; x=1706226130; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=LNtvfBP+uwvRgZuk/5lZhzA9GDxE9g+8am4ZY9TWBHY=;\n b=ISOPdtfmgWzXviecMXqIBdyJ/aNDCfZ7nQ3L6GVpHuHjq/cGoU2KKmCGR5yD++CLFL\n IqWDgnjpg4wJHi2p7YwJcZL/bD5FVZwRc9TojEIEN04eDu1QyA1cQgrbuNdgHqU+e/KF\n FVyC/5oQeYk2RQOsUYpScKpE54x0QyrImUCqM=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1705621330; x=1706226130;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=LNtvfBP+uwvRgZuk/5lZhzA9GDxE9g+8am4ZY9TWBHY=;\n b=dNJeVSIkmciCjXoXNXC0tAHEau4OlheMBqXbG0j7+z3YwTg38xzIbkpg+mMrMb881b\n s6CidYjJs5U3LAD3sFzuc/+xKTmW0fVC3sjWu4pWc7CT03M6ThMjprteFKS4dpAY4hW3\n StrI4wCWIgdmRdsr4bwXN6iPrexizOrtIuC2Wec8YEBfhQvkQXmXkQlCtyhA0BGs25lg\n hkw+D87Sa1WpbibnHj3/R4ViyXgiWbnP60UgeGjyQdtqZhg97IunRSzZosYyemM0aEo/\n QXJLtsoIypelUn3AqUC/EVfgsiu+mDP9X2a29uCFzRPh/JbPj8lxtvh59QGqDJuPlEL0\n eMPQ==",
        "X-Gm-Message-State": "AOJu0YxWXeX09WfiheknuLkRuflItkgaIvUYrHvHdhYe6/WzW6wz0o2d\n bB8fbr4SJMbBLSiFtd4gS1d8zZQMqme8EQWY8TzBAzbvzMUXRpyXTi66rlIZnOd3iz8RWFmxBub\n eTuYQcvCyS6KZ5DPZR0UaC5Ns6/r78qirlfBtF8F4+nY6YgXural6OrdoOAcxBY+nAKUcMGE3Cr\n dtL8V5/rgGeohibs47IhI9zfm2lg==",
        "X-Google-Smtp-Source": "\n AGHT+IEKNNS7uk4ecJaOBLKEAH1rzDQfQnam+79mBsyI4nJA74Qy4mGobDYUGwgVhr7p67RWUuEbHQ==",
        "X-Received": "by 2002:a05:620a:28c5:b0:783:6720:b969 with SMTP id\n l5-20020a05620a28c500b007836720b969mr662447qkp.143.1705621330230;\n Thu, 18 Jan 2024 15:42:10 -0800 (PST)",
        "From": "Adam Hassick <ahassick@iol.unh.edu>",
        "To": "ci@dpdk.org",
        "Cc": "Adam Hassick <ahassick@iol.unh.edu>",
        "Subject": "[PATCH v3 3/3] doc: Add documentation",
        "Date": "Thu, 18 Jan 2024 18:41:20 -0500",
        "Message-ID": "<20240118234120.29256-4-ahassick@iol.unh.edu>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20240118234120.29256-1-ahassick@iol.unh.edu>",
        "References": "<20240118234120.29256-1-ahassick@iol.unh.edu>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "ci@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK CI discussions <ci.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/ci>,\n <mailto:ci-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/ci/>",
        "List-Post": "<mailto:ci@dpdk.org>",
        "List-Help": "<mailto:ci-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/ci>,\n <mailto:ci-request@dpdk.org?subject=subscribe>",
        "Errors-To": "ci-bounces@dpdk.org"
    },
    "content": "Adds a new directory for storing documentation related to scripts and\nother utilities in the dpdk-ci repository. Adds a new document\ndescribing the create series artifact script.\n\nSigned-off-by: Adam Hassick <ahassick@iol.unh.edu>\n---\n doc/create_series_artifact.rst | 103 +++++++++++++++++++++++++++++++++\n 1 file changed, 103 insertions(+)\n create mode 100644 doc/create_series_artifact.rst",
    "diff": "diff --git a/doc/create_series_artifact.rst b/doc/create_series_artifact.rst\nnew file mode 100644\nindex 0000000..d3a60f9\n--- /dev/null\n+++ b/doc/create_series_artifact.rst\n@@ -0,0 +1,103 @@\n+.. SPDX-License-Identifier: BSD-3-Clause\n+   Copyright(c) 2024 University of New Hampshire\n+\n+Create Series Artifact Script\n+=============================\n+\n+The create series artifact script is a small Python script for automatically applying patches and\n+storing the resulting source tree in an archive.\n+It gathers some information about the patches into a Java properties file for later use.\n+This script is meant to be used in the context of a CI pipeline.\n+\n+\n+Purpose and Context\n+-------------------\n+\n+A CI pipeline needs to make branching decisions when running on a patch or series depending on the\n+contents of the series or what tree it's being applied onto.\n+Tests running in a pipeline should run in parallel in order to shorten the time to report results.\n+This script helps to meet these needs by creating a portable archive containing the DPDK source\n+tree with the patch or series applied, and some metadata about that patch or series.\n+A CI pipeline and tests can use this information to make branching decisions based on the scope of\n+the patch.\n+Tests running in a CI pipeline can easily copy this archive and unpack it to obtain a clean\n+workspace, and this can be done independently of other tests.\n+At the Community Lab, the output archive from this script is stored as a Jenkins artifact.\n+This is the origin of the term \"artifact\" in the context of this script.\n+Jobs triggered downstream can then copy the artifact into their workspaces and extract them.\n+This script may also serve as a reference process for applying patches that new testing labs can\n+pull down and get started with.\n+\n+\n+Dependencies\n+------------\n+\n+The script requires the following packages to be installed in the environment:\n+\n+* pygit2\n+* pyyaml\n+* git-pw\n+\n+Additionally, the script depends on pw_maintainers_cli and patch-parser, which are included.\n+More information about configuring the script to find these dependencies can be found in the\n+configuration section.\n+\n+\n+Configuration\n+-------------\n+\n+A YAML file is used to store configuration options for this script.\n+The path to one of these configuration files is a required argument of the script.\n+\n+It is responsible for storing the following information:\n+\n+* Patchwork server, project, and user token\n+* URL to use when cloning the DPDK repository\n+* User information for Git\n+* Paths to dependent scripts and their configuration files\n+\n+When providing a server URL, make sure to include the API version in the url.\n+For example: ``https://patches.dpdk.org/api/1.3/``\n+\n+An example configuration file is given in the config directory of this repository at\n+``config/artifacts.yml``.\n+\n+If you intend to execute this script from a different working directory, other than the tools\n+directory inside this repository, then you will need to change the paths in the example\n+configuration.\n+\n+Note that if you do not provide a patchwork token in the configuration file, then the optional\n+argument ``--pw-token`` on the command line becomes a required argument.\n+More detail on the command line interface can be found in the next section.\n+\n+\n+Running the Script\n+------------------\n+\n+Once you have a configuration file set up, running the script is simple.\n+\n+The script expects two required arguments:\n+\n+* A path to a configuration file\n+* An API URL to a Series object in Patchwork\n+\n+The following block is an example of how to run the script:\n+\n+.. code-block:: console\n+\n+   ./create_series_artifact.py ../config/artifacts.yml \\\n+       https://patches.dpdk.org/api/1.3/series/12345\n+\n+If you choose not to provide a patchwork token in the configuration file, then you must provide\n+it on the command line as follows:\n+\n+.. code-block:: console\n+\n+   ./create_series_artifact.py --pw-token <your-pw-token-here> \\\n+       ../config/artifacts.yml https://patches.dpdk.org/api/1.3/series/12345``\n+\n+It is not required to delete the ``dpdk`` directory that the script creates, or any of the other\n+output files created by the script.\n+The properties and log file will be overwritten in the next execution.\n+If the ``dpdk`` directory is still present, then the script will retrieve and check out to the\n+remote head rather than clone the repository again.\n",
    "prefixes": [
        "v3",
        "3/3"
    ]
}