)]}'
{
  "log": [
    {
      "commit": "c9ab07bd0c27f268f9240ceb0cdc1290f54987c5",
      "tree": "fb6ceee816f82dfe30d0a572019a2165ecf4b816",
      "parents": [
        "37f7ecfdebd8ddf8ed5b977a895790fd4c3e67b3"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Oct 09 21:30:11 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 09 15:30:11 2025 +0200"
      },
      "message": "Add archive warning for the repo (#5)\n\nAdd archive warning\n\nhttps://issues.apache.org/jira/browse/INFRA-27268"
    },
    {
      "commit": "37f7ecfdebd8ddf8ed5b977a895790fd4c3e67b3",
      "tree": "0624af5c1687b1d7d8d2499c41fcde00b1e589a0",
      "parents": [
        "5175d23a10e91343a4e3574b91f2673a7f9c2a89"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Nov 05 17:43:13 2024 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Mar 28 11:30:37 2025 +0800"
      },
      "message": "Add asf.yaml file\n"
    },
    {
      "commit": "5175d23a10e91343a4e3574b91f2673a7f9c2a89",
      "tree": "a3e11aea7f33ae982609a1e443cecb59385fea2b",
      "parents": [
        "f915b2b5d1346252f44c436a77c22333d01b7b63"
      ],
      "author": {
        "name": "ningshaoyi",
        "email": "ningshaoyi@hashdata.cn",
        "time": "Thu Jul 11 10:45:29 2024 +0800"
      },
      "committer": {
        "name": "Terry1504",
        "email": "35018769+Terry1504@users.noreply.github.com",
        "time": "Thu Jul 11 13:49:01 2024 +0800"
      },
      "message": "update some reference of gp-common-go-libs from github.com/greenplum-db/gp-common-go-libs to github.com/cloudberrydb/gp-common-go-libs\nupate go.mod and go.sum to reflect above change.\n\nupdate Makefile to use host way instead of socket directory to connect to coordinator to get host names of cluster.\n\nupdate readme a little with more detail.\n"
    },
    {
      "commit": "f915b2b5d1346252f44c436a77c22333d01b7b63",
      "tree": "c8fee1617cfb485cfd942f9210cada7870683990",
      "parents": [
        "80e9b0d8b46d4e1f1b3c7d181e417138c0b5da82"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jun 25 14:27:04 2024 +0800"
      },
      "committer": {
        "name": "Terry1504",
        "email": "35018769+Terry1504@users.noreply.github.com",
        "time": "Tue Jun 25 15:11:47 2024 +0800"
      },
      "message": "Replace old repo names with Cloudberry\n"
    },
    {
      "commit": "80e9b0d8b46d4e1f1b3c7d181e417138c0b5da82",
      "tree": "111abe6b6341a2d6f1534b832d5a96e85673e531",
      "parents": [
        "69583e2fa7f008603b25de00a0d39081f6022f9c"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jun 25 14:22:36 2024 +0800"
      },
      "committer": {
        "name": "Terry1504",
        "email": "35018769+Terry1504@users.noreply.github.com",
        "time": "Tue Jun 25 15:11:47 2024 +0800"
      },
      "message": "Update community settings for Cloudberry Database\n"
    },
    {
      "commit": "69583e2fa7f008603b25de00a0d39081f6022f9c",
      "tree": "d254ef3ee6da02c445c3dba80932d4c38a93bbcb",
      "parents": [
        "03639134cad98c2d3fbf71b87562a6359fba43d3"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@vmware.com",
        "time": "Wed May 01 15:32:17 2024 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "karen.huddleston@broadcom.com",
        "time": "Fri May 03 15:09:03 2024 -0700"
      },
      "message": "Add config option remove_duplicate_bucket\n\nWhen this option is `true` we will add a handler to modify the s3 endpoint and\nremove a duplicate bucket in order to support a customer use case where they\nwere getting NoSuchBucket errors\n"
    },
    {
      "commit": "03639134cad98c2d3fbf71b87562a6359fba43d3",
      "tree": "b7af65535568c51b7e2229547fef4b8dcee7f8be",
      "parents": [
        "e800d454b5f194877d27d55c07d6f6bb73beb93f"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@vmware.com",
        "time": "Wed May 01 15:31:32 2024 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "karen.huddleston@broadcom.com",
        "time": "Fri May 03 15:09:03 2024 -0700"
      },
      "message": "Wrap S3 Errors\n\nSome errors we get back are a bit confusing without context. Wrap them to read\nbetter.\n"
    },
    {
      "commit": "e800d454b5f194877d27d55c07d6f6bb73beb93f",
      "tree": "a276f4a5cda63a7d635cf97b770da4fdf89b0876",
      "parents": [
        "88cf545a024191e0e99da6866a7d2c3107479501"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@vmware.com",
        "time": "Wed May 01 15:29:50 2024 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "karen.huddleston@broadcom.com",
        "time": "Fri May 03 15:09:03 2024 -0700"
      },
      "message": "Make request retry logic more focused\n\nWe would previously retry any 404 error in case it was a NoSuchKey error that\nwe sometimes expect, but some 404 errors like NoSuchBucket should not be\nretried since they are unlikely to succeed.\n"
    },
    {
      "commit": "88cf545a024191e0e99da6866a7d2c3107479501",
      "tree": "af3cccc154b760c87373285a4e68fc9b54bbab02",
      "parents": [
        "62a6a08b4969ef95bdcea63546fd003d5ab0629f"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@vmware.com",
        "time": "Thu Mar 14 16:16:06 2024 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "karen.huddleston@broadcom.com",
        "time": "Fri Mar 15 12:14:41 2024 -0700"
      },
      "message": "Bumped pgx to v4.18.2, updated indirect dependencies\n\nAuthored-by: Karen Huddleston \u003ckhuddleston@vmware.com\u003e\n"
    },
    {
      "commit": "62a6a08b4969ef95bdcea63546fd003d5ab0629f",
      "tree": "356b2904bd4d6629da527822fa148deeeb1073f6",
      "parents": [
        "ea58e11cf610c84e93fa0a6ed29b5383fedfc35c"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Fri Feb 23 09:27:30 2024 -0800"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Tue Feb 27 18:23:33 2024 -0800"
      },
      "message": "Revert \"Alter path for endpoint configs\"\n\nThis reverts commit bce4362169dddc2ed81d84af95c6e3e7781065c6.\n\n10a4b72d - Only remove bucket name if not an IP\nbce4362  - Alter path for endpoint configs\n\nCommits 10a4b72d and bce4362 will be reverted because they cause a\n`NoSuchBucket` error when using an endpoint to access a bucket on s3\ncompliant object storage such as Minio. These two commits have the\nassumption that the bucket is automatically appended to the URI when the\nendpoint option is used to access the bucket. This is not true as local\ntesting with Minio starts to fail. The original issue that caused these\ntwo commits seemed to be an error where the URI built using endpoint by\nAWS SDK GO was appending the bucket_name twice. I am unable to reproduce\nthe original duplicate bucket_name seen previously, and these commits\nare causing backups and restore when using endpoints to fail. I am\nreverting these two commits.\n"
    },
    {
      "commit": "ea58e11cf610c84e93fa0a6ed29b5383fedfc35c",
      "tree": "60faeb51cb034fbac23b3f81c2197017bcdafe80",
      "parents": [
        "6b1352b258fe3ea74ec7a5364b44847f543872fc"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Fri Feb 23 09:27:18 2024 -0800"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Tue Feb 27 18:23:33 2024 -0800"
      },
      "message": "Revert \"Only remove bucket name if not an IP\"\n\nThis reverts commit 10a4b72d6d991086556f0430e90522aa32e92444.\n\n10a4b72d - Only remove bucket name if not an IP\nbce4362  - Alter path for endpoint configs\n\nCommits 10a4b72d and bce4362 will be reverted because they cause a\n`NoSuchBucket` error when using an endpoint to access a bucket on s3\ncompliant object storage such as Minio. These two commits have the\nassumption that the bucket is automatically appended to the URI when the\nendpoint option is used to access the bucket. This is not true as local\ntesting with Minio starts to fail. The original issue that caused these\ntwo commits seemed to be an error where the URI built using endpoint by\nAWS SDK GO was appending the bucket_name twice. I am unable to reproduce\nthe original duplicate bucket_name seen previously, and these commits\nare causing backups and restore when using endpoints to fail. I am\nreverting these two commits.\n"
    },
    {
      "commit": "6b1352b258fe3ea74ec7a5364b44847f543872fc",
      "tree": "e72799f4986a2f522fac18e072bb9bcfd3c440b5",
      "parents": [
        "10a4b72d6d991086556f0430e90522aa32e92444"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@vmware.com",
        "time": "Thu Oct 12 13:45:26 2023 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "khuddleston@vmware.com",
        "time": "Thu Oct 12 14:14:39 2023 -0700"
      },
      "message": "Upgrade golang dependencies\n\nThis is to address dependabot alerts\n"
    },
    {
      "commit": "10a4b72d6d991086556f0430e90522aa32e92444",
      "tree": "2ff49018da24191a4125d918518088d93e0919a0",
      "parents": [
        "bce4362169dddc2ed81d84af95c6e3e7781065c6"
      ],
      "author": {
        "name": "Andrew Repp",
        "email": "reppa@vmware.com",
        "time": "Tue Sep 26 12:22:37 2023 -0500"
      },
      "committer": {
        "name": "AJR-VMware",
        "email": "107145309+AJR-VMware@users.noreply.github.com",
        "time": "Thu Sep 28 13:07:30 2023 -0500"
      },
      "message": "Only remove bucket name if not an IP\n\nAWS SDK only duplicates the bucket name if fed hostname for an endpoint.\nSo add a check whether it\u0027s an IP address and do not remove bucketname\nfrom path if it is.\n\nMove the logic for doing so into session creation, because it turns out\nliterally every API needs this same treatment.\n"
    },
    {
      "commit": "bce4362169dddc2ed81d84af95c6e3e7781065c6",
      "tree": "f907f5f7ccab6f20b64221142a153fb0f596e5a1",
      "parents": [
        "2871ece42c861ceddd6179b84ee29b4adcb91efb"
      ],
      "author": {
        "name": "Andrew Repp",
        "email": "reppa@vmware.com",
        "time": "Thu Sep 21 16:02:12 2023 -0500"
      },
      "committer": {
        "name": "AJR-VMware",
        "email": "107145309+AJR-VMware@users.noreply.github.com",
        "time": "Fri Sep 22 08:44:05 2023 -0500"
      },
      "message": "Alter path for endpoint configs\n\nIn the case of using an endpoint directly, instead of relying on AWS to\nresolve it, the bucket name gets duplicated in the HTTP path, which\nmeans that all of the backups/restores have an extra \"root\" folder of\nthe bucket name. This breaks things like gpbackup_manager, as well as\ncontravening user expectations.\n\nTo solve this, we manually edit the path when uploading or downloading a\nfile with a config that contains a populated Endpoint field.\n"
    },
    {
      "commit": "2871ece42c861ceddd6179b84ee29b4adcb91efb",
      "tree": "b089017e1fc754d10bb20c97321600bfbeb29ca1",
      "parents": [
        "88d05dbef2bd54b455a9c2c62bc1a19bc96b8cf3"
      ],
      "author": {
        "name": "Lucas Bonner",
        "email": "blucas@vmware.com",
        "time": "Tue Aug 22 16:22:43 2023 -0500"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "khuddleston@vmware.com",
        "time": "Tue Aug 29 18:47:00 2023 -0700"
      },
      "message": "Changing CLA in CONTRIBUTING.md\n\n[GPR-1495]\n\nAuthored-by: Lucas Bonner \u003cblucas@vmware.com\u003e\n"
    },
    {
      "commit": "88d05dbef2bd54b455a9c2c62bc1a19bc96b8cf3",
      "tree": "471caa4979a7a056fcfae4f52ca4778d07981eb0",
      "parents": [
        "4918ccc6751fe5ec4a0ab28bc553a777667593ab"
      ],
      "author": {
        "name": "Andrew Repp",
        "email": "reppa@vmware.com",
        "time": "Fri May 26 13:13:09 2023 -0500"
      },
      "committer": {
        "name": "AJR-VMware",
        "email": "107145309+AJR-VMware@users.noreply.github.com",
        "time": "Fri May 26 15:57:21 2023 -0500"
      },
      "message": "Tidy up gomod and gosum for release\n"
    },
    {
      "commit": "4918ccc6751fe5ec4a0ab28bc553a777667593ab",
      "tree": "5692a75b4c3c86a87a886018cda5194d578c361c",
      "parents": [
        "8fd9beb85a44a36f5c200a55e3ac1fd4bfcdab7a"
      ],
      "author": {
        "name": "Andrew Repp",
        "email": "reppa@vmware.com",
        "time": "Sat May 06 06:34:49 2023 -0500"
      },
      "committer": {
        "name": "AJR-VMware",
        "email": "107145309+AJR-VMware@users.noreply.github.com",
        "time": "Mon May 08 12:32:39 2023 -0500"
      },
      "message": "Update api version\n\nThe previous PR added new CLI commands, but neglected to bump the API\nversion.  Update that now.\n"
    },
    {
      "commit": "8fd9beb85a44a36f5c200a55e3ac1fd4bfcdab7a",
      "tree": "d1ce1d4785ae5035aaa57f0a437e24277d3c37c0",
      "parents": [
        "5d2f37e003a580902aba6daef933fba0fb4260ee"
      ],
      "author": {
        "name": "Andrew Repp",
        "email": "reppa@vmware.com",
        "time": "Thu May 04 16:11:38 2023 -0500"
      },
      "committer": {
        "name": "AJR-VMware",
        "email": "107145309+AJR-VMware@users.noreply.github.com",
        "time": "Thu May 04 21:21:02 2023 -0500"
      },
      "message": "Add *_directory commands to the S3 plugin\n\nTo better facilitate development and debugging, add some basic utility\nfunctionality to the plugin\n\nlist_directory will list the contents of a given directory, defaulting\nto the provided storage directory in the plugin-config if no path is\ngiven in the command line.\n\ndelete_directory will recursively delete the contents of a given\ndirectory\n"
    },
    {
      "commit": "5d2f37e003a580902aba6daef933fba0fb4260ee",
      "tree": "860e6fbfbd86cc2af8bae833fb352574d6b2279e",
      "parents": [
        "abfdce300c2800e9d352590e245b731cc624e05e"
      ],
      "author": {
        "name": "Andrew Repp",
        "email": "reppa@vmware.com",
        "time": "Fri Apr 28 09:49:52 2023 -0500"
      },
      "committer": {
        "name": "AJR-VMware",
        "email": "107145309+AJR-VMware@users.noreply.github.com",
        "time": "Mon May 01 14:23:18 2023 -0500"
      },
      "message": "Update makefile to use gpsync\n\nGPDB7+ will ship with gpsync instead of gpscp, so prefer that if available. Fall back to gpscp if\nneeded.\n"
    },
    {
      "commit": "abfdce300c2800e9d352590e245b731cc624e05e",
      "tree": "2ea08248464ff0da0ab153e7cf1cc2ad81ab0e1e",
      "parents": [
        "d2daa4016466c84ea48e44687fee2c8dc8e0545c"
      ],
      "author": {
        "name": "Jamie McAtamney",
        "email": "jmcatamney@vmware.com",
        "time": "Fri Mar 03 09:54:59 2023 -0800"
      },
      "committer": {
        "name": "Jamie McAtamney",
        "email": "jmcatamney@vmware.com",
        "time": "Tue Mar 21 10:43:16 2023 -0700"
      },
      "message": "Update all dependencies for Go 1.19\n\nThe dependencies for this project were fairly out-of-date, not because\nit relied on anything specific in older versions of any dependencies but\nsimply because they hadn\u0027t been updated in a while.\n\nAs part of a general effort to update GPDB Go projects to 1.19, this\ncommit updates the required Go version and updates all dependencies to\ntheir currently-latest versions.\n"
    },
    {
      "commit": "d2daa4016466c84ea48e44687fee2c8dc8e0545c",
      "tree": "5595752b4262cbd6fe3afc3cb61785193c0c3d40",
      "parents": [
        "b1dc9ac545d96fbefb23d101f89d125b6f43aac8"
      ],
      "author": {
        "name": "Andrew Repp",
        "email": "reppa@vmware.com",
        "time": "Mon Jan 02 08:59:03 2023 -0600"
      },
      "committer": {
        "name": "AJR-VMware",
        "email": "107145309+AJR-VMware@users.noreply.github.com",
        "time": "Tue Jan 10 11:02:55 2023 -0800"
      },
      "message": "Inclusive language update\n\nUpdate terminology to match VMware inclusive language policy\n"
    },
    {
      "commit": "b1dc9ac545d96fbefb23d101f89d125b6f43aac8",
      "tree": "d5939733b095b284386273981dc32709b03ea285",
      "parents": [
        "36e94138c8c5790fbe07d798bc141580ed8291f2"
      ],
      "author": {
        "name": "gp-releng",
        "email": "gp-releng@pivotal.io",
        "time": "Wed Nov 02 12:51:47 2022 +0800"
      },
      "committer": {
        "name": "Wu Ning",
        "email": "ningw@vmware.com",
        "time": "Tue Nov 15 11:05:08 2022 +0800"
      },
      "message": "Add SECURITY.md"
    },
    {
      "commit": "36e94138c8c5790fbe07d798bc141580ed8291f2",
      "tree": "905d4553bf2ea882c1ee8afde6ebfc2c71758a34",
      "parents": [
        "96e13ad7d6937a18a07d1a2e5c8b4a2e47beba43"
      ],
      "author": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Fri May 20 11:27:18 2022 -0400"
      },
      "committer": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Thu Jun 02 23:23:48 2022 -0400"
      },
      "message": "Update tests to use ginkgo v2\n\nAuthored-by: Brent Doil \u003cbdoil@vmware.com\u003e\n"
    },
    {
      "commit": "96e13ad7d6937a18a07d1a2e5c8b4a2e47beba43",
      "tree": "f169331a7a3a4f9e7ed95098cbda3106aba92414",
      "parents": [
        "7ed84b11f1c196a7c9d0f6a57c835a03a82b00d7"
      ],
      "author": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Fri Jan 21 00:02:55 2022 -0500"
      },
      "committer": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Fri Jan 21 00:17:48 2022 -0500"
      },
      "message": "Bump gp-common-go-libs to v1.0.5\n\nAuthored-by: Brent Doil \u003cbdoil@vmware.com\u003e\n"
    },
    {
      "commit": "7ed84b11f1c196a7c9d0f6a57c835a03a82b00d7",
      "tree": "3432cf8d9ebcc33ff79496960126706429275c13",
      "parents": [
        "d3c940a4edb13ec65a9ddd153d35a5d76a81f331"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Fri Dec 03 19:37:30 2021 -0600"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Thu Jan 20 21:21:41 2022 -0600"
      },
      "message": "Enable request retry using AWS SDK\u0027s default retryer\n\nRequests to AWS can fail due to a variety of reasons beyond the control\nof gpbackup. Many of these reason\u0027s can be easily resolved by retrying a\nrequest. Reasons including, but not limited to, network instability, aws\neventual consistency, or multipart errors. Implemented using AWS SDK\u0027s\ndefault retryer. The retry additions here are the same as the one\u0027s\nimplemented by wal-g in order to resolve the same issues.\n\nwal-g reference commit.\nhttps://github.com/wal-g/wal-g/commit/8e3c68af68dd5d487bb1e7b5a986006a75e0224d\n\nAuthored-by: Kevin Yeap \u003ckyeap@vmware.com\u003e\n"
    },
    {
      "commit": "d3c940a4edb13ec65a9ddd153d35a5d76a81f331",
      "tree": "72bee6413b354d7c2d6b52279687c8a4cfee1c4a",
      "parents": [
        "beace0b3e7ceb45f9d5c7922d0009ace1b48add7"
      ],
      "author": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Mon Jan 17 17:05:28 2022 -0500"
      },
      "committer": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Tue Jan 18 21:33:57 2022 -0500"
      },
      "message": "Upgrade dependencies\n\nAuthored-by: Brent Doil \u003cbdoil@vmware.com\u003e\n"
    },
    {
      "commit": "beace0b3e7ceb45f9d5c7922d0009ace1b48add7",
      "tree": "c217c46e25ea2cc9c3ac28bae69b6f5e2e3a3f5d",
      "parents": [
        "32ba9092c8a40977686912dc8e540355a54cdc09"
      ],
      "author": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Tue Jan 11 12:59:38 2022 -0500"
      },
      "committer": {
        "name": "Brent Doil",
        "email": "bdoil@vmware.com",
        "time": "Tue Jan 18 21:33:57 2022 -0500"
      },
      "message": "Bump golang version to 1.17\n\nAuthored-by: Brent Doil \u003cbdoil@vmware.com\u003e\n"
    },
    {
      "commit": "32ba9092c8a40977686912dc8e540355a54cdc09",
      "tree": "76d8b5ae5a0d7c2f61383e8299b0bc7f0361b335",
      "parents": [
        "c5a6b59490ea96e8debcba4fef067de74b4e2934"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Thu Jul 15 19:54:04 2021 -0500"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Fri Jul 16 17:56:32 2021 -0500"
      },
      "message": "Fix encryption validation to check for \"on\" and \"off\"\n\nThis is to fix a regression caused by my commit 7d329a3. In that commit,\nthe wrong validation for the encryption option was implemented. The\nvalidation was supposed to ensure that the only valid values of \"on\" or\n\"off\" were specified, however it was incorrectly checking for the values\n\"yes\" and \"no\". The appriopriate changes to the test and regression have\nbeen made.\n\ns3 plugin reference regression commit:\nhttps://github.com/greenplum-db/gpbackup-s3-plugin/commit/7d329a3\n\nAuthored-by: Kevin Yeap \u003ckyeap@vmware.com\u003e\n"
    },
    {
      "commit": "c5a6b59490ea96e8debcba4fef067de74b4e2934",
      "tree": "08beedb9f076b31757dde529784b6701e3196d1d",
      "parents": [
        "4270cf92c35c820184702089b3535544671ec6c4"
      ],
      "author": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Wed Jun 09 15:23:20 2021 -0700"
      },
      "committer": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Wed Jun 09 16:05:52 2021 -0700"
      },
      "message": "Added pgport and backup_plugin_version to plugin options\n\nDuring backup, segment host specific configuration files are created and\nthis includes `pgport` and `backup_plugin_version` as additional fields in\nthe options. Now that plugins can only allow specific set of options,\nwe\u0027ve added these 2 fields as well.\n"
    },
    {
      "commit": "4270cf92c35c820184702089b3535544671ec6c4",
      "tree": "a46556414cba17d49b5011d989df3927b0998142",
      "parents": [
        "c1530dd65131d34d40db6ee4d54097293fa48185"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Wed May 26 18:34:56 2021 -0500"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Fri Jun 04 17:43:53 2021 -0500"
      },
      "message": "Remove unused and redundant function arguments\n\nRemoved redundant bucket arguement from function uploadFile since it was\nalready being passed in with the plugin configuration.\nreadConfigAndStartSession\u0027s operation arguement was removed when it was\ndecided to keep all s3 logs in one file rather than splitting them based\non restore and backup.\n\nreadConfigAndStartSession reference commit:\nhttps://github.com/greenplum-db/gpbackup-s3-plugin/commit/fca03f874b0333502c838b336c95fc5cbd621452\n\nAuthored-by: Kevin Yeap \u003ckyeap@vmware.com\u003e\n"
    },
    {
      "commit": "c1530dd65131d34d40db6ee4d54097293fa48185",
      "tree": "9fe90ed08398916c53d12bda8a356d261bcc9fce",
      "parents": [
        "7d329a3310504d58561dd7268b11aeef458d9576"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Mon May 17 19:27:09 2021 -0500"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Fri Jun 04 17:43:53 2021 -0500"
      },
      "message": "Chunksize and concurrency validation refactor\n\nConfiguration default values are now initialized before validation.\nMoved chunksize and concurrency validation to where all other\nconfiguration validation happens.\n\nAuthored-by: Kevin Yeap \u003ckyeap@vmware.com\u003e\n"
    },
    {
      "commit": "7d329a3310504d58561dd7268b11aeef458d9576",
      "tree": "e0fa77416c584931a9222c2ba71c72596bc248ff",
      "parents": [
        "73527409c48af83594c207ea2171db817389dec3"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Mon May 17 19:27:09 2021 -0500"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Fri Jun 04 17:43:53 2021 -0500"
      },
      "message": "Do not allow unknown plugin configuration options\n\nPreviously, s3 plugin would ignore unknown yaml options. There have been\ncases where an option was misspelled which can result in unexpected\nbehavior because mispelled options would be ignored. To be more strict\nwith the configuration options, switch to use an options struct. This\nallows use of yaml.UnmarshalStrict which will return an error if unknown\noptions are read in from the configuration file. S3 plugin will error\nout immediately if it finds any unknown configurations.\n\nAuthored-by: Kevin Yeap \u003ckyeap@vmware.com\u003e\n"
    },
    {
      "commit": "73527409c48af83594c207ea2171db817389dec3",
      "tree": "6a91005d06bc0dd1dcad081f24c2bfcef6d23bc0",
      "parents": [
        "530ea5d28143f7505d8262079c8c64a25e00b8df"
      ],
      "author": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Wed May 19 11:05:06 2021 -0700"
      },
      "committer": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Wed May 19 11:05:06 2021 -0700"
      },
      "message": "Fix unit tests for chunk size defaults\n\nThe download/upload chunk size defaults have been updated to be 500MB\ninstead of 10MB. However, the unit tests were not updated\naccordingly. This PR fixes the broken unit tests.\n\nReference commit:\nhttps://github.com/greenplum-db/gpbackup-s3-plugin/commit/530ea5d28143f7505d8262079c8c64a25e00b8df\n"
    },
    {
      "commit": "530ea5d28143f7505d8262079c8c64a25e00b8df",
      "tree": "15000e41300e0e1911bc79c406bae2680d66c09c",
      "parents": [
        "6cbedb6e49563f2679431a048e7d7771b3b34568"
      ],
      "author": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Mon May 10 19:12:17 2021 -0700"
      },
      "committer": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Tue May 18 10:32:57 2021 -0700"
      },
      "message": "Updated upload/download default chunk size and restore data changes\n\nIncreased the default upload and download chunk size to 500MB.\n\nModified restore_data behavior to make sure we always conform with chunk\nsize and concurrency. We will have as many download workers as the\nconfigured concurrency value and similarly the buffer size that each\nworker downloads will be based on the configured chunk size.\nEach individual worker will implicitly set the s3 manager\u0027s downloader\nchunksize as well to the same value and concurrency to 1 as each worker\nhandles only one chunk at a time.\n\nAdded additional debug logging messages.\n"
    },
    {
      "commit": "6cbedb6e49563f2679431a048e7d7771b3b34568",
      "tree": "88c19d77c5dbd77b05159ca727822f25791b2e98",
      "parents": [
        "19e1619c89001391a147942916ee0599f648aaac"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@vmware.com",
        "time": "Wed Feb 10 19:39:59 2021 -0600"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-vmware@users.noreply.github.com",
        "time": "Tue Feb 16 16:33:51 2021 -0600"
      },
      "message": "Support connection to Amazon S3 over IPv6\n\nConnect to Amazon S3 using dual-stack endpoints. Amazon S3 dual-stack\nendpoints support requests to S3 buckets over IPv6 and IPv4.  When you\nmake a request to a dual-stack endpoint, the bucket URL resolves to an\nIPv6 or an IPv4 address.\n\nAuthored-by: Kevin Yeap \u003ckyeap@vmware.com\u003e\n"
    },
    {
      "commit": "19e1619c89001391a147942916ee0599f648aaac",
      "tree": "1942970f52984375ff5860a0dd202970b0171582",
      "parents": [
        "905f2e624e2a5f2fc7b8ce5f98de9bd8b4597039"
      ],
      "author": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Tue Jan 19 16:43:24 2021 -0800"
      },
      "committer": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Tue Jan 19 16:43:24 2021 -0800"
      },
      "message": "Fix README for install step\n"
    },
    {
      "commit": "905f2e624e2a5f2fc7b8ce5f98de9bd8b4597039",
      "tree": "5e9635041d21fb376c332cbddb1d6aeb90324540",
      "parents": [
        "d2881e60b8d269ebd62741383933dff1ac0617f8"
      ],
      "author": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Thu Jan 14 09:50:39 2021 -0800"
      },
      "committer": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Thu Jan 14 09:50:39 2021 -0800"
      },
      "message": "Updated s3 plugin readme build info\n"
    },
    {
      "commit": "d2881e60b8d269ebd62741383933dff1ac0617f8",
      "tree": "887c3ee500604fd220c1154d7360fba08dbe9778",
      "parents": [
        "0e3b7a3cb1b55173ebd92156ae01474e1f149160"
      ],
      "author": {
        "name": "hughcapet",
        "email": "bungina@arenadata.io",
        "time": "Wed Oct 21 13:09:20 2020 +1000"
      },
      "committer": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Wed Nov 11 00:36:31 2020 -0800"
      },
      "message": "Add memory pool and download parameters\n\nPrevious download implementation (with the growing size of download\nchunk and download buffers the size of the number of chunks) used to\ncause unbounded growth of memory usage and, therefore, restore process\nfailure.\nNew logic implies fixed chunk size and usage of memory pool the size\nof the number of workers as download buffers. Chunk size and the number\nof workers can be adjusted in config file.\n\n- restore_max_concurrent_requests - int value to configure\n  download concurrency (number of workers). Default: 6.\n- restore_multipart_chunksize - bytesize format (\"5B\", \"10KB\", \"1MB\"\n  etc)\n  to specify download chunk size. Default: 10MB.\n"
    },
    {
      "commit": "0e3b7a3cb1b55173ebd92156ae01474e1f149160",
      "tree": "1c40c606b575183d9abdc91d56ef3c84bb137c89",
      "parents": [
        "008582b69ad13f6e4eab36ed1d1697f080ec0e83"
      ],
      "author": {
        "name": "Ekaterina Dontsova",
        "email": "edontsova@pivotal.io",
        "time": "Mon Oct 05 10:48:27 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 05 10:48:27 2020 -0700"
      },
      "message": "Adds upload parameters to config (#33)\n\n- backup_max_concurrent_requests - int value to configure\r\n   concurrent upload of multi part file. Should\r\n   be less then max_concurrent_requests. Default\r\n   value is 6.\r\n - backup_multipart_chunksize - bytesize format (\"5B\", \"10KB\", \"1MB\" etc)\r\n   to specify chunk size when upload multi part file.\r\n   Should be more then 5MB to avoid \"part size must be at least\r\n   5242880 bytes\" error and not less then filesize/10000 to avoid\r\n   \"exceeded total allowed configured MaxUploadParts\" error.\r\n   Default value is 10Mb.\r\n\r\nAuthored-by: Kate Dontsova \u003cedontsova@pivotal.io\u003e"
    },
    {
      "commit": "008582b69ad13f6e4eab36ed1d1697f080ec0e83",
      "tree": "249bd375e7605954fb7910386f0124cfe068d831",
      "parents": [
        "b457a09b76d1c7133ca96e86265c14f3fa7f2fe5"
      ],
      "author": {
        "name": "Ekaterina Dontsova",
        "email": "ekaterina.dontsova@gmail.com",
        "time": "Thu Oct 01 11:23:14 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 01 11:23:14 2020 -0700"
      },
      "message": "Adds upload parameters to config (#31)\n\n- upload_concurrency - int value to configure\r\n   concurrent upload of multi part file. Should\r\n   be less then max_concurrent_requests. Default\r\n   value is 6.\r\n - upload_chunk_size - bytesize format (\"5B\", \"10KB\", \"1MB\" etc)\r\n   to specify chunk size when upload multi part file.\r\n   Should be more then 5MB to avoid \"part size must be at least\r\n   5242880 bytes\" error and not less then filesize/10000 to avoid\r\n   \"exceeded total allowed configured MaxUploadParts\" error.\r\n   Default value is 10Mb.\r\n\r\nAuthored-by: Kate Dontsova \u003cedontsova@pivotal.io\u003e"
    },
    {
      "commit": "b457a09b76d1c7133ca96e86265c14f3fa7f2fe5",
      "tree": "e023ab1a377f4ee2de924da125cb68a28973bdb2",
      "parents": [
        "168c4e363b45d3fb774b0a221dbdd2e2cb315cfa"
      ],
      "author": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Thu Sep 24 10:17:04 2020 -0700"
      },
      "committer": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Mon Sep 28 13:33:51 2020 -0700"
      },
      "message": "Added support to accept http_proxy for s3 plugin\n\nCo-authored-by: Shivram Mani \u003cshivram.mani@gmail.com\u003e\n"
    },
    {
      "commit": "168c4e363b45d3fb774b0a221dbdd2e2cb315cfa",
      "tree": "3aa8d6940b706a97973e7fe293f3eb2902b144a2",
      "parents": [
        "376144bd2fe020e09ed7501ab0d7a0f6cc0f1b22"
      ],
      "author": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Fri Sep 11 15:50:43 2020 -0700"
      },
      "committer": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Fri Sep 11 15:50:43 2020 -0700"
      },
      "message": "Add CONTRIBUTING.md file\n"
    },
    {
      "commit": "376144bd2fe020e09ed7501ab0d7a0f6cc0f1b22",
      "tree": "fb0984b4c5417b614528f8289019e370bc2e3197",
      "parents": [
        "fca03f874b0333502c838b336c95fc5cbd621452"
      ],
      "author": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Tue Sep 01 21:17:57 2020 -0700"
      },
      "committer": {
        "name": "Jimmy Yih",
        "email": "jyih@pivotal.io",
        "time": "Tue Sep 01 21:17:57 2020 -0700"
      },
      "message": "Add Code of Conduct file\n"
    },
    {
      "commit": "fca03f874b0333502c838b336c95fc5cbd621452",
      "tree": "e292431349c22fa973c2317606100487b3ad9528",
      "parents": [
        "8c310450fc3aa07e5d3e00ba1479850f45881504"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Tue Jun 30 19:46:21 2020 -0500"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-pivotal@users.noreply.github.com",
        "time": "Wed Jul 08 17:44:57 2020 -0500"
      },
      "message": "Remove debug configuration\n\nWe don\u0027t want to give users the ability to change what gets logged. All\ndebug statements are logged by default. This also changes the logging\nlocation to gpbackup_s3_plugin.\n\nAuthored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\n"
    },
    {
      "commit": "8c310450fc3aa07e5d3e00ba1479850f45881504",
      "tree": "c9bb32c7d71030a60c758f7c702bb90b1fde0d4d",
      "parents": [
        "dfe8d0b7f0247413b01e6f3258b116bfa8c8b4f2"
      ],
      "author": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Tue Jun 23 15:37:38 2020 -0700"
      },
      "committer": {
        "name": "Shivram Mani",
        "email": "shivram.mani@gmail.com",
        "time": "Tue Jun 23 15:37:38 2020 -0700"
      },
      "message": "OSS notice update\n"
    },
    {
      "commit": "dfe8d0b7f0247413b01e6f3258b116bfa8c8b4f2",
      "tree": "de4fd5ef8335e6e9bc1e4ce1950eea32e43f0a55",
      "parents": [
        "3f0a8957f18b677ed41ffd24c5404d55c17e98c1"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Jun 08 16:52:39 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 16:52:39 2020 -0700"
      },
      "message": "Fix regression in S3 plugin SetupPluginForBackup (#29)\n\nWhen executed for metadata only, the call fails on the segments because the backup data directories do not exist. This behavior did not manifest during regular backup command because gpbackup creates those directories before calling the plugin."
    },
    {
      "commit": "3f0a8957f18b677ed41ffd24c5404d55c17e98c1",
      "tree": "66362c6c63343932eb0b9a2ca75c4cb78254f1db",
      "parents": [
        "2efd6d4d6c0475ba6e994576fd01681a129ecac3"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Jun 08 15:35:29 2020 -0700"
      },
      "committer": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Jun 08 15:35:29 2020 -0700"
      },
      "message": "Fix the log filename (convert to lower case)\n"
    },
    {
      "commit": "2efd6d4d6c0475ba6e994576fd01681a129ecac3",
      "tree": "c6b978d24ed24cb6d087a7fa3add2030a8933d96",
      "parents": [
        "ed0f4ea38293417e8787645037ef43e6072729f6"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Tue Apr 21 02:55:44 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 02:55:44 2020 -0700"
      },
      "message": "Allow users to set debug logging using plugin config (#28)\n\n"
    },
    {
      "commit": "ed0f4ea38293417e8787645037ef43e6072729f6",
      "tree": "23298f8ac13e47cb4ece34e32c5c02015df16210",
      "parents": [
        "1f8f4a122c3881d70be08f5b4c3db2334f0815fb"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Apr 13 14:40:39 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 14:40:39 2020 -0700"
      },
      "message": "Use smaller chunk size during uploads (#27)\n\nChange upload concurrency to 6 (s3-plugin-perf job shows an improvement of around 50% for uploads)"
    },
    {
      "commit": "1f8f4a122c3881d70be08f5b4c3db2334f0815fb",
      "tree": "75ad4e5d0fc1d6829f0245e973694f8f2acaa13b",
      "parents": [
        "3d4e281ae26f1c1c88a740f333fa05bd72d01306"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Thu Apr 09 17:23:03 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 17:23:03 2020 -0700"
      },
      "message": "Run go fmt and go mod tidy\n\n"
    },
    {
      "commit": "3d4e281ae26f1c1c88a740f333fa05bd72d01306",
      "tree": "e142bd79e4dbe9dc2954299458ef060fcf628c4a",
      "parents": [
        "5551c6be2aa75f44c0f317d4d817bc68a26959e5"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Apr 06 15:46:52 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 06 15:46:52 2020 -0700"
      },
      "message": "Add number of workers for parallel directory operations (#25)\n\n"
    },
    {
      "commit": "5551c6be2aa75f44c0f317d4d817bc68a26959e5",
      "tree": "a6fc9ff63ec308996c2a8651077579d3669b8ab2",
      "parents": [
        "f149ab75d0fb8cca5ac5d807d80ce9c692761850"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Apr 06 15:44:48 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 06 15:44:48 2020 -0700"
      },
      "message": "Deallocate download buffers when done (#24)\n\n"
    },
    {
      "commit": "f149ab75d0fb8cca5ac5d807d80ce9c692761850",
      "tree": "86177899ab597c9653c7e46ea3e4cfbaa6a34acf",
      "parents": [
        "769a7f996f1550c7611f765a11205daffaed5b38"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Fri Apr 03 20:50:02 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 20:50:02 2020 -0700"
      },
      "message": "Make logging consistent for backup and restore directory (#23)\n\n"
    },
    {
      "commit": "769a7f996f1550c7611f765a11205daffaed5b38",
      "tree": "8dff2d113cc069eb920750b7be0860935f65672e",
      "parents": [
        "d229da4df2b6bebfeb82cba915e8e325f60a5be2"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Fri Apr 03 20:47:29 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 20:47:29 2020 -0700"
      },
      "message": "Enable Debug builds for gpbackup-s3-plugin (#21)\n\n"
    },
    {
      "commit": "d229da4df2b6bebfeb82cba915e8e325f60a5be2",
      "tree": "89e53eef9a7cf703f95942e98fab1248b366f07d",
      "parents": [
        "d3618deff894c5ea8c50bb760ffa199d95ac8e1d"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Thu Apr 02 19:02:38 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 19:02:38 2020 -0700"
      },
      "message": "Split the plugin code based on functionality (#22)\n\n"
    },
    {
      "commit": "d3618deff894c5ea8c50bb760ffa199d95ac8e1d",
      "tree": "03b9424078b2ac68eaecea493fa7fb6005682cc6",
      "parents": [
        "10513142512327c8f1a210aa1f7c2fe14ce00b8c"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Thu Apr 02 12:23:41 2020 -0700"
      },
      "committer": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Thu Apr 02 17:32:09 2020 -0700"
      },
      "message": "Update go modules to the latest stable version\n"
    },
    {
      "commit": "10513142512327c8f1a210aa1f7c2fe14ce00b8c",
      "tree": "3f0965cbdd40532b9fdeca4334293f02d3f21258",
      "parents": [
        "5c9c1ab83423600a41b94546a66d874c131243ef"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Thu Apr 02 12:19:00 2020 -0700"
      },
      "committer": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Thu Apr 02 12:19:00 2020 -0700"
      },
      "message": "Remove dependency on module github.com/alecthomas/units\n"
    },
    {
      "commit": "5c9c1ab83423600a41b94546a66d874c131243ef",
      "tree": "d9c66c0f35ff35591d1fed23236bf3669b7c3c44",
      "parents": [
        "fb8a4f1cceaababc621e5b802b93d381024a5e39"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Wed Apr 01 22:44:43 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 01 22:44:43 2020 -0700"
      },
      "message": "Introduce backupDirectory and restoreDirectory (#17)\n\n* Introduce backupDirectory and restoreDirectory\r\nto help with performance testing. The performance testing job\r\nfor S3 would backup and restore 10-50GB of data using parallel\r\nand serial versions of directory API.\r\n\r\n* Enable parallel uploads and downloads for directory in addition to serial\r\n* Make Backup and Restore Directory commands as \u0027Hidden\u0027\r\n"
    },
    {
      "commit": "fb8a4f1cceaababc621e5b802b93d381024a5e39",
      "tree": "c3e2e6bdd3528b09899f348005df82afa14422b4",
      "parents": [
        "1142ac5595fbcc8c214bfcd2d8a3bddf20716c18"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Wed Apr 01 03:50:56 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 01 03:50:56 2020 -0700"
      },
      "message": "Conditionally use verbosity level for time tracking (#19)\n\n"
    },
    {
      "commit": "1142ac5595fbcc8c214bfcd2d8a3bddf20716c18",
      "tree": "8b9ff79246277f87ede60bbc4f05536563e6db84",
      "parents": [
        "0a62a3324bc9cae7057006430ef7d18df4d206a5"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Tue Mar 31 17:58:44 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 17:58:44 2020 -0700"
      },
      "message": "Set Log verbosity based on plugin config (#20)\n\nThe verbosity can now be turned on by setting \"debug: true\" in the pluginconfig file"
    },
    {
      "commit": "0a62a3324bc9cae7057006430ef7d18df4d206a5",
      "tree": "c0eef4417372ca094346a87ad4c084c69d5af0ac",
      "parents": [
        "151ba6b9706684a41c6eb5aee8e2e1b95c4eb2fe"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Tue Mar 31 17:44:14 2020 -0700"
      },
      "committer": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Tue Mar 31 17:44:14 2020 -0700"
      },
      "message": "Use a buffer during S3 download instead of a file\n\nOn some systems the S3 downloader is trying to do a seek into the\nfile even though it is less than the mininum chunk size.\n"
    },
    {
      "commit": "151ba6b9706684a41c6eb5aee8e2e1b95c4eb2fe",
      "tree": "63bc62ca5e342b0638bdafc1f4ef0929648adb46",
      "parents": [
        "c3ef6b553a33703aa1fb2918ff09e5b8321657ba"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Mar 30 17:13:01 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 17:13:01 2020 -0700"
      },
      "message": "Enable parallel S3 downloads in chunks (#16)\n\nWe are using parallel range requests instead of Downloader.Concurrency to be able to stream the data as we receive the individual chunks. Otherwise we would need to wait till the whole file has been downloaded."
    },
    {
      "commit": "c3ef6b553a33703aa1fb2918ff09e5b8321657ba",
      "tree": "c13f6ffee637b8b68df2ede4365de9bdd5ca075a",
      "parents": [
        "53e37484ebd207aab3f9164e65e9c8626881ff9b"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Tue Mar 24 14:13:39 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 14:13:39 2020 -0700"
      },
      "message": "Track elapsed time for uploads and downloads (#18)\n\n"
    },
    {
      "commit": "53e37484ebd207aab3f9164e65e9c8626881ff9b",
      "tree": "57502255a2d0243b97821b570af2e4f5a03ba215",
      "parents": [
        "19cd00b90d4a3c468c37e6f243e3ad558abe6e35"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Wed Mar 04 13:39:13 2020 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 13:39:13 2020 -0800"
      },
      "message": "Use the file object instead of Reader/Writer interface (#15)\n\nMakes it easier to enable concurrent downloads and uploads."
    },
    {
      "commit": "19cd00b90d4a3c468c37e6f243e3ad558abe6e35",
      "tree": "7dd955daa6b95b90b0a0446c120788ce4e57a65a",
      "parents": [
        "6901ada062136755ab746ee1544c4f836700e4ea"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Mar 02 21:59:55 2020 -0800"
      },
      "committer": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Mar 02 21:59:55 2020 -0800"
      },
      "message": "Remove indirect go module dependencies\n"
    },
    {
      "commit": "6901ada062136755ab746ee1544c4f836700e4ea",
      "tree": "a2712ae600ae4974b89b60fa3b7f60f00dc90d08",
      "parents": [
        "4b2af8c3848fd5a7c28cd708b03550b781f0c67f"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Mon Mar 02 17:43:19 2020 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 17:43:19 2020 -0800"
      },
      "message": "Update go modules to the latest stable version (#14)\n\n"
    },
    {
      "commit": "4b2af8c3848fd5a7c28cd708b03550b781f0c67f",
      "tree": "0652f7ee701be41cbacb0acae1622d81d61574c8",
      "parents": [
        "3c1403e0ebedbb9b693211719da3bed156183190"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Wed Feb 26 14:41:51 2020 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 26 14:41:51 2020 -0800"
      },
      "message": "Enable logging of messages in s3 plugin (#13)\n\nThis enables logging of the number of bytes that were uploaded or downloaded from s3 for each file.\r\n\r\ngpbackup example:\r\n```\r\n[DEBUG]:-Uploaded 94827 bytes for file backups/backups/20200225/20200225141705/gpbackup_0_20200225141705\r\n[DEBUG]:-Uploaded 96864 bytes for file backups/backups/20200225/20200225141705/gpbackup_1_20200225141705\r\n[DEBUG]:-Uploaded 97203 bytes for file backups/backups/20200225/20200225141705/gpbackup_2_20200225141705\r\n```\r\n\r\ngprestore example:\r\n```\r\n[DEBUG]:-Downloaded 16476981 bytes for file backups/backups/20200218/20200218211958/gpbackup_0_20200218211958_16401.gz\r\n[DEBUG]:-Downloaded 16547158 bytes for file backups/backups/20200218/20200218211958/gpbackup_2_20200218211958_16401.gz\r\n[DEBUG]:-Downloaded 16378459 bytes for file backups/backups/20200218/20200218211958/gpbackup_1_20200218211958_16401.gz\r\n```"
    },
    {
      "commit": "3c1403e0ebedbb9b693211719da3bed156183190",
      "tree": "f0a5ccc6558e94e8247d392ad81028ccef02b2e5",
      "parents": [
        "807b2bb843d9fe9cf6c0663d6e257a75c695d58a"
      ],
      "author": {
        "name": "Lav Jain",
        "email": "ljain@pivotal.io",
        "time": "Tue Feb 25 13:50:44 2020 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 25 13:50:44 2020 -0800"
      },
      "message": "Simply delete operation by removing unnecessary code (#12)\n\n* Simply delete operation by removing unnecessary code\r\n"
    },
    {
      "commit": "807b2bb843d9fe9cf6c0663d6e257a75c695d58a",
      "tree": "24bc6a094a5aae617cded4bf4b94be282a632625",
      "parents": [
        "51d8dbc031e833f53fceb9de202bc51026a2b830"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Thu Jan 02 16:44:33 2020 -0800"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Thu Jan 02 16:47:24 2020 -0800"
      },
      "message": "Proper tool dependency and go1.12- compatibility\n\nFrom the go1.13 release notes:\nThe GO111MODULE environment variable continues to default to auto, but\nthe auto setting now activates the module-aware mode of the go command\nwhenever the current working directory contains, or is below a directory\ncontaining, a go.mod file — even if the current directory is within\nGOPATH/src.\n\nWhile we transition to our new dependency manager it will be a good idea\nto maintain a bit of backward compatibility with older version of\ngolang. This change does not affect developers compiling with go1.13+,\nbut fixes compilation for developers compiling with go1.12-.\n\nAdded tooling dependency\n\nAuthored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\n"
    },
    {
      "commit": "51d8dbc031e833f53fceb9de202bc51026a2b830",
      "tree": "baea6ba378e6f02a3f60ecffb978c2ef77eb43c5",
      "parents": [
        "ec8e1274d74e872eb2077cf157b06547664a91d2"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Fri Nov 08 16:17:40 2019 -0800"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "36176870+kyeap-pivotal@users.noreply.github.com",
        "time": "Thu Dec 12 11:22:50 2019 -0800"
      },
      "message": "Change dependency manager from dep to go modules\n\ngo modules is the offically support dependency manager for golang. The\ngolang version 1.13.4 was used to generate the go.sum file.  Changes\nthat were made were done in the following order.\n\n1. Run `go mod init` in the root of the directory. This converted our\n   Gopkg.lock file into a go.mod file which tracks our dependencies.\n2. Delete the Gopkg.toml and the Gopkg.lock file\n3. Make according changes to the Makefile to use the new dependecy\n   manager\n4. Build the project to make golang generate the go.sum file\n5. Run tests to add testing dependencies to the go.mod and go.sum file\n6. Run `go mod tidy` to clean up potentially unused dependencies\n\nAuthored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\n"
    },
    {
      "commit": "ec8e1274d74e872eb2077cf157b06547664a91d2",
      "tree": "98174389c0ac7310370fe8156945f51d3299bbc6",
      "parents": [
        "00eed4b9924b9628eee9a8d6920d2f7088fe8252"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Thu Aug 29 12:45:05 2019 -0700"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Thu Aug 29 12:45:32 2019 -0700"
      },
      "message": "Fix broken Makefile rules from previous commit\n\nAuthored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\n"
    },
    {
      "commit": "00eed4b9924b9628eee9a8d6920d2f7088fe8252",
      "tree": "768dacdea261cc8e9f6d9c6c7b5a23424f113027",
      "parents": [
        "6ec5233934638a5a88aafc6dc64386df3b99a788"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Wed Aug 28 17:36:44 2019 -0700"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Wed Aug 28 17:36:44 2019 -0700"
      },
      "message": "Various makefile improvements\n\n- Detect if dep is installed into $GOPATH/bin\n- Detect if linter is installed into $GOPATH/bin\n- Remove race conditions for the rule \"all\"\n- Immediately stops if GOPATH environment variable is not set\n- Removed various unused or redundant rules\n\nAuthored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\n"
    },
    {
      "commit": "6ec5233934638a5a88aafc6dc64386df3b99a788",
      "tree": "483eb20c4320f6decd8565745c853533ae594f42",
      "parents": [
        "50eb29b182d42d6b04115434b12de42a018ac213"
      ],
      "author": {
        "name": "Trevor Yacovone",
        "email": "tyacovone@pivotal.io",
        "time": "Tue Jun 04 09:49:14 2019 -0700"
      },
      "committer": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Tue Jun 04 09:49:14 2019 -0700"
      },
      "message": "Change destination of build_linux to be local copy of binary\n\n* to unify this destination across various projects; linux build should\n*not* be put into the /bin directory on macos\n\nCo-authored-by: Trevor Yacovone \u003ctyacovone@pivotal.io\u003e\nCo-authored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "50eb29b182d42d6b04115434b12de42a018ac213",
      "tree": "4df27502dedeac201db40cf9a5c5bf5b9778ee23",
      "parents": [
        "aaf91aa8bb7f34852fad0390b0dcded11b57d78d"
      ],
      "author": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Tue May 21 07:11:20 2019 -0700"
      },
      "committer": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Tue May 21 07:11:20 2019 -0700"
      },
      "message": "Reuse variable \"err\" to preserve its final value\n\nAuthored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "aaf91aa8bb7f34852fad0390b0dcded11b57d78d",
      "tree": "3e40591f0f12ead4cc5ca56b57c33ed1221006f0",
      "parents": [
        "563ba0666860f0a063903de8ea66d63bd3f0c71a"
      ],
      "author": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Thu May 16 17:07:39 2019 -0700"
      },
      "committer": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Mon May 20 12:22:45 2019 -0700"
      },
      "message": "Add delete-backup function\n\n* bump to 0.4.0 API\n\nAuthored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "563ba0666860f0a063903de8ea66d63bd3f0c71a",
      "tree": "dd3e2dd6311795b7629a020d76ccd19d0f927747",
      "parents": [
        "16b18a1a41c028350c106cdb19a49c94c229c3d2"
      ],
      "author": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Fri May 17 09:47:31 2019 -0700"
      },
      "committer": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Mon May 20 09:52:21 2019 -0700"
      },
      "message": "Close file after reading\n\n* refactor logic to reduce in-method returns\n\nAuthored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "16b18a1a41c028350c106cdb19a49c94c229c3d2",
      "tree": "ea30114b603683dd7ae85049b232f87c413262de",
      "parents": [
        "bc14ed52d8337d3849a8742370dbda359fc5bd34"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Wed Feb 06 12:16:26 2019 -0800"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Wed Feb 06 12:19:11 2019 -0800"
      },
      "message": "Update License and Notice files\n\nCo-authored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\nCo-authored-by: Trevor Yacovone \u003ctyacovone@pivotal.io\u003e\n"
    },
    {
      "commit": "bc14ed52d8337d3849a8742370dbda359fc5bd34",
      "tree": "5aff75edb7816df4fe8df546793183c695f53ab0",
      "parents": [
        "287991864e7c3a3fa3a8492203df8b61325fee56"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Wed Jan 02 10:20:54 2019 -0800"
      },
      "committer": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Wed Jan 02 10:20:54 2019 -0800"
      },
      "message": "Add description to s3 test for path\n\n* improve code readability\n\nCo-authored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\nCo-authored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "287991864e7c3a3fa3a8492203df8b61325fee56",
      "tree": "e79cfc3e4fa19eacf48cdd1c5f1bc4d8a4a909b9",
      "parents": [
        "f9d9917ccc87a401f43ae3b7cc0901b1b94a7b0b"
      ],
      "author": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Tue Dec 11 10:58:05 2018 -0800"
      },
      "committer": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Tue Dec 11 10:58:05 2018 -0800"
      },
      "message": "Add missing error check\n\nCo-authored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\nCo-authored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "f9d9917ccc87a401f43ae3b7cc0901b1b94a7b0b",
      "tree": "f32c1f2478842fd754830896d668f59a467267cc",
      "parents": [
        "5f491a9a419fd5e7419ff14f8c14909cf4a0b413"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Tue Dec 11 10:32:00 2018 -0800"
      },
      "committer": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Tue Dec 11 10:32:00 2018 -0800"
      },
      "message": "update dependencies\n\nCo-authored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\nCo-authored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "5f491a9a419fd5e7419ff14f8c14909cf4a0b413",
      "tree": "02269f5fde19c2636d54f2e7bcae5e2ff262dc41",
      "parents": [
        "1327271477e0ae8f720bb7fa366deef3f439a09b"
      ],
      "author": {
        "name": "Bryan Rosander",
        "email": "bryan@corvana.com",
        "time": "Wed Nov 28 17:40:28 2018 -0500"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Mon Dec 10 15:16:06 2018 -0800"
      },
      "message": "Using default creds if none provided\n"
    },
    {
      "commit": "1327271477e0ae8f720bb7fa366deef3f439a09b",
      "tree": "00f8efd101a4dd33acc9efebfb7659ef6d1a9cb0",
      "parents": [
        "652d37a1f0bd015faf1081454fcf137467621e33"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Mon Dec 10 15:09:28 2018 -0800"
      },
      "committer": {
        "name": "Larry Hamel",
        "email": "lhamel@pivotal.io",
        "time": "Mon Dec 10 15:09:28 2018 -0800"
      },
      "message": "add PR template with reminders of requirements\n\nCo-authored-by: Karen Huddleston \u003ckhuddleston@pivotal.io\u003e\nCo-authored-by: Larry Hamel \u003clhamel@pivotal.io\u003e\n"
    },
    {
      "commit": "652d37a1f0bd015faf1081454fcf137467621e33",
      "tree": "4caf0aea918d2f160a77a608063843ac22bbe8d5",
      "parents": [
        "67f11429ad88684529e473e48190b8f6ceb55cf8"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Mon Dec 10 14:37:03 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 10 14:37:03 2018 -0800"
      },
      "message": "Fix typo in plugin usage test"
    },
    {
      "commit": "67f11429ad88684529e473e48190b8f6ceb55cf8",
      "tree": "d43424ef000b6688ec8a8ded421c03f1d4d8c2e8",
      "parents": [
        "094b12e26f9760b93f93ba59f6a4a568482529a4"
      ],
      "author": {
        "name": "Kevin Yeap",
        "email": "kyeap@pivotal.io",
        "time": "Thu Aug 30 16:03:39 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Thu Aug 30 16:03:39 2018 -0700"
      },
      "message": "Increase part upload size from 5MB to 500MB\n\nThe default part upload size for S3 is 5MB with a maximum of 10,000\nparts per file. This means a single file can be no bigger than 50GB. By\nincreasing the part size to 500MB we allow single files of up 5TB to be\nuploaded.\n\nCo-authored-by: Kevin Yeap \u003ckyeap@pivotal.io\u003e\nCo-authored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "094b12e26f9760b93f93ba59f6a4a568482529a4",
      "tree": "a72b47d09af93b94a50b5df721483f219b70f654",
      "parents": [
        "76e1a3074663c8d6445323a500b9f298b57942d2"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Tue Aug 14 14:04:45 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 14 14:04:45 2018 -0700"
      },
      "message": "Remove README line about plugins and supported flags\n\n* Plugins are now supported with more than just single-data-file and metadata-only so we are removing the line that said those were the only two supported flags.\r\n\r\nCo-authored by: Karen Huddleston \u003ckhuddleston@pivotal.io\u003e\r\nCo-authored by: Kevin Yeap \u003ckyeap@pivotal.io\u003e"
    },
    {
      "commit": "76e1a3074663c8d6445323a500b9f298b57942d2",
      "tree": "a0f8a48843d5e7a78d2f6040d02dc0f1e115cb8a",
      "parents": [
        "9de34d755249e47813a2345a4681f95d71d7b1f6"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Thu Aug 02 17:54:39 2018 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Fri Aug 03 10:59:02 2018 -0700"
      },
      "message": "Parallelize copy and download, download in chunks\n\nWe now perform downloads for the next chunk of data during the time that\nCopy is loading the previous chunk of data into the database. This will\nentirely hide the cost of downloading and improves overall performance\nsignificantly.\n\nThe download task downloads chunks of the file by making\nranged GET requests. The chunk size chosen after experimentation is 100MiB.\n\nAuthored-by: Soumyadeep Chakraborty \u003csochakraborty@pivotal.io\u003e\nAuthored-by: Karen Huddleston \u003ckhuddleston@pivotal.io\u003e\n"
    },
    {
      "commit": "9de34d755249e47813a2345a4681f95d71d7b1f6",
      "tree": "1f19914feaa4c03975b3376d9db8ded3a55219f6",
      "parents": [
        "f02f8f7be0e8a8876260ca8335bd70c1ab517014"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Wed Aug 01 18:05:04 2018 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Wed Aug 01 18:06:21 2018 -0700"
      },
      "message": "Download from s3 in 1GB size parts\n\nThis will fix the issue where restores from s3 waited a long time before\nmaking progress on tables because they were previously downloading the\nentire file.\n\n* Also adjusted growth coefficient for WriteAtBuffer so it will expand\nmore efficiently. This has improved performance quite a lot.\n\nCo-authored-by: Karen Huddleston \u003ckhuddleston@pivotal.io\u003e\nCo-authored-by: Soumyadeep Chakraborty \u003csochakraborty@pivotal.io\u003e\n"
    },
    {
      "commit": "f02f8f7be0e8a8876260ca8335bd70c1ab517014",
      "tree": "e48491813da8ecadc0b8245ce7b67b1257ceee0d",
      "parents": [
        "783ddbf34252471c33c649265fd7bd51dffdc9ba"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Wed Jul 18 10:30:14 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Fri Jul 20 16:14:40 2018 -0700"
      },
      "message": "Modify --help flag output\n\nThe output will now state this utility should not be explicitly called\nby a user.\n\nAuthored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "783ddbf34252471c33c649265fd7bd51dffdc9ba",
      "tree": "859ea4466185e4cfebb386b5cef58891cd1639cd",
      "parents": [
        "eadd32bc5c3d4975947a904a089316dd5ce501c0"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Tue Jul 17 17:17:41 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Tue Jul 17 17:17:41 2018 -0700"
      },
      "message": "Use tagged version of Ginkgo\n\nThis will resolve a dep issue that is caused by a new Ginkgo version.\n\nAuthored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "eadd32bc5c3d4975947a904a089316dd5ce501c0",
      "tree": "09cad297d831257c8888565d21b668537872a8b5",
      "parents": [
        "1fd2502bc8eee30e55cd51888401003cab6fdd73"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Tue Jul 17 16:20:22 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Tue Jul 17 16:22:08 2018 -0700"
      },
      "message": "Use released version of go dep\n\nAuthored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "1fd2502bc8eee30e55cd51888401003cab6fdd73",
      "tree": "f43905f49cd918e7d692102c9fa727f5cce832c8",
      "parents": [
        "72722105301fbb59a0d60f73da093377cdc60138"
      ],
      "author": {
        "name": "Soumyadeep Chakraborty",
        "email": "sochakraborty@pivotal.io",
        "time": "Fri Jul 13 14:26:36 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Mon Jul 16 12:11:56 2018 -0700"
      },
      "message": "Support contentID argument in setup/cleanup commands\n\nCo-authored-by: Soumyadeep Chakraborty \u003csochakraborty@pivotal.io\u003e\nCo-authored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "72722105301fbb59a0d60f73da093377cdc60138",
      "tree": "c39b3343ae5a85b7dbe75abdb967602eb96a05a7",
      "parents": [
        "433e2b62376f984880c43dae9ddc8a3736cac085"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Mon Jul 09 21:09:22 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Tue Jul 10 11:45:54 2018 -0700"
      },
      "message": "The scope argument is the second, not third index\n\nAuthored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "433e2b62376f984880c43dae9ddc8a3736cac085",
      "tree": "0830ffa49bd754434d73e803f4ae7dd26580e7b9",
      "parents": [
        "cfadc59f4fbd5bdd4b22e8f9705b46aac4b6c175"
      ],
      "author": {
        "name": "Soumyadeep Chakraborty",
        "email": "sochakraborty@pivotal.io",
        "time": "Fri Jul 06 13:45:46 2018 -0700"
      },
      "committer": {
        "name": "Soumyadeep Chakraborty",
        "email": "sochakraborty@pivotal.io",
        "time": "Mon Jul 09 17:05:12 2018 -0700"
      },
      "message": "Handling scope arg for setup/cleanup commands\n\nAuthored-by: Soumyadeep Chakraborty \u003csochakraborty@pivotal.io\u003e\n"
    },
    {
      "commit": "cfadc59f4fbd5bdd4b22e8f9705b46aac4b6c175",
      "tree": "a3b1c7b9a30fc415fb4a89133f5cedea8df6d461",
      "parents": [
        "103c06373230d8f17c2bf8f6e67cb0f452887fd8"
      ],
      "author": {
        "name": "Soumyadeep Chakraborty",
        "email": "sochakraborty@pivotal.io",
        "time": "Fri Jul 06 13:08:19 2018 -0700"
      },
      "committer": {
        "name": "Soumyadeep Chakraborty",
        "email": "sochakraborty@pivotal.io",
        "time": "Mon Jul 09 17:05:12 2018 -0700"
      },
      "message": "Added fast-fail checks for args to plugin commands\n\nChecking and failing fast if any plugin command is not executed with the\ncorrect no of arguments.\n\nAuthored-by: Soumyadeep Chakraborty \u003csochakraborty@pivotal.io\u003e\n"
    },
    {
      "commit": "103c06373230d8f17c2bf8f6e67cb0f452887fd8",
      "tree": "5ba382f48f02ccf75102da80c1f715546d965765",
      "parents": [
        "6c472d84d28aead8c7e96043a2d210a225190c93"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Mon Jun 25 17:49:43 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Mon Jul 02 15:42:39 2018 -0700"
      },
      "message": "Add support for disabling SSL encryption\n\nAdds a parameter, encryption, to the config. By default, we enable SSL\nencryption. If the user specifies this value as \"off\", SSL encryption\nwill be disabled.\n\nAuthored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "6c472d84d28aead8c7e96043a2d210a225190c93",
      "tree": "3f183baef32cd07c2ee17e257e91e9af451597e7",
      "parents": [
        "75e393bbdd790e63072f3ee3abd9119e9b7acc03"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Mon Jun 25 16:44:30 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Mon Jul 02 15:42:39 2018 -0700"
      },
      "message": "Update dependencies\n\nAuthored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    },
    {
      "commit": "75e393bbdd790e63072f3ee3abd9119e9b7acc03",
      "tree": "1fe0f40a0be14da7f2f021d0fe9b0333658a3db6",
      "parents": [
        "8a45bf84870d34f03f1b497c47d783827acb3709"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Fri Jun 22 09:51:00 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 22 09:51:00 2018 -0700"
      },
      "message": "Add support for using custom endpoint (#2)\n\nThe S3 plugin now supports specifying a custom endpoint instead of an\r\nAWS region to backup/restore to/from a storage solution that implements\r\nthe S3 protocol.\r\n\r\nAdditionally, validate the configuration file prior to attempting to\r\nconnect to the S3 server.\r\n\r\nCo-authored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\r\nCo-authored-by: Amil Khanzada \u003cakhanzada@pivotal.io\u003e"
    },
    {
      "commit": "8a45bf84870d34f03f1b497c47d783827acb3709",
      "tree": "ed053aeee35124190a0dc513b54ccac3f3666d36",
      "parents": [
        "813828e42b8bb320b064801fad764ab55b81b0fb"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Thu May 24 11:35:01 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 24 11:35:01 2018 -0700"
      },
      "message": "Add errcheck linter (#1)\n\nThis linter ensures that we check the error on functions that return an\r\nerror. This will help prevent bugs where we assume that a function such\r\nas Chmod or Open is successful, but forget to check that no error is\r\nreturned.\r\n\r\nIn cases where we do intentionally want to ignore the error, we will now\r\nneed to assign it to an empty identifier, such as _ \u003d os.Chmod().\r\n\r\nAuthored-by: Chris Hajas \u003cchajas@pivotal.io\u003e"
    },
    {
      "commit": "813828e42b8bb320b064801fad764ab55b81b0fb",
      "tree": "0c08e02f7fafb414d1fd4d2e746e8833d2a54925",
      "parents": [
        "5b67b0ad19050e86a2d00df287cfd8c19794adaa"
      ],
      "author": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Fri May 18 16:16:24 2018 -0700"
      },
      "committer": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Fri May 18 16:16:24 2018 -0700"
      },
      "message": "Rename backupdir config file parameter to folder\n\nCo-authored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\nCo-authored-by: Karen Huddleston \u003ckhuddleston@pivotal.io\u003e\n"
    },
    {
      "commit": "5b67b0ad19050e86a2d00df287cfd8c19794adaa",
      "tree": "fb16bced07aec528e9e591dcbfcfd787162c458f",
      "parents": [
        "eeedfa17741be901c4527e6f1851844ba94a4f35"
      ],
      "author": {
        "name": "Karen Huddleston",
        "email": "khuddleston@pivotal.io",
        "time": "Mon May 14 12:11:43 2018 -0700"
      },
      "committer": {
        "name": "Chris Hajas",
        "email": "chajas@pivotal.io",
        "time": "Mon May 14 12:11:43 2018 -0700"
      },
      "message": "Don\u0027t remove metadata files after backup\n\nCo-authored-by: Karen Huddleston \u003ckhuddleston@pivotal.io\u003e\nCo-authored-by: Chris Hajas \u003cchajas@pivotal.io\u003e\n"
    }
  ],
  "next": "eeedfa17741be901c4527e6f1851844ba94a4f35"
}
