{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":49863805,"defaultBranch":"master","name":"pysim","ownerLogin":"osmocom","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-01-18T08:48:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1415806?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716911193.0","currentOid":""},"activityList":{"items":[{"before":"0519e2b7e1c6470c67f6755eef3f74023c0ba734","after":"9d0c2947f14d6737181bfdbe7b46e2d1163d9118","ref":"refs/heads/master","pushedAt":"2024-07-17T15:58:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"es9p_client: Move code into a class; do common steps in constructor\n\nThis is in preparation of supporting more than just 'download'\n\nChange-Id: I5a165efcb97d9264369a9c6571cd92022cbcdfb0","shortMessageHtmlLink":"es9p_client: Move code into a class; do common steps in constructor"}},{"before":"96e2a521e942d676dd7bd2af9a403faa8a12d95d","after":"0519e2b7e1c6470c67f6755eef3f74023c0ba734","ref":"refs/heads/master","pushedAt":"2024-07-17T14:07:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"osmo-smdpp: Make sure to return empty HTTP response in handleNotification\n\nSGP.22 is quite clear in that handleNotification shall return an empty\nHTTP response body. Let's make sure we comply to that and don't report\na JSON response.\n\nChange-Id: I1cad539accbc3e7222bfd4780955b3b1ff694c5b","shortMessageHtmlLink":"osmo-smdpp: Make sure to return empty HTTP response in handleNotifica…"}},{"before":"23dd13542e0c8ca6e1afd6305276064967d125f4","after":"96e2a521e942d676dd7bd2af9a403faa8a12d95d","ref":"refs/heads/master","pushedAt":"2024-07-16T16:59:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.esim.http_json_api: 'header' is not always present in response\n\nFor example, the ES9+ handleNotification function is defined with an\nempty response body, so we cannot unconditionally assume that every HTTP\nresponse will contain a JSON \"header\" value.\n\nChange-Id: Ia3c5703b746c1eba91f85f8545f849a3f2d56e0b","shortMessageHtmlLink":"pySim.esim.http_json_api: 'header' is not always present in response"}},{"before":"5fdfa1463e4cd209fc93867d959931ce16f22006","after":"23dd13542e0c8ca6e1afd6305276064967d125f4","ref":"refs/heads/master","pushedAt":"2024-07-16T15:07:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"saip-tool: Fix output of TAR values in \"print\" subcommand\n\nChange-Id: Ifba1048e3000829d54769b0420f5134e2f9b04e1","shortMessageHtmlLink":"saip-tool: Fix output of TAR values in \"print\" subcommand"}},{"before":"c805f00bff35904886d4623205c9ab756efa9c8b","after":"5fdfa1463e4cd209fc93867d959931ce16f22006","ref":"refs/heads/master","pushedAt":"2024-07-15T15:08:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.cat: More spec references + explanations in comments\n\nChange-Id: I4a89156075ae225594740451b33c3dec8983cf04","shortMessageHtmlLink":"pySim.cat: More spec references + explanations in comments"}},{"before":"12902730bf4ff216ada3b237a6658071625fb92d","after":"c805f00bff35904886d4623205c9ab756efa9c8b","ref":"refs/heads/master","pushedAt":"2024-07-15T15:08:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"transport: Implement treatment of 62xx and 63xx warning/error responses\n\nTS 102 221 specifies that (in case of a class 4 command) and as SW\n62xx or 63xx, we should send a GET RESPONSE just like in the 61xx\ncase in order to get the respective response.\n\nAs we don't really know if it's a case1/2/3/4 command in the\npySim.transport, let's always send the GET RESPONSE in case SW 62xx or\n63xx are received. It shouldn't hurt - in the worst case there's no\nresponse available...\n\nChange-Id: Ibb1398194a16fc1f1f9bc46af6c66fb6575240cd","shortMessageHtmlLink":"transport: Implement treatment of 62xx and 63xx warning/error responses"}},{"before":"1c2ec93164c6f88f7c3388318c45dc03bc4cb0fb","after":"12902730bf4ff216ada3b237a6658071625fb92d","ref":"refs/heads/master","pushedAt":"2024-07-13T21:25:20.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.commands: Check return value of TERMINAL PROFILE command\n\nChange-Id: Iaede74caf22970869c2c85b42d1e6f70d52c65cb","shortMessageHtmlLink":"pySim.commands: Check return value of TERMINAL PROFILE command"}},{"before":"76b3488829af27ce0e8e0baf2fd9ba64de03f974","after":"1c2ec93164c6f88f7c3388318c45dc03bc4cb0fb","ref":"refs/heads/master","pushedAt":"2024-07-12T15:20:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.tlv: Add COMPACT_TLV_IE TLV variant\n\nthe COMPACT-TLV variant is a TLV variant that ISO7816 uses for encoding\ntag and length into a single octet. This is used (for example) in ATR\nhistorical bytes.\n\nLet's add support for this to our pySim TLV encoder/decoder.\n\nChange-Id: I9e98d150b97317ae0c6be2366bdaaeaeddf8031c","shortMessageHtmlLink":"pySim.tlv: Add COMPACT_TLV_IE TLV variant"}},{"before":"698886247f592cede824984723e78b41a0ef6b64","after":"76b3488829af27ce0e8e0baf2fd9ba64de03f974","ref":"refs/heads/master","pushedAt":"2024-07-10T06:51:39.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"saip-tool: Also dump RFM information in \"info\" command\n\nexample output:\n\nNumber of RFM instances: 2\nRFM instanceAID: d276000005aa060200000000b00000 (-> TAR: b00000)\n MSL: 0x16\nRFM instanceAID: d276000005aa060200000000b00001 (-> TAR: b00001)\n MSL: 0x16\n ADF AID: a0000000871002ff33ffff8901010100\n\nChange-Id: I534267c7420fc5bd96eaded6078e986161729073","shortMessageHtmlLink":"saip-tool: Also dump RFM information in \"info\" command"}},{"before":"b6532b56d2e78be6ac98977b82d63c65879abe34","after":"698886247f592cede824984723e78b41a0ef6b64","ref":"refs/heads/master","pushedAt":"2024-07-10T06:49:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.tlv: Fix ComprTlvMeta() not passing kwargs to parent __new__\n\nThis fixes commit cdf661b24cfebb63b57405c2b55b3c42a8f277c8\n\"pySim.tlv.COMPR_TLV_IE: Patch comprehension bit if derived class misses it\"\nwhere we introduce a comprehension-TLV specific derived metaclass, which forgets\nto pass the kwargs through to the parent metaclass.\n\nChange-Id: If65a8169bcf91bb2f943d0316f1140e07f0b8b8e","shortMessageHtmlLink":"pySim.tlv: Fix ComprTlvMeta() not passing kwargs to parent __new__"}},{"before":"ecb65bc2f2f35feba36add7593c62b06379bce2b","after":"b6532b56d2e78be6ac98977b82d63c65879abe34","ref":"refs/heads/master","pushedAt":"2024-06-13T14:50:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"saip-tool: Add 'extract-apps' to dump all applications from eSIM profile\n\nThis new action can be used to dump all java applications as either raw\nIJC file or converted to CAP format (the usual format generated by\nJavaCard toolchains).\n\nChange-Id: I51cffa5ba3ddbea491341d678ec9249d7cf470a5","shortMessageHtmlLink":"saip-tool: Add 'extract-apps' to dump all applications from eSIM profile"}},{"before":"36276e7b2aeeccb6d71acd90341033a5a96e2eb0","after":"ecb65bc2f2f35feba36add7593c62b06379bce2b","ref":"refs/heads/master","pushedAt":"2024-06-10T12:46:56.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"esim.saip: Remove debug print()\n\nChange-Id: I8dfe29302225d951e656d1321bbd249bfe242602","shortMessageHtmlLink":"esim.saip: Remove debug print()"}},{"before":"8bd551af321af3ca3e73a48def87b303e91333fc","after":"36276e7b2aeeccb6d71acd90341033a5a96e2eb0","ref":"refs/heads/master","pushedAt":"2024-06-10T11:39:44.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"contrib/jenkins.sh: Execute pylint also on all contrib python scripts\n\nThis way we get linting coverage for sim-rest-{server,client}, eidtool,\nunber and others.\n\nChange-Id: I2d6271d493d0f6765e6a184f8ae32f8325317be2","shortMessageHtmlLink":"contrib/jenkins.sh: Execute pylint also on all contrib python scripts"}},{"before":"0cb0e02c5cb6feaafe28a1ea291a5a7838f9d58e","after":"8bd551af321af3ca3e73a48def87b303e91333fc","ref":"refs/heads/master","pushedAt":"2024-06-10T11:39:19.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.ota.OtaDialectSms: Move SMS header construct up to class level\n\nthis way we can use it in other [future] methods.\n\nChange-Id: If296f823c18864fddcfb9cb1b82a087bac8875d4","shortMessageHtmlLink":"pySim.ota.OtaDialectSms: Move SMS header construct up to class level"}},{"before":"2c39d81b4bb2baf40f3803fdfd6ff673526b4730","after":"0cb0e02c5cb6feaafe28a1ea291a5a7838f9d58e","ref":"refs/heads/master","pushedAt":"2024-06-09T14:21:34.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"esim.saip: Introduce ProfileElement.identification property\n\nChange-Id: I6525bb78619e574296488843e021d505e0632d99","shortMessageHtmlLink":"esim.saip: Introduce ProfileElement.identification property"}},{"before":"2eea70f6bc2dc64a285c70d59c78b5449ce5bbaa","after":"2c39d81b4bb2baf40f3803fdfd6ff673526b4730","ref":"refs/heads/master","pushedAt":"2024-06-08T18:27:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim/cat: Decode the \"Type of Comand\" from numeric value to a string\n\nThis makes pySim-trace of proactive UICC much more readable.\n\nChange-Id: I833ec02bf281fe49de2be326018e91f521de52c0","shortMessageHtmlLink":"pySim/cat: Decode the \"Type of Comand\" from numeric value to a string"}},{"before":"add30ecbfff32ee57a29b2524441e1c532d86fe7","after":"2eea70f6bc2dc64a285c70d59c78b5449ce5bbaa","ref":"refs/heads/master","pushedAt":"2024-06-08T18:15:06.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.apdu.ts_102_221: Decode FETCH and TERMINAL RESPONSE body\n\nThis gives a meaningful decode during pySim-trace.\n\nChange-Id: Ifa410e1fefc25e87ffa8e3a2230af80180a36a18","shortMessageHtmlLink":"pySim.apdu.ts_102_221: Decode FETCH and TERMINAL RESPONSE body"}},{"before":"643246ab65a72aa6c443e8ba124c3ddf6320850d","after":"8f1ffbee967b41b8b417c72220cc83174b8541b7","ref":"refs/heads/laforge/ota","pushedAt":"2024-06-08T16:41:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"ota_apdu2: add example keys of C2T\n\nChange-Id: I3aa6efff615bf6a089eb4c0727069c1fdc5883f0","shortMessageHtmlLink":"ota_apdu2: add example keys of C2T"}},{"before":"4d5d2f5849b5769a0adc9104db81ca18f8356f78","after":"add30ecbfff32ee57a29b2524441e1c532d86fe7","ref":"refs/heads/master","pushedAt":"2024-06-05T11:45:04.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"global_platform/euicc: Implement obtaining SCP keys from CardKeyProvider\n\nNow that CardKeyProvider is capable of storing key materials\ntransport-key-encrypted, we can use this functionality to look up the\nSCP02 / SCP03 key material for a given security domain.\n\nThis patch implements this for the ISD-R and ECASD using a look-up by\nEID inside the CSV.\n\nChange-Id: I2a21f031ab8af88019af1b8390612678b9b35880","shortMessageHtmlLink":"global_platform/euicc: Implement obtaining SCP keys from CardKeyProvider"}},{"before":"fe28a1d87d52920d01168d961009201a2b4647d6","after":"4d5d2f5849b5769a0adc9104db81ca18f8356f78","ref":"refs/heads/master","pushedAt":"2024-06-04T20:52:14.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.esim.saip.validation: Ensure unique PE identification value\n\nChange-Id: I37b9eb4cfb74de79b0493986d976c8a5f8ccd8ea","shortMessageHtmlLink":"pySim.esim.saip.validation: Ensure unique PE identification value"}},{"before":"2755b54ded29c8a61babf966ad3e6005d4f64cb2","after":"fe28a1d87d52920d01168d961009201a2b4647d6","ref":"refs/heads/master","pushedAt":"2024-06-03T16:08:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"esim.bsp: Fix a bug in demac_only_one()\n\nWhen de-MAC-ing at the recipient side, we must increment the cipher(!)\nblock number even if no ciphering is done at all.\n\nWe did this correctly for MAC (sender) case, but not on the de-MAC\n(receiver) case.\n\nChange-Id: I97993f9e8357b36401d435aaa15558d1c7e411eb","shortMessageHtmlLink":"esim.bsp: Fix a bug in demac_only_one()"}},{"before":"ddbfc043ac0fd977a0b18f4b729b9211eea4d432","after":"2755b54ded29c8a61babf966ad3e6005d4f64cb2","ref":"refs/heads/master","pushedAt":"2024-06-02T18:30:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"[cosmetic] fix typos in comments\n\nChange-Id: I549ef7002e6ebef3f13af620cad8d03c7f4d891a","shortMessageHtmlLink":"[cosmetic] fix typos in comments"}},{"before":"3dabbafdba2cbfee6528d057220184f857ea8485","after":"ddbfc043ac0fd977a0b18f4b729b9211eea4d432","ref":"refs/heads/master","pushedAt":"2024-05-31T21:33:16.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"add globalplatform.uicc\n\nGlobalPlatform has a [non-public] \"UICC Configuration\" spec, which\ndefines some specific aspects of implementing GlobalPlatform in the\ncontext of an UICC. Let's add some python definitions about it.\n\nChange-Id: If4cb110a9bc5f873b0e097c006bef59264ee48fa","shortMessageHtmlLink":"add globalplatform.uicc"}},{"before":"e4450afb4ebf37fd2c2a2a089236f87a9fd92b45","after":"3dabbafdba2cbfee6528d057220184f857ea8485","ref":"refs/heads/master","pushedAt":"2024-05-31T08:44:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"docs/shell: Mention GlobalPlatform and eUICC commands in overview\n\nChange-Id: I5b6ad752fea09ed9632f150dfbbabf2156a5a9c0","shortMessageHtmlLink":"docs/shell: Mention GlobalPlatform and eUICC commands in overview"}},{"before":"3ba10b61e10435e920c4ffa008c4f924395a0fc3","after":"e4450afb4ebf37fd2c2a2a089236f87a9fd92b45","ref":"refs/heads/master","pushedAt":"2024-05-30T18:06:20.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim.app: Attempt to retrieve the EID of a SGP.22 / SGP.32 eUICC\n\n... and populate the RuntimeState.identity['EID'] wit it, so other\n[future] parts of the system can use it.\n\nLet's also print the EID (if available) from the 'cardinfo' shell\ncommand.\n\nChange-Id: Idc2ea1d9263f39b3dff403e1535a5e6c4e88b26f","shortMessageHtmlLink":"pySim.app: Attempt to retrieve the EID of a SGP.22 / SGP.32 eUICC"}},{"before":null,"after":"049fcdb4c809764a02a401863844a1190209662d","ref":"refs/heads/pmaier/euicchack","pushedAt":"2024-05-28T15:46:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"HACK\n\n- cirumvent euicc signature check\n- add test profile to verify some theories","shortMessageHtmlLink":"HACK"}},{"before":"6add18ea087a0849307c0d0a3d41f8df5a8a82ac","after":"3ba10b61e10435e920c4ffa008c4f924395a0fc3","ref":"refs/heads/master","pushedAt":"2024-05-26T17:24:16.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pysim/euicc: Remove duplicated code\n\nThe get_eid command is actually sending the command apdu twice, as\nit contains both an older implementation (result unused) and the newer\none.\n\nChange-Id: Ie82bb09f4fc30bc879029b83147dad5614792b48","shortMessageHtmlLink":"pysim/euicc: Remove duplicated code"}},{"before":"56264669a7548ca4c0cc816cea67472b1a7ff1dc","after":"6add18ea087a0849307c0d0a3d41f8df5a8a82ac","ref":"refs/heads/master","pushedAt":"2024-05-24T20:23:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"contrib/sim-rest-client: don't crash without args\n\nWhen running without an argument, let argparse print a nice usage error:\n\n $ ./sim-rest-client.py\n usage: sim-rest-client.py [-h] [-H HOST] [-p PORT] [-v] [-n SLOT_NR] {auth,info} ...\n sim-rest-client.py: error: the following arguments are required: {auth,info}\n\nInstead of:\n\n $ ./sim-rest-client.py\n Traceback (most recent call last):\n File \"/usr/share/pysim/contrib/./sim-rest-client.py\", line 185, in \n main(sys.argv)\n File \"/usr/share/pysim/contrib/./sim-rest-client.py\", line 181, in main\n args.func(args)\n ^^^^^^^^^\n AttributeError: 'Namespace' object has no attribute 'func'\n\nChange-Id: I92998d9b94dcfb9dcfc3da161fe5d8f45f242b78","shortMessageHtmlLink":"contrib/sim-rest-client: don't crash without args"}},{"before":"172c9f7ca6a2c8aadf1f1ae06055c08ae7eea6e8","after":"56264669a7548ca4c0cc816cea67472b1a7ff1dc","ref":"refs/heads/master","pushedAt":"2024-05-24T20:23:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pcsc: don't assume opts.pcsc_shared is present\n\nFixes running contrib/sim-rest-server.py:\n builtins.AttributeError: 'Namespace' object has no attribute 'pcsc_shared'\n\nChange-Id: I864f65849c5d43cf7c73e60f1935afdf4273f696","shortMessageHtmlLink":"pcsc: don't assume opts.pcsc_shared is present"}},{"before":"daeba3c1fb4e3e73293dbb546af686b8101bbc2a","after":"172c9f7ca6a2c8aadf1f1ae06055c08ae7eea6e8","ref":"refs/heads/master","pushedAt":"2024-05-23T15:01:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osmocom-gerrit","name":"Osmocom Gerrit Code Review","path":"/osmocom-gerrit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32628598?s=80&v=4"},"commit":{"message":"pySim/cat: Fix contruct for Address class/IE\n\nSomething like \"this._.total_len-1\" only works during decode. Let's\nuse GreedyBytes instead, working for encode and decode.\n\nChange-Id: Idf8326298cab7ebc68b09c7e829bfc2061222f51","shortMessageHtmlLink":"pySim/cat: Fix contruct for Address class/IE"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEggfXnwA","startCursor":null,"endCursor":null}},"title":"Activity · osmocom/pysim"}