{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":114954159,"defaultBranch":"master","name":"openvpn3-linux","ownerLogin":"OpenVPN","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-12-21T02:43:12.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1569141?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1725539548.0","currentOid":""},"activityList":{"items":[{"before":"d8239ede97fc91919f35a59a14a116769defcc49","after":"75abb7dc9366ba85fb1a144d88f02a1e8a62f538","ref":"refs/heads/master","pushedAt":"2024-09-10T18:35:19.000Z","pushType":"push","commitsCount":22,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"build: reduce hardcoded 'asio_path'\n\nCurrently, 'asio_path` variable value is concatenated with\n'/asio/include' to specify the path to custom `asio`\ninstallation. The problem is that this is too strict as some\ndistros (namely NixOS) may have the 'include' directory with\na differently named parent. Thus this change minimizes the\nhardcoded part of the path to make it more flexible.\n\nSigned-off-by: Petr Portnov ","shortMessageHtmlLink":"build: reduce hardcoded 'asio_path'"}},{"before":"93dc6a48cebf47461383f462a43f835affbcae43","after":"d8239ede97fc91919f35a59a14a116769defcc49","ref":"refs/heads/master","pushedAt":"2024-08-28T14:16:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"core: Update to OpenVPN 3 Core Library v3.10.1\n\nThis resolves issues when compiling with the -Wnon-virtual-dtor compiler\nflag enabled.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"core: Update to OpenVPN 3 Core Library v3.10.1"}},{"before":"bc61adf16cebc963b647a72e385c05e2205c129b","after":"93dc6a48cebf47461383f462a43f835affbcae43","ref":"refs/heads/master","pushedAt":"2024-08-28T07:41:33.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"netcfg/resolved: Refactor out resolved::ResolverRecord\n\nThe new resolved::IPAddress is feature-wise equivalent to\nresolved::ResolverRecord. After the change in ResolverRecord\nto use IPAddress internally, the ResolverRecord class was just\nuseless wrapper class. This can now be refactored out and\ninstead use IPAddress directly.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"netcfg/resolved: Refactor out resolved::ResolverRecord"}},{"before":"a3de5e290b2c569cc565a20f1ecce46dac393ea7","after":"bc61adf16cebc963b647a72e385c05e2205c129b","ref":"refs/heads/master","pushedAt":"2024-08-13T12:08:30.000Z","pushType":"push","commitsCount":21,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"common: give SingleCommand a virtual destructor\n\nSingleCommand is meant as a base class, and it has virtual member\nfunctions. As such, it should have a (default) virtual destructor.\n\nThis fixes -Wnon-virtual-dtor warnings.\n\nSigned-off-by: Razvan Cojocaru ","shortMessageHtmlLink":"common: give SingleCommand a virtual destructor"}},{"before":"8e73bccc5003f6b77ee337c792fbd2e085893493","after":"a3de5e290b2c569cc565a20f1ecce46dac393ea7","ref":"refs/heads/master","pushedAt":"2024-06-19T18:06:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"netcfg: Make NetCfgNotifSubscriptions use uint32_t as filter bit mask\n\nCommit 93b6d3b7bc0e (netcfg: use proper C++ base type for\nNetCfgChangeType) switched to use uint32_t as the base filter type.\nBut the NetCfgSubscriptions class was not updated accordingly, still\nusing uint16_t.\n\nWith this change, there is also no need to do any casting from\nutin32_t to uint16_t.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"netcfg: Make NetCfgNotifSubscriptions use uint32_t as filter bit mask"}},{"before":"d5660fcad865d0b866555566dabb920ff705dccc","after":"8e73bccc5003f6b77ee337c792fbd2e085893493","ref":"refs/heads/master","pushedAt":"2024-06-19T12:55:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"configmgr: remove unused class members\n\nThose private members are only assigned and never\nreferenced, so get rid of them.\n\nSigned-off-by: Lev Stipakov ","shortMessageHtmlLink":"configmgr: remove unused class members"}},{"before":"93b6d3b7bc0e5c77ccd8e73eaa409cb4598113ab","after":"d5660fcad865d0b866555566dabb920ff705dccc","ref":"refs/heads/master","pushedAt":"2024-06-18T12:57:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"netcfg/proxy: Check non-response call for nullptr before freeing\n\nIn some GLib implementations, Proxy::Client::Call() might\nreturn nullptr. Passing it unconditionally to g_variant_unref()\ncauses an annoying warning. To avoid this, add a simple check\nof the return value.\n\nMost of these changes were already done in commit 7763101f, this is just\none more case.\n\nWhile on it, use the correct C++ type (std::uint32_t) to cast filter\nflags to.\n\nSigned-off-by: Lev Stipakov ","shortMessageHtmlLink":"netcfg/proxy: Check non-response call for nullptr before freeing"}},{"before":"2ec1ebce758b1d521498c05c55e355b043c3d7f1","after":"93b6d3b7bc0e5c77ccd8e73eaa409cb4598113ab","ref":"refs/heads/master","pushedAt":"2024-06-17T16:53:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"netcfg: use proper C++ base type for NetCfgChangeType\n\nNetCfgChangeType represents a type of parameter of the DBus\nmethod NotificationSubscribe, which is a DBus type \"u\".\nAccording to the specification, this translates to UINT32.\n\nSigned-off-by: Lev Stipakov ","shortMessageHtmlLink":"netcfg: use proper C++ base type for NetCfgChangeType"}},{"before":"2cd5eb8d2d6a2e2a8bf4eaef7069b26fbba8a54b","after":"2ec1ebce758b1d521498c05c55e355b043c3d7f1","ref":"refs/heads/master","pushedAt":"2024-06-13T10:29:48.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"netcfg: Return when no DNS resolver is configured in method_add_dns_search()\n\nThere is a bug in the NetCfgDevice::method_add_dns_search() method,\nwhere it would continue trying to add the search domain even when no\ndnsconfig object is available, resulting in a segfault.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"netcfg: Return when no DNS resolver is configured in method_add_dns_s…"}},{"before":"2cd5eb8d2d6a2e2a8bf4eaef7069b26fbba8a54b","after":null,"ref":"refs/heads/gh-template","pushedAt":"2024-06-09T17:54:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"}},{"before":"4f37952340f0e5d3730a4b6b43ea23c170c530e2","after":"2cd5eb8d2d6a2e2a8bf4eaef7069b26fbba8a54b","ref":"refs/heads/master","pushedAt":"2024-06-09T17:52:36.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"github: Add issue template - migration to codeberg.org\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"github: Add issue template - migration to codeberg.org"}},{"before":null,"after":"2cd5eb8d2d6a2e2a8bf4eaef7069b26fbba8a54b","ref":"refs/heads/gh-template","pushedAt":"2024-06-09T17:51:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"github: Add issue template - migration to codeberg.org\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"github: Add issue template - migration to codeberg.org"}},{"before":"1ea1c445171bb81f5d8dd22791e43f1db6880515","after":"4f37952340f0e5d3730a4b6b43ea23c170c530e2","ref":"refs/heads/master","pushedAt":"2024-06-05T10:17:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"tests: Don't run config-override-selftest if Config Manager is inaccessible\n\nWhen running 'meson test' on a completely fresh install without a\nconfiguration manager available, the config-override-selftest will fail.\n\nFor now, just skip the test if the configuration manager is unavailable.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"tests: Don't run config-override-selftest if Config Manager is inacce…"}},{"before":"e82fca91362b629486ea2e7b633a7fbc8f08e2e3","after":"1ea1c445171bb81f5d8dd22791e43f1db6880515","ref":"refs/heads/master","pushedAt":"2024-06-04T06:34:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"ovpn3cli/session-start: Improve stability starting sessions from file\n\nUsing the 'openvpn3 session-start' where the '--config' argument points\nat a file to use (not pre-imported configuration), it could often fail\nwith:\n\n $ openvpn3 session-start --config client.ovpn\n Using configuration profile from file: client.ovpn\n [DBus::Connection] Connection flush failed The connection is closed\n openvpn3/session-start: ** ERROR ** Could not start new VPN session: Failed to start new tunnel\n\nOn the following attempt, it always works - but it's a slight difference\nin the output:\n\n $ openvpn3 session-start --config client.ovpn\n Using pre-loaded configuration profile 'client.ovpn'\n\nThe 'Using pre-loaded' indicates the configuration profile is already\npre-imported to the configuration manager. That happened in the first\nattempt, but when setting up the connection to the Session Manager it\nwould fail as the DBus::Connection object closed the socket to the D-Bus\ndaemon. Since the first attempt imported the configuration profile with\nthe 'single-use' flag set, a third attempt would fail just as the first\nattempted failed; there exists no pre-imported configuration on the\nthird-attempt. The fourth attempt works again.\n\nThis is an issue which is the same which was fixed for the failing\nshell-completion in the log command, in commit 8a13d1b8d88748aebd. When\nthe import_config() function's DBus::Connection object exits its scope,\nthe socket to the D-Bus daemon.\n\nThe solution is to let the 'session-start' command use a shared\nDBus::Connection object, for both the import_config() function and the\nfollowing connection to the Session Manager proxy object.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"ovpn3cli/session-start: Improve stability starting sessions from file"}},{"before":"b387eb0d4c2fbf484254ab617f465271b4e72a4b","after":"e82fca91362b629486ea2e7b633a7fbc8f08e2e3","ref":"refs/heads/master","pushedAt":"2024-06-03T12:33:41.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"client: Check vpnclient object exists in 'Ready' callback\n\nThere is no guarantee the vpnclient object exists. The older\ndynamic-challenge protocol would result in a full disconnect before the\nclient is re-started when providing the response to the challenge.\n\nWithout this check, the Ready method will fail retrieving the run status\nof the VPN session, as the vpnclient member will be nullptr.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"client: Check vpnclient object exists in 'Ready' callback"}},{"before":"346a1b2b96e798de9876455f2a4be725237f2ec5","after":"b387eb0d4c2fbf484254ab617f465271b4e72a4b","ref":"refs/heads/master","pushedAt":"2024-05-31T20:53:03.000Z","pushType":"push","commitsCount":19,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"sessionmgr/proxy: Improve the SessionManager::Proxy::Manager setup\n\nAdd a variable setup delay, up to 750ms in 150ms increments, for\nthe Manager object. This is to ensure the proxy object will have\naccess to a running Session Manager service.\n\nThis is to avoid errors if the Session Manager was not running and it\ntook a little bit time to get settled.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"sessionmgr/proxy: Improve the SessionManager::Proxy::Manager setup"}},{"before":"8a13d1b8d88748aebd48ec18a27d5970763dc2a6","after":"346a1b2b96e798de9876455f2a4be725237f2ec5","ref":"refs/heads/master","pushedAt":"2024-05-29T19:05:03.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"ovpn3cli/config-manage: Extract all profile before displaying it\n\nThe 'openvpn3 config-manage --show' command would provide some odd\noutput if the calling user does not have access to a profile - and the\nprofile was attempted accessed via the --config-path argument.\n\nBy first extracting all the needed information, it's possible to detect\nearly if the calling use has access to the profile. This can be used to\nbailout early if no information could be extracted.\n\nThis also enables the printing of information to be done a bit simpler,\nas all the early parsing of the information can format and prepare all\nthe wanted data.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"ovpn3cli/config-manage: Extract all profile before displaying it"}},{"before":"edf113b8138a2e535657c3609eccaef9cc26f060","after":"8a13d1b8d88748aebd48ec18a27d5970763dc2a6","ref":"refs/heads/master","pushedAt":"2024-05-29T11:30:00.000Z","pushType":"push","commitsCount":287,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"ovpn3cli: Fix failing shell-completion for 'openvpn3 log'\n\nWhen providing shell-completion results for configuration names to be\nused with the 'openvpn3 log' command, it would fail.\n\nThe reason is that both the arghelper_config_names_sessions() and\narghelper_config_names() functions creates their own DBus::Connection\nobject internally. When this object exits its scope, the D-Bus\nconnection is closed and the socket used to communicate with the D-Bus\nservice comes unavailable. This situation makes it impossible to\nre-connect to the D-Bus, due to the main socket being unavailable.\n\nWhen the next arghelper function for the 'openvpn3 log' command is\ncalled, it first calls the arghelper_config_names() and then it calls\narghelper_config_names_sessions() where the last one tries to create a\nnew DBus::Connection object, which just fails.\n\nTo circumvent this situation, these two main arghelpers have been\nduplicated with a sibling which takes a DBus::Connection object as\nargument. The original arghelper functions will create the\nDBus::Connection object as before but call this new variant with\nthe DBus::Connection as an argument.\n\nThis allows the arghelper for the 'openvpn3 log' command to create a\nshared DBus::Connection object to be used across these two arghelpers.\n\nAnd while at this code, switch to use std::find_if() for the duplicate\ncheck and simplify the check if the config name is empty.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"ovpn3cli: Fix failing shell-completion for 'openvpn3 log'"}},{"before":"8881bf35c835c7deab439c87a7efc09444caef84","after":"edf113b8138a2e535657c3609eccaef9cc26f060","ref":"refs/heads/master","pushedAt":"2023-10-06T10:29:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"docs: Minor touches to README and BUILD docs\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"docs: Minor touches to README and BUILD docs"}},{"before":"90b07a2e816e644c36d1707a9bd4d74244cf210a","after":"8881bf35c835c7deab439c87a7efc09444caef84","ref":"refs/heads/master","pushedAt":"2023-09-27T17:48:07.000Z","pushType":"push","commitsCount":59,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"misc: Fixing several typ0s all over the code base\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"misc: Fixing several typ0s all over the code base"}},{"before":"6361bd5fd876d92211b79745f6a1198fcd6c1f38","after":"8881bf35c835c7deab439c87a7efc09444caef84","ref":"refs/heads/releaseprep/v21","pushedAt":"2023-09-22T10:27:35.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"misc: Fixing several typ0s all over the code base\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"misc: Fixing several typ0s all over the code base"}},{"before":"d813257b84595622f8563a655f2883415d9e3bbf","after":"6361bd5fd876d92211b79745f6a1198fcd6c1f38","ref":"refs/heads/releaseprep/v21","pushedAt":"2023-09-19T12:11:12.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"python: ConfigParser did not accept dns-fallback-google and persist-tun overrides\n\nThese two override flags was not listed among the accepted list of\noverride values. And they were also not properly documented.\n\nThe 'persist-tun' override isn't strictly needed, since the --perist-tun\noption is converted into such an override. But it enables a possibility\nto disable it.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"python: ConfigParser did not accept dns-fallback-google and persist-t…"}},{"before":"95366cae04ca87a7e3d58af4c0e6bf197ff90473","after":"d813257b84595622f8563a655f2883415d9e3bbf","ref":"refs/heads/releaseprep/v21","pushedAt":"2023-09-15T14:56:59.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"ovpn3cli/config: Fix typo in JSON key for transfer_owner_session\n\nThe openvpn3 configs-list --json output used an incorrect key value for\nthe transfer_owner_session flag.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"ovpn3cli/config: Fix typo in JSON key for transfer_owner_session"}},{"before":null,"after":"95366cae04ca87a7e3d58af4c0e6bf197ff90473","ref":"refs/heads/releaseprep/v21","pushedAt":"2023-09-13T14:54:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"core: Update to OpenVPN 3 Core library v3.8.2\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"core: Update to OpenVPN 3 Core library v3.8.2"}},{"before":"97c729808a688364c16d17f7c34a4c7229ca0131","after":"90b07a2e816e644c36d1707a9bd4d74244cf210a","ref":"refs/heads/master","pushedAt":"2023-07-31T21:52:41.000Z","pushType":"push","commitsCount":70,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"core: Update to OpenVPN 3 Core library v3.8.1\n\nThis adds support for AWS IMDSv2 in the OpenVPN 3 Linux AWS-VPC add-on.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"core: Update to OpenVPN 3 Core library v3.8.1"}},{"before":"b2d2eade5c7232ae55726cae7a44997460578f90","after":"97c729808a688364c16d17f7c34a4c7229ca0131","ref":"refs/heads/master","pushedAt":"2023-05-02T14:55:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"docs/man: Fix description in openvpn3-config-manage man page\n\nSigned-off-by: Frank Lichtenheld \nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"docs/man: Fix description in openvpn3-config-manage man page"}},{"before":"e7531f45d3743bfe58223a6b56794aa8bba01ba9","after":"b2d2eade5c7232ae55726cae7a44997460578f90","ref":"refs/heads/master","pushedAt":"2023-03-21T10:22:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"Update GitHub pull-req template\n\nProject is moving to codeberg.org as the main instance.\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"Update GitHub pull-req template"}},{"before":"012ae40e61c091a5a8615c70e419e53cab6e5d5b","after":"e7531f45d3743bfe58223a6b56794aa8bba01ba9","ref":"refs/heads/master","pushedAt":"2023-03-20T16:04:47.000Z","pushType":"push","commitsCount":32,"pusher":{"login":"dsommers","name":"David Sommerseth","path":"/dsommers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1685255?s=80&v=4"},"commit":{"message":"build: Install openvpn3/constants.h header file\n\nSigned-off-by: David Sommerseth ","shortMessageHtmlLink":"build: Install openvpn3/constants.h header file"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMFQxODozNToxOS4wMDAwMDBazwAAAASyZ7IT","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wMy0yMFQxNjowNDo0Ny4wMDAwMDBazwAAAAMHUa9s"}},"title":"Activity · OpenVPN/openvpn3-linux"}