{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":15169689,"defaultBranch":"master","name":"pyvmomi","ownerLogin":"vmware","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-12-13T17:30:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/473334?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719430408.0","currentOid":""},"activityList":{"items":[{"before":"f544b14b22cac8383de16e75887447e80b097391","after":"e4fd84997f7ab9edf9250c2ff3bb32d89256012d","ref":"refs/heads/master","pushedAt":"2024-06-26T17:11:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"StefanHristov-Broadcom","name":"Stefan Hristov","path":"/StefanHristov-Broadcom","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65858745?s=80&v=4"},"commit":{"message":"Workaround cyclic dependency in setup.py","shortMessageHtmlLink":"Workaround cyclic dependency in setup.py"}},{"before":"f18ff3c606994f578fbe5270266c244023ba8de1","after":"f544b14b22cac8383de16e75887447e80b097391","ref":"refs/heads/master","pushedAt":"2024-06-26T11:32:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Add type hints (new format) for vSphere 8.0U3 (8.0.3.0)","shortMessageHtmlLink":"Add type hints (new format) for vSphere 8.0U3 (8.0.3.0)"}},{"before":"2e4decd135c956691a44d5afa05ca9b2576a1605","after":"f18ff3c606994f578fbe5270266c244023ba8de1","ref":"refs/heads/master","pushedAt":"2024-06-26T10:10:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Add type info for vSphere 8.0U3 (8.0.3.0)","shortMessageHtmlLink":"Add type info for vSphere 8.0U3 (8.0.3.0)"}},{"before":"29104169c65d8ce455a7d384a8a741801ea0c458","after":"2e4decd135c956691a44d5afa05ca9b2576a1605","ref":"refs/heads/master","pushedAt":"2024-06-26T08:36:54.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Tests compatibility for Python 3.12\n\nAnd Broadcom copyright update","shortMessageHtmlLink":"Tests compatibility for Python 3.12"}},{"before":"0c8b1ac9d189c910e3351ca942bb641ee7b92b88","after":"29104169c65d8ce455a7d384a8a741801ea0c458","ref":"refs/heads/master","pushedAt":"2024-05-14T12:17:27.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Add vSAN SDK pieces\n\nThe vSAN SDK provides two pieces of executable code:\n\n - vSAN health type info\n - API utils\n\nLegacy scripts explicitly import the vsanmgmtObjects module, so we have to supply it in pyVmomi to avoid breakages. The module in pyVmomi is naturally empty.\n\nThe utils are also imported by scripts using the vSAN SDK, so with this change, these are also packaged in pyVmomi.","shortMessageHtmlLink":"Add vSAN SDK pieces"}},{"before":"44d7b9f0c201a92018bac8324542c0adf96aa148","after":"0c8b1ac9d189c910e3351ca942bb641ee7b92b88","ref":"refs/heads/master","pushedAt":"2024-05-14T05:37:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"HTTPProxyConnection and SSLTunnelConnection documentation updates","shortMessageHtmlLink":"HTTPProxyConnection and SSLTunnelConnection documentation updates"}},{"before":"c248b3283e6902df3c94594fdc67a8bfd246d0d2","after":"44d7b9f0c201a92018bac8324542c0adf96aa148","ref":"refs/heads/master","pushedAt":"2024-05-14T05:34:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Python 3.12 compatibility - closes #1057\n\nThere are two Python 3.12 changes that affect the pyVmomi client\n- Python 3.12 removes ssl.wrap_socket(), deprecated in Python 3.7. ssl.SSLContext.wrap_socket() should be used instead. Ref. https://docs.python.org/3/whatsnew/3.12.html#ssl\n- key_file, cert_file are removed from http.client.HTTPSConnection. Ref. https://docs.python.org/3/whatsnew/3.12.html#others\n\nThis change:\n- The connection logic is refactored to comply with the new Python rules. Python now forces users to generate the SSL context on their own. However, the SoapStubAdapter still has to accept the cert and key pair and SSL context at the same time to keep backwards compatibility for all existing tests and clients.\nTo do that, instead of relying on the http module to generate the SSL context if none is provided, the SoapStubAdapter now handles that generation by mirroring the http module code before the Python 3.12 changes. Because the SSL context generation is pulled to be executed as early as possible there is no need to figure out what parameters are acceptable to pass to the Python http module because the context is already generated. Therefore, the HTTP connection wrappers can be removed - _HTTPConnection and _HTTPSConnection.\n\n- ssl.create_default_context() is replaced with SSL._create_default_https_context() to mirror the HTTP module logic.\n\tThis change is propagated to the sso.py module to keep the behavior consistent.\n\nAdditional changes:\nBreaking change:\n- SSLTunnelConnection is trimmed down to handle only tunnel connections. The code that handles remote proxy doubles the HTTPProxyConnection logic and therefore is removed.\n This is a breaking change for consumers that wrongly set \"sslProxyPath\" instead of \"httpProxyHost\" when they want to go through a remote proxy but I consider this a necessary change because allowing this behavior is a bug and shouldn't have been available at first place.\n\nNon-breaking changes:\n- SSLTunnelConnection now inherits HTTPProxyConnection and overwrites the call method because the constructor is the same. Keep in mind that it's deprecated. Hopefully it will be removed sooner rather than later.\n\n- _CheckIPv4(), _CheckIPv6() and _CheckHostname() are removed because it's not necessary to make those verifications when SSLTunnelConnection does not support remote proxies.\n\n- Small changes to variable names and imports","shortMessageHtmlLink":"Python 3.12 compatibility - closes #1057"}},{"before":"d5dc6bc9845950f4067bfd07821d30ef0742dde8","after":"c248b3283e6902df3c94594fdc67a8bfd246d0d2","ref":"refs/heads/master","pushedAt":"2024-05-10T07:29:03.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Add a Changelog file\n\nIt contains chronologically ordered list of all changes for each pyVmomi release collected from the GitHub pyVmomi releases page.","shortMessageHtmlLink":"Add a Changelog file"}},{"before":"42b1ccce41c96ec3356e8afda96c7ad263aa3f5a","after":"d5dc6bc9845950f4067bfd07821d30ef0742dde8","ref":"refs/heads/master","pushedAt":"2024-04-05T10:50:11.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Don't overwrite newestVersions and publicVersions\n\n5a2a74ef997414aa3451b173df403eb56a7974e4 added support for loading an old vsan type information library. It works by the marking the vsan definitions as \"frozen\" and ignoring redefinitions. However, we missed the changes that vsanmgmtObjects.py applies to newestVersions and publicVersions. This change protects these maps too.","shortMessageHtmlLink":"Don't overwrite newestVersions and publicVersions"}},{"before":"3f88d7cc4ea63619e16b642297b710388852cdcf","after":"42b1ccce41c96ec3356e8afda96c7ad263aa3f5a","ref":"refs/heads/master","pushedAt":"2024-03-06T10:33:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Updated pyVmomi description","shortMessageHtmlLink":"Updated pyVmomi description"}},{"before":"35206b450a310ad122a39d59eae06a0088ca0fd8","after":"3f88d7cc4ea63619e16b642297b710388852cdcf","ref":"refs/heads/master","pushedAt":"2024-02-12T11:46:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Update the support statement hyperlink formatting","shortMessageHtmlLink":"Update the support statement hyperlink formatting"}},{"before":"14b5ed2251753e5004bdf5d99876943b72e95034","after":"35206b450a310ad122a39d59eae06a0088ca0fd8","ref":"refs/heads/master","pushedAt":"2024-02-12T08:22:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Add \"OSS\" to the user-agent request header","shortMessageHtmlLink":"Add \"OSS\" to the user-agent request header"}},{"before":"2ee06f8dbea82a44cd70dc11a840937ba1658b61","after":"14b5ed2251753e5004bdf5d99876943b72e95034","ref":"refs/heads/master","pushedAt":"2024-02-08T09:58:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Deprecate \"public\" and \"dotted\" version aliases\n\n\"public\" and \"dotted\" aliases were equal to the \"lts\" alias for quite some time. They are deprecated now and will be removed with the next major vSphere release.","shortMessageHtmlLink":"Deprecate \"public\" and \"dotted\" version aliases"}},{"before":"35f2743ea69d69973163a1a227a4f9864b13d2b3","after":"2ee06f8dbea82a44cd70dc11a840937ba1658b61","ref":"refs/heads/master","pushedAt":"2024-02-07T09:24:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Merge branch 'topic/ddraganov/missingtypehints' into 'master'\n\nCustom recursive addition of type annotations to package_data\n\nSee merge request api-platform/pyvmomi-public!8","shortMessageHtmlLink":"Merge branch 'topic/ddraganov/missingtypehints' into 'master'"}},{"before":"4bc1f52f3a5c2196b5635bdcea1defede889b3e0","after":"35f2743ea69d69973163a1a227a4f9864b13d2b3","ref":"refs/heads/master","pushedAt":"2024-02-01T10:07:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Stub adapters should allow the usage of an existing session\n\nStubAdapterBase is extended with an additional parameter and corresponding getter and setter - sessionId.\nClass derivates can use this parameter to set their own ways for authentication.\nCurrently, pyVmomi uses mainly SoapStubAdapter() which uses a cookie to communicate the session id.\nIf a session id is provided on class initialization, the cookie will be set with that id.\nconnect.Connect(), connect.SmartConnect() and connect.SmartStubAdapter() are extended to allow the usage of an existing session.\nWhen a session_id is provided the login step is skipped.\n\nUsage example:\nsi1 = SmartConnect(host=vcip, user=vcAdmin, pwd=vcPassword, disableSslCertValidation=True)\nsoap_session_id = pyVim.connect.GetStub().GetSessionId()\nsi2 = SmartConnect(host=vcip, sessionId=soap_session_id, disableSslCertValidation=True)","shortMessageHtmlLink":"Stub adapters should allow the usage of an existing session"}},{"before":"8fe08126903fc9bdd8c01a6ffcf9ea05baa6c364","after":"4bc1f52f3a5c2196b5635bdcea1defede889b3e0","ref":"refs/heads/master","pushedAt":"2024-01-12T09:42:40.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Remove 3rd party dependency - pywin32\n\npywin32 is no longer used in the code","shortMessageHtmlLink":"Remove 3rd party dependency - pywin32"}},{"before":"c61dc2b2119915de5a8e8330a6301815254b53f9","after":"8fe08126903fc9bdd8c01a6ffcf9ea05baa6c364","ref":"refs/heads/master","pushedAt":"2023-11-17T09:56:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Fix SmartConnect()'s handling of IPv6 address with square brackets\n\nCloses #978, closes #1053","shortMessageHtmlLink":"Fix SmartConnect()'s handling of IPv6 address with square brackets"}},{"before":"e12c6aff4076ce5bf3f6cf645acd36c7c54bfabb","after":"c61dc2b2119915de5a8e8330a6301815254b53f9","ref":"refs/heads/master","pushedAt":"2023-11-16T22:35:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Bump PyPI version to 8.0.2.0.1","shortMessageHtmlLink":"Bump PyPI version to 8.0.2.0.1"}},{"before":"55577eef394af23391dbb09c016e550fd078416a","after":"e12c6aff4076ce5bf3f6cf645acd36c7c54bfabb","ref":"refs/heads/master","pushedAt":"2023-09-28T10:12:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Remove the ToC backlinks","shortMessageHtmlLink":"Remove the ToC backlinks"}},{"before":"f0fe4e279cebdfdbca5bfce699063d15b1d3bd1d","after":"55577eef394af23391dbb09c016e550fd078416a","ref":"refs/heads/master","pushedAt":"2023-09-28T10:09:01.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Fix Support section links to .rst format","shortMessageHtmlLink":"Fix Support section links to .rst format"}},{"before":"9bc45afb7a6d9b520b33add94b4c08c401fbf6be","after":"f0fe4e279cebdfdbca5bfce699063d15b1d3bd1d","ref":"refs/heads/master","pushedAt":"2023-07-19T08:36:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Bump PyPI version to 8.0.1.0.2","shortMessageHtmlLink":"Bump PyPI version to 8.0.1.0.2"}},{"before":"8b61a2f095dad48234a52d1648027a748912ad71","after":"9bc45afb7a6d9b520b33add94b4c08c401fbf6be","ref":"refs/heads/master","pushedAt":"2023-07-18T18:48:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"[Tests] Fix test_http_proxy_with_cert_file after the added proxy authentication support\n\nThe test had to be updated because of the changes introduced in 352fb43675d019b7e1df28f59bae8ea045e415ac","shortMessageHtmlLink":"[Tests] Fix test_http_proxy_with_cert_file after the added proxy auth…"}},{"before":"5861073d029a4edcdcf958e3d143f5fe70266c84","after":"8b61a2f095dad48234a52d1648027a748912ad71","ref":"refs/heads/master","pushedAt":"2023-07-18T18:40:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Added type hints for the VSLM namespace","shortMessageHtmlLink":"Added type hints for the VSLM namespace"}},{"before":"4c23b13d8e42be7a77d55beeaeba2db017a088ef","after":"5861073d029a4edcdcf958e3d143f5fe70266c84","ref":"refs/heads/master","pushedAt":"2023-07-18T17:45:55.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"[Documentation fix] httpProxyPort type is int, not string","shortMessageHtmlLink":"[Documentation fix] httpProxyPort type is int, not string"}},{"before":"f31e5f6933006ff86d4a56d53285bb3333ad2457","after":"4c23b13d8e42be7a77d55beeaeba2db017a088ef","ref":"refs/heads/master","pushedAt":"2023-07-13T12:18:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Switch to static imports Closes #1021","shortMessageHtmlLink":"Switch to static imports Closes #1021"}},{"before":"e2ab1a71f1c0595bd164f760c04bf68d7f0cb0d0","after":"f31e5f6933006ff86d4a56d53285bb3333ad2457","ref":"refs/heads/master","pushedAt":"2023-07-05T23:15:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"Travis CI is no longer used","shortMessageHtmlLink":"Travis CI is no longer used"}},{"before":"3c9d292e1b0618aa6ceef34cc1560f53f9616069","after":"e2ab1a71f1c0595bd164f760c04bf68d7f0cb0d0","ref":"refs/heads/master","pushedAt":"2023-07-05T22:49:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"[tests] Enable all VmomiJSONEncoder tests","shortMessageHtmlLink":"[tests] Enable all VmomiJSONEncoder tests"}},{"before":"b819986c3d0d3427c21dfa07c6970028fc271db0","after":"3c9d292e1b0618aa6ceef34cc1560f53f9616069","ref":"refs/heads/master","pushedAt":"2023-07-05T22:42:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"[tests] Update the serializer tests to the latest pyVmomi version","shortMessageHtmlLink":"[tests] Update the serializer tests to the latest pyVmomi version"}},{"before":"4e387cc3d2754eaa48716d59aa2f34a0027deec3","after":"b819986c3d0d3427c21dfa07c6970028fc271db0","ref":"refs/heads/master","pushedAt":"2023-07-05T22:31:29.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"[tests] Fix test_invoke_method_login_session_exception\n\nUnsuccessful logins return a NotAuthenticated exception.","shortMessageHtmlLink":"[tests] Fix test_invoke_method_login_session_exception"}},{"before":"2169e2eba05977c7e7d8906c1934f23cefd70d54","after":"4e387cc3d2754eaa48716d59aa2f34a0027deec3","ref":"refs/heads/master","pushedAt":"2023-07-03T07:28:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanielDraganov","name":null,"path":"/DanielDraganov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8299919?s=80&v=4"},"commit":{"message":"[type hints] Use FQN when type is from another namespace/package","shortMessageHtmlLink":"[type hints] Use FQN when type is from another namespace/package"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEb_z21gA","startCursor":null,"endCursor":null}},"title":"Activity · vmware/pyvmomi"}