{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":119735437,"defaultBranch":"main","name":"gp-common-go-libs","ownerLogin":"greenplum-db","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-01-31T19:51:17.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/14097842?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1723662851.0","currentOid":""},"activityList":{"items":[{"before":"9031d977ac222c643d38184980acf79c75b9149d","after":null,"ref":"refs/heads/ssh-retry","pushedAt":"2024-08-14T19:11:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"}},{"before":"380401a40283d21ef37a1e2f1b9589a77225c224","after":"20c330ea1addc374553d98fd27069b9d80268833","ref":"refs/heads/main","pushedAt":"2024-08-14T19:11:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Retry failed ssh commands in ExecuteClusterCommand\n\nWe pass in maxAttempts and retry until the command passes. If there is an\nerror, we collect it in the command.RetryError variable. We have ways to log\nmessages for commands that were retried but eventually passed, along with\ncontinuing to log failed commands like we used to.\n\nWe test the command retry with a script that increments a number and exits 1\nuntil the number gets high enough to simulate failing and then passing..\n\nHave GenerateAndExecuteCommand use retries by default. This seems to only be\nused by gpbackup and we know we want to use retries in that utility.","shortMessageHtmlLink":"Retry failed ssh commands in ExecuteClusterCommand"}},{"before":"6efc2cc60f5b3c58c9517c3cb9e90ed50b1b19c7","after":"9031d977ac222c643d38184980acf79c75b9149d","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-14T19:09:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Retry failed ssh commands in ExecuteClusterCommand\n\nWe pass in maxAttempts and retry until the command passes. If there is an\nerror, we collect it in the command.RetryError variable. We have ways to log\nmessages for commands that were retried but eventually passed, along with\ncontinuing to log failed commands like we used to.\n\nWe test the command retry with a script that increments a number and exits 1\nuntil the number gets high enough to simulate failing and then passing..\n\nHave GenerateAndExecuteCommand use retries by default. This seems to only be\nused by gpbackup and we know we want to use retries in that utility.","shortMessageHtmlLink":"Retry failed ssh commands in ExecuteClusterCommand"}},{"before":"6a49694d19c5002bf0e9722273830ca5f86fb531","after":"6efc2cc60f5b3c58c9517c3cb9e90ed50b1b19c7","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-12T23:12:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Retry failed ssh commands in ExecuteClusterCommand\n\nWe pass in maxAttempts and retry until the command passes. If there is an\nerror, we collect it in the command.RetryError variable. We have ways to log\nmessages for commands that were retried but eventually passed, along with\ncontinuing to log failed commands like we used to.\n\nWe test the command retry with a script that increments a number and exits 1\nuntil the number gets high enough to simulate failing and then passing..\n\nHave GenerateAndExecuteCommand use retries by default. This seems to only be\nused by gpbackup and we know we want to use retries in that utility.","shortMessageHtmlLink":"Retry failed ssh commands in ExecuteClusterCommand"}},{"before":"145ed4b626a86cad8128da431b4a79417229ec52","after":"6a49694d19c5002bf0e9722273830ca5f86fb531","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-12T22:33:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Don't reset the exec.Command\n\ntesting some stuff out","shortMessageHtmlLink":"Don't reset the exec.Command"}},{"before":"ca3426420a8ee71771e51c51f0759bb038cf2a80","after":"145ed4b626a86cad8128da431b4a79417229ec52","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-12T22:22:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Bring back original ExecuteClusterCommand code\n\ntroubleshooting an issue so I want to compare both","shortMessageHtmlLink":"Bring back original ExecuteClusterCommand code"}},{"before":"0ad2802f61be8e3cd81d27020639cb6dc24b8a89","after":"ca3426420a8ee71771e51c51f0759bb038cf2a80","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-12T21:21:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Use retries in GenerateAndExecuteCommand\n\ngpbackup seems to be the only utility that uses this function. Since we want\nretries, add it as default behavior.","shortMessageHtmlLink":"Use retries in GenerateAndExecuteCommand"}},{"before":"f602aef8ebe17fb14cbb370cd07d36f273e5a12f","after":"0ad2802f61be8e3cd81d27020639cb6dc24b8a89","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-08T21:59:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Retry failed ssh commands in ExecuteClusterCommand\n\nWe pass in maxAttempts and retry until the command passes. If there is an\nerror, we collect it in the command.RetryError variable. We have ways to log\nmessages for commands that were retried but eventually passed, along with\ncontinuing to log failed commands like we used to.\n\nWe test the command retry with a script that increments a number and exits 1\nuntil the number gets high enough to simulate failing and then passing..","shortMessageHtmlLink":"Retry failed ssh commands in ExecuteClusterCommand"}},{"before":"40facd39b3973b74a82927039818022ed4e29fce","after":"f602aef8ebe17fb14cbb370cd07d36f273e5a12f","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-02T21:45:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Retry failed ssh commands in ExecuteClusterCommand\n\nWe pass in maxAttempts and retry until the command passes. If there is an\nerror, we collect it in the command.RetryError variable. We have ways to log\nmessages for commands that were retried but eventually passed, along with\ncontinuing to log failed commands like we used to.\n\nWe test the command retry with a script that increments a number and exits 1\nuntil the number gets high enough to simulate failing and then passing..","shortMessageHtmlLink":"Retry failed ssh commands in ExecuteClusterCommand"}},{"before":"9ed0557d2ba229698036bc9ebdece6cf45c8e253","after":"40facd39b3973b74a82927039818022ed4e29fce","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-02T01:44:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Start adding tests for ExecuteClusterCommandWithRetries","shortMessageHtmlLink":"Start adding tests for ExecuteClusterCommandWithRetries"}},{"before":null,"after":"9ed0557d2ba229698036bc9ebdece6cf45c8e253","ref":"refs/heads/ssh-retry","pushedAt":"2024-08-01T01:31:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"WIP: retry failed ssh commands","shortMessageHtmlLink":"WIP: retry failed ssh commands"}},{"before":"8a9ec69532a17264f3ac3d6768421f2e647e0035","after":null,"ref":"refs/heads/cmd-with-context","pushedAt":"2024-07-18T21:48:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"}},{"before":"3ce86b17fa4fb3732d7a987ef6bb2e33ce281ca0","after":"380401a40283d21ef37a1e2f1b9589a77225c224","ref":"refs/heads/main","pushedAt":"2024-07-18T21:48:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Add ExecuteLocalCommandWithContext\n\nAdding a version to run local commands with context to handle timeouts for long\nrunning commands","shortMessageHtmlLink":"Add ExecuteLocalCommandWithContext"}},{"before":null,"after":"8a9ec69532a17264f3ac3d6768421f2e647e0035","ref":"refs/heads/cmd-with-context","pushedAt":"2024-07-17T00:46:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Add ExecuteLocalCommandWithContext\n\nAdding a version to run local commands with context to handle timeouts for long\nrunning commands","shortMessageHtmlLink":"Add ExecuteLocalCommandWithContext"}},{"before":"094f1b351306953ee535b22d4bf32d43ca1881a5","after":"028ebaa0c8565e2a2b2f1d80ae533eb70f032b8d","ref":"refs/heads/fix-error-detail","pushedAt":"2024-06-17T12:27:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hyongtao-db","name":"Yongtao Huang","path":"/hyongtao-db","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99629139?s=80&v=4"},"commit":{"message":"Fix bug","shortMessageHtmlLink":"Fix bug"}},{"before":null,"after":"094f1b351306953ee535b22d4bf32d43ca1881a5","ref":"refs/heads/fix-error-detail","pushedAt":"2024-06-17T09:43:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"hyongtao-db","name":"Yongtao Huang","path":"/hyongtao-db","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99629139?s=80&v=4"},"commit":{"message":"Print Detail if the type of err is PgError","shortMessageHtmlLink":"Print Detail if the type of err is PgError"}},{"before":"6fcda07301be12e18f023a1b25e41f6f8e7be5c6","after":"3ce86b17fa4fb3732d7a987ef6bb2e33ce281ca0","ref":"refs/heads/main","pushedAt":"2024-05-22T21:06:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tatb-vmware","name":"Brandon Tat","path":"/tatb-vmware","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110430544?s=80&v=4"},"commit":{"message":"Add length check before returning first index of segmentList (#91)\n\nThis commit adds a length check on the segmentList within getSegmentByRole() before returning the first index to avoid panicking.","shortMessageHtmlLink":"Add length check before returning first index of segmentList (#91)"}},{"before":null,"after":"f62cc52718109354bc5553d2287f25d5e0fec70f","ref":"refs/heads/check-segment-list-length","pushedAt":"2024-05-21T23:41:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tatb-vmware","name":"Brandon Tat","path":"/tatb-vmware","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110430544?s=80&v=4"},"commit":{"message":"Add length check before returning first index of segmentList","shortMessageHtmlLink":"Add length check before returning first index of segmentList"}},{"before":"8d69b2038fc6681f92597a2b36f319c60ccbb335","after":null,"ref":"refs/heads/cluster-error-custom-log","pushedAt":"2024-05-20T19:03:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"}},{"before":"1d6af9f9d77f1075c018e9f69e66def569627962","after":"6fcda07301be12e18f023a1b25e41f6f8e7be5c6","ref":"refs/heads/main","pushedAt":"2024-05-20T19:03:38.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Remove Progress command\n\nThis is only used by gpbackup/gprestore so we will remove it from here and use\nthe new Custom function to implement a wrapper in the codebase where it is used\nto keep this repo more general","shortMessageHtmlLink":"Remove Progress command"}},{"before":"bc0c934e6d731ff1543b4d0052af074b6650b4ab","after":"8d69b2038fc6681f92597a2b36f319c60ccbb335","ref":"refs/heads/cluster-error-custom-log","pushedAt":"2024-05-20T18:48:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Remove Progress command\n\nThis is only used by gpbackup/gprestore so we will remove it from here and use\nthe new Custom function to implement a wrapper in the codebase where it is used\nto keep this repo more general","shortMessageHtmlLink":"Remove Progress command"}},{"before":"7b27312955eeeaef819ae658be2dd33b1231aacf","after":"bc0c934e6d731ff1543b4d0052af074b6650b4ab","ref":"refs/heads/cluster-error-custom-log","pushedAt":"2024-05-17T21:44:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Use Custom logging for CheckClusterError\n\ngpbackup recently made a change to use verbosity info by default for both shell\noutput and logfile since we were logging too much to files by default. However,\nwith this change we get odd behavior with CheckClusterError. It used to write\nsegment errors to the file with verbosity Verbose which would always show up in\nthe file because we set the file log level to Debug by default. We have a\nmessage that says \"check logfile for complete list of errors\", but when the\nlogfile level is info the segment errors don't get printed. Since they are\nerrors we should make sure we print them to the file even when the file log\nlevel is lower so customers can see them to debug.","shortMessageHtmlLink":"Use Custom logging for CheckClusterError"}},{"before":"d6cc0114336fb91b5e891753e785c901a11b2616","after":"7b27312955eeeaef819ae658be2dd33b1231aacf","ref":"refs/heads/cluster-error-custom-log","pushedAt":"2024-05-17T01:44:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Use Custom logging for CheckClusterError\n\ngpbackup recently made a change to use verbosity info by default for both shell\noutput and logfile since we were logging too much to files by default. However,\nwith this change we get odd behavior with CheckClusterError. It used to write\nsegment errors to the file with verbosity Verbose which would always show up in\nthe file because we set the file log level to Debug by default. We have a\nmessage that says \"check logfile for complete list of errors\", but when the\nlogfile level is info the segment errors don't get printed. Since they are\nerrors we should make sure we print them to the file even when the file log\nlevel is lower so customers can see them to debug.","shortMessageHtmlLink":"Use Custom logging for CheckClusterError"}},{"before":"f155881332cd61dc498211945408312b3b43c72b","after":"d6cc0114336fb91b5e891753e785c901a11b2616","ref":"refs/heads/cluster-error-custom-log","pushedAt":"2024-05-17T00:31:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Use Custom logging for CheckClusterError\n\ngpbackup recently made a change to use verbosity info by default for both shell\noutput and logfile since we were logging too much to files by default. However,\nwith this change we get odd behavior with CheckClusterError. It used to write\nsegment errors to the file with verbosity Verbose which would always show up in\nthe file because we set the file log level to Debug by default. We have a\nmessage that says \"check logfile for complete list of errors\", but when the\nlogfile level is info the segment errors don't get printed. Since they are\nerrors we should make sure we print them to the file even when the file log\nlevel is lower so customers can see them to debug.","shortMessageHtmlLink":"Use Custom logging for CheckClusterError"}},{"before":null,"after":"f155881332cd61dc498211945408312b3b43c72b","ref":"refs/heads/cluster-error-custom-log","pushedAt":"2024-05-17T00:19:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"khuddlefish","name":"Karen Huddleston","path":"/khuddlefish","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4099765?s=80&v=4"},"commit":{"message":"Use Custom logging for CheckClusterError\n\ngpbackup recently made a change to use verbosity info by default for both shell\noutput and logfile since we were logging too much to files by default. However,\nwith this change we get odd behavior with CheckClusterError. It used to write\nsegment errors to the file with verbosity Verbose which would always show up in\nthe file because we set the file log level to Debug by default. We have a\nmessage that says \"check logfile for complete list of errors\", but when the\nlogfile level is info the segment errors don't get printed. Since they are\nerrors we should make sure we print them to the file even when the file log\nlevel is lower so customers can see them to debug.","shortMessageHtmlLink":"Use Custom logging for CheckClusterError"}},{"before":"11df101e84546a582ed85243748596c572a0fb21","after":"1d6af9f9d77f1075c018e9f69e66def569627962","ref":"refs/heads/main","pushedAt":"2024-05-10T20:53:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"denalex","name":"Alexander Denissov","path":"/denalex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7130388?s=80&v=4"},"commit":{"message":"Added separate shell prefix and colorization to gplog (#88)\n\nPXF uses gplog library to output to the console and log messages to the file, however we have the following requirements that are implemented by this PR. All existing functionality is intact, so the changes should be additive only.\r\n\r\nHave separate prefixes for console and log file output. We do not want to have users see the \"header\" with timestamps, pids, etc as it pollutes the important message payloads. The prefixes are now separated and I included the default function that would only append logging level for WARNING, ERROR, and CRITICAL message levels.\r\nWe have colorized output to the console, so this functionality also has been added as a logger flag. When enabled, the colorization will apply to ERROR and CRITICAL messages (red) , WARNING messages (yellow) and INFO messages logged with new Success() method only (green).","shortMessageHtmlLink":"Added separate shell prefix and colorization to gplog (#88)"}},{"before":"e7a6fe1db015fab85387a078f89d0f9a81839259","after":"0bcfb7bd7a86faa9fef1bb827cd1e09a5f44f2f0","ref":"refs/heads/color-output","pushedAt":"2024-05-10T20:52:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"denalex","name":"Alexander Denissov","path":"/denalex","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7130388?s=80&v=4"},"commit":{"message":"PR feedback","shortMessageHtmlLink":"PR feedback"}},{"before":null,"after":"b18663e600af75910cbbf4ed2439e61fcbe27ede","ref":"refs/heads/add_more_query_types","pushedAt":"2024-05-09T06:58:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jnihal","name":"Nihal Jain","path":"/jnihal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98009779?s=80&v=4"},"commit":{"message":"Add `SelectContext` and `QueryContext` to DBConn\n\nThese new methods allows us to pass a context when executing queries. This can be helpful in situations where we want to cancel a running query by cancelling the context passed.","shortMessageHtmlLink":"Add SelectContext and QueryContext to DBConn"}},{"before":"b18663e600af75910cbbf4ed2439e61fcbe27ede","after":null,"ref":"refs/heads/add_more_query_types","pushedAt":"2024-05-08T11:59:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jnihal","name":"Nihal Jain","path":"/jnihal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98009779?s=80&v=4"}},{"before":"00e733f5097f8bc604437c4d38e775fc300fbef5","after":"11df101e84546a582ed85243748596c572a0fb21","ref":"refs/heads/main","pushedAt":"2024-05-08T11:56:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jnihal","name":"Nihal Jain","path":"/jnihal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/98009779?s=80&v=4"},"commit":{"message":"Add `SelectContext` and `QueryContext` to DBConn\n\nThese new methods allows us to pass a context when executing queries. This can be helpful in situations where we want to cancel a running query by cancelling the context passed.","shortMessageHtmlLink":"Add SelectContext and QueryContext to DBConn"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xNFQxOToxMTowMi4wMDAwMDBazwAAAASamKOT","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xNFQxOToxMTowMi4wMDAwMDBazwAAAASamKOT","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0wOFQxMTo1NjoyMi4wMDAwMDBazwAAAAREkdaU"}},"title":"Activity ยท greenplum-db/gp-common-go-libs"}