{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":145094499,"defaultBranch":"main","name":"drgn","ownerLogin":"osandov","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-08-17T08:34:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3682206?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717113518.0","currentOid":""},"activityList":{"items":[{"before":"3dbf48a214c0a2f5d8c8d4ce3d0ac74ca4515f9b","after":"5a79626dbd133881a528d333bed53fcada39282f","ref":"refs/heads/register-finders","pushedAt":"2024-06-05T00:00:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"Allow naming and configuring order of object finders\n\nThis one doesn't need any changes to the callback signature, just the\nnew interface. We also keep add_object_finder() for compatibility.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"Allow naming and configuring order of object finders"}},{"before":"5b39bfb547c62764b67a9fbc6152efb0366039c8","after":"b47567017eb6fe449a411ef73e51281649899266","ref":"refs/heads/main","pushedAt":"2024-05-30T23:59:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"libdrgn: python: don't construct unnecessary tuple for add_object_finder()\n\nWe can get the Program object from the return drgn_object, so we don't\nneed a tuple.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"libdrgn: python: don't construct unnecessary tuple for add_object_fin…"}},{"before":"f55b1e8f688b8ba37957391321309e2291af8769","after":null,"ref":"refs/heads/object-finder-cleanup","pushedAt":"2024-05-30T23:58:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"}},{"before":null,"after":"f55b1e8f688b8ba37957391321309e2291af8769","ref":"refs/heads/object-finder-cleanup","pushedAt":"2024-05-30T23:21:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"libdrgn: python: don't construct unnecessary tuple for add_object_finder()\n\nWe can get the Program object from the return drgn_object, so we don't\nneed a tuple.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"libdrgn: python: don't construct unnecessary tuple for add_object_fin…"}},{"before":"200d870b985652c96a3a227f03ca1342b9d86556","after":"5b39bfb547c62764b67a9fbc6152efb0366039c8","ref":"refs/heads/main","pushedAt":"2024-05-30T18:56:23.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"libdrgn: x86_64: avoid recursive address translation for swapper_pg_dir\n\nMost core dumps contain some virtual address mappings: usually at a\nminimum, the kernel's direct map is represented in ELF vmcores via a\nsegment. So normally, drgn can rely on the vmcore to read the virtual\naddress of swapper_pg_dir. However, some vmcores only contain physical\naddress information, so when drgn reads memory at swapper_pg_dir, it\nneeds to first translate that address, thus causing a recursive\ntranslation error like below:\n\n>>> prog[\"slab_caches\"]\nTraceback (most recent call last):\n File \"\", line 1, in \n File \"/home/stepbren/repos/drgn/drgn/cli.py\", line 141, in _displayhook\n text = value.format_(columns=shutil.get_terminal_size((0, 0)).columns)\n_drgn.FaultError: recursive address translation; page table may be missing from core dump: 0xffffffff9662aff8\n\nDebuggers like crash, as well as libkdumpfile, contain fallback code\nwhich can translate swapper_pg_dir in order to bootstrap this address\ntranslation. In fact, the above error does not occur in drgn when using\nlibkdumpfile. So, let's add this fallback case to drgn as well. Other\narchitectures will need to have equivalent support added.\n\nCo-authored-by: Illia Ostapyshyn \nSigned-off-by: Stephen Brennan ","shortMessageHtmlLink":"libdrgn: x86_64: avoid recursive address translation for swapper_pg_dir"}},{"before":"9a81a89627fd1fb1f15c9e47d6f67fba7c0fab9d","after":"200d870b985652c96a3a227f03ca1342b9d86556","ref":"refs/heads/main","pushedAt":"2024-05-30T17:45:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib/bpf_inspect.py: list bpf links\n\nLike `list_bpf_progs()` and `list_bpf_maps()`, it's easy to implement\n`list_bpf_links()`.\n\nHere's an use example:\n\n```bash\ndrgn ./contrib/bpf_inspect.py l\n 1: BPF_LINK_TYPE_TRACING prog: 2: BPF_PROG_TYPE_TRACING hid_tail_call\n 931: BPF_LINK_TYPE_XDP prog: 2056: BPF_PROG_TYPE_XDP dummy\n 932: BPF_LINK_TYPE_TRACING prog: 2060: BPF_PROG_TYPE_TRACING fentry_xdp\n 933: BPF_LINK_TYPE_TRACING prog: 2061: BPF_PROG_TYPE_TRACING fexit_xdp\n```\n\nSigned-off-by: Leon Hwang ","shortMessageHtmlLink":"contrib/bpf_inspect.py: list bpf links"}},{"before":"e9b6789e2e868649747a2c1e9d20cf0a0e6323ee","after":"9a81a89627fd1fb1f15c9e47d6f67fba7c0fab9d","ref":"refs/heads/main","pushedAt":"2024-05-29T23:52:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib/lsmod.py: update for Linux 6.4\n\nThis is essentially the same fix as commit 3f3a9575628d (\"libdrgn:\nlinux_kernel: Fix module detection on kernel v6.4\").\n\nCloses #373.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"contrib/lsmod.py: update for Linux 6.4"}},{"before":"06a9bb6fe2b583195a2992ef3c3b726e7813c581","after":"e9b6789e2e868649747a2c1e9d20cf0a0e6323ee","ref":"refs/heads/main","pushedAt":"2024-05-29T22:06:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib/bpf_inspect.py: hide args from interactive mode\n\nWhen run `list_bpf_progs()` in drgn shell, it's meaningless to pass\n`args` to `list_bpf_progs()`. Therefore, let's hide `args` from drgn\nshell.\n\nBTW, select appropriate global variables and functions to run drgn shell.\n\nSo, it's ready to add more bpf functions to inspect bpf progs, bpf maps,\nbpf links and so on.\n\nSigned-off-by: Leon Hwang ","shortMessageHtmlLink":"contrib/bpf_inspect.py: hide args from interactive mode"}},{"before":"ace7a054f30ab847e1a82c59d6d43fe2f6bfe706","after":"06a9bb6fe2b583195a2992ef3c3b726e7813c581","ref":"refs/heads/main","pushedAt":"2024-05-29T03:13:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"Fix CI failure on Python 3.12\n\nOur setup.py imports setuptools which is no longer provided by Python\n3.12. It must be installed manually via pip. We did not notice this\nbecause the \"nodeenv\" package listed setuptools in its install_requires,\nthus providing the dependency for us.\n\nFour hours ago nodeenv 1.9.0 was released, and it happened to drop the\nsetuptools dependency. This broke CI. Add an explicit setuptools\nrequirement in our pip command to fix it.\n\nSigned-off-by: Stephen Brennan ","shortMessageHtmlLink":"Fix CI failure on Python 3.12"}},{"before":"a712ebd0ec771fd4add4c2de86bd26aff6c1c620","after":"ace7a054f30ab847e1a82c59d6d43fe2f6bfe706","ref":"refs/heads/main","pushedAt":"2024-05-28T19:31:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"packit: replace EPEL 9 with centos-stream+epel-next-9 and c9s-build\n\n`drgn` no longer builds in EPEL 9 because `libkdumpfile-devel` is in\nRHEL 9 but not pushed out to CRB: https://issues.redhat.com/browse/RHEL-38224\n\nInstead, let's make sure it still builds on CentOS Stream 9 + EPEL Next\n9, with the `c9s-build` repo enabled, since that repo is accessible from\nCOPR.\n\nFixes: #395\n\nSigned-off-by: Michel Lind ","shortMessageHtmlLink":"packit: replace EPEL 9 with centos-stream+epel-next-9 and c9s-build"}},{"before":"2c13112fc62db963ab3707fcd4e29e11069c8c9b","after":"a712ebd0ec771fd4add4c2de86bd26aff6c1c620","ref":"refs/heads/main","pushedAt":"2024-05-28T19:17:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib/bpf_inspect.py: add interactive mode\n\nIt's convenient to run drgn shell with bpf helpers in bpf_inspect.py.\n\nSigned-off-by: Leon Hwang ","shortMessageHtmlLink":"contrib/bpf_inspect.py: add interactive mode"}},{"before":"bee9d25a442efa642c01e2ec04330f24553e8762","after":"2c13112fc62db963ab3707fcd4e29e11069c8c9b","ref":"refs/heads/main","pushedAt":"2024-05-22T16:44:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib/btrfs_tree.py: fix extra whitespace when printing inode item\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"contrib/btrfs_tree.py: fix extra whitespace when printing inode item"}},{"before":"60e30c1ca33b5276ece494a1b320e09408bd3fd4","after":"bee9d25a442efa642c01e2ec04330f24553e8762","ref":"refs/heads/main","pushedAt":"2024-05-21T22:30:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"packit: disable EPEL 9 builds\n\ndrgn is now in RHEL 9.4, so it was retired from EPEL 9. The EPEL 9\nPackit build is failing with\n\n No matching package to install: 'libkdumpfile-devel'\n\nIt might still be useful to build for RHEL 9, but Davide Cavalca is\nlooking into what the best thing to do here is. For now, disable the\nEPEL 9 builds to get the CI green.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"packit: disable EPEL 9 builds"}},{"before":"dcea16f4f730633c0210e6cfdc5cdc978a9e5c62","after":"60e30c1ca33b5276ece494a1b320e09408bd3fd4","ref":"refs/heads/main","pushedAt":"2024-05-21T22:19:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib: add negdentdelete.py script\n\nSigned-off-by: Stephen Brennan ","shortMessageHtmlLink":"contrib: add negdentdelete.py script"}},{"before":"eb485dac65a3751c1d442902de7255f501d4eac5","after":"dcea16f4f730633c0210e6cfdc5cdc978a9e5c62","ref":"refs/heads/main","pushedAt":"2024-05-21T21:41:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib/btrfs_tree.py: flesh out structures and helpers\n\nAdd support for parsing and printing most of the Btrfs item types and\nclean up/add some tree search and extent buffer helpers. I used this to\ndebug a Btrfs crash in production. It's almost ready to be turned into\nproper helpers, but it needs lots of test cases and a big more cleanup.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"contrib/btrfs_tree.py: flesh out structures and helpers"}},{"before":"865fc9125ad0e69ad6e8f9f43f27202b88cdd2bd","after":"b571ccffad0c02512036215e571608c575f0fce7","ref":"refs/heads/modules","pushedAt":"2024-05-10T18:45:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"misc","shortMessageHtmlLink":"misc"}},{"before":"9f15f77a6ef917145df5e5f752f33dd45b6e4a92","after":"865fc9125ad0e69ad6e8f9f43f27202b88cdd2bd","ref":"refs/heads/modules","pushedAt":"2024-05-09T18:50:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"misc","shortMessageHtmlLink":"misc"}},{"before":"22e532eea4a31fbb4ff8ed546f4dd60f00e41500","after":"eb485dac65a3751c1d442902de7255f501d4eac5","ref":"refs/heads/main","pushedAt":"2024-05-08T17:07:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib/gcore.py: fix vma offset handling\n\nvma->vm_pgoff is in units of pages.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"contrib/gcore.py: fix vma offset handling"}},{"before":"00f39ce3392fc138d3b9a9067a20ac6e1b41e497","after":"22e532eea4a31fbb4ff8ed546f4dd60f00e41500","ref":"refs/heads/main","pushedAt":"2024-05-07T21:15:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"contrib: add script to extract process core dump from kernel\n\nI've used this in situations where a process is deadlocked and can't\ndump core normally.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"contrib: add script to extract process core dump from kernel"}},{"before":"64a317a02268b319b02d3ea5cced0653ae922422","after":null,"ref":"refs/heads/fbreg-fix","pushedAt":"2024-05-07T20:59:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"}},{"before":"f34bc39cd3060eb5230cf9ad937bed858be63463","after":"f9153cde178f117806f6b3e82d531318b8d27433","ref":"refs/heads/kvm","pushedAt":"2024-05-02T23:52:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"CI: use KVM\n\nDaan De Meyer mentioned that nested virtualization is finally available\non GitHub Actions. We just need to bring back our udev /dev/kvm\npermissions hack that we had for Travis.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"CI: use KVM"}},{"before":"4d970a98c1a307371b92444ae989ece5423e2765","after":"00f39ce3392fc138d3b9a9067a20ac6e1b41e497","ref":"refs/heads/main","pushedAt":"2024-05-02T08:09:16.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"libdrgn: examples: load_debug_info: fix build due to headers not being found\n\nFixes: 4324aee4967a (\"libdrgn: make include paths stricter\")\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"libdrgn: examples: load_debug_info: fix build due to headers not bein…"}},{"before":null,"after":"64a317a02268b319b02d3ea5cced0653ae922422","ref":"refs/heads/fbreg-fix","pushedAt":"2024-05-02T07:37:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"libdrgn: stack_trace: get DW_AT_frame_base from containing DW_TAG_subprogram DIE\n\nWhen looking up a local variable, we pass the function scope DIE to the\nDWARF expression evaluator, which uses it to look up DW_AT_frame_base\nfor DW_OP_fbreg. However, for inline frames, the function scope DIE is\nthe DW_TAG_inlined_subroutine DIE, which doesn't have a\nDW_AT_frame_base; we're supposed to get it from the containing\nDW_TAG_subprogram DIE. Fix drgn_stack_frame_find_object() to always pass\nthe containing DW_TAG_subprogram DIE. This fixes some cases where local\nvariables are reported as absent even though they are available.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"libdrgn: stack_trace: get DW_AT_frame_base from containing DW_TAG_sub…"}},{"before":"e5da1e2eb95ac48a63a29a104c6a267606430039","after":"3dbf48a214c0a2f5d8c8d4ce3d0ac74ca4515f9b","ref":"refs/heads/register-finders","pushedAt":"2024-04-26T22:53:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"Allow naming and configuring order of symbol finders\n\nCurrently, the bare-bones add_symbol_finder() interface only allows\nadding a symbol finder that is called before any existing finders. It'd\nbe useful to be able to specify the order that symbol finders should be\ncalled in and to selectively enable and disable them. To do that, we\nalso need finders to have a name to identify them by. So, replace\nadd_symbol_finder() (which hasn't been in a release yet) with a set of\ninterfaces providing this flexibility: register_symbol_finder(),\nset_enabled_symbol_finders(), registered_symbol_finders(), and\nenabled_symbol_finders().\n\nIn particular, this flexibility will be very useful for a plugin system:\npre-installed plugins can register symbol finders that the user can\nchoose to enable or disable.\n\nType and object finders will also get this treatment, although\nadd_type_finder() and add_object_finder() may need to stick around for\nbackwards-compatibility.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"Allow naming and configuring order of symbol finders"}},{"before":"af890a3199304d7dfe5b8aec652d57c8eb119bb5","after":"4d970a98c1a307371b92444ae989ece5423e2765","ref":"refs/heads/main","pushedAt":"2024-04-26T22:53:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"libdrgn: python: set Python error indicator if Program_hold_reserve() fails\n\nAll of its callers are assuming it does.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"libdrgn: python: set Python error indicator if Program_hold_reserve()…"}},{"before":null,"after":"e5da1e2eb95ac48a63a29a104c6a267606430039","ref":"refs/heads/register-finders","pushedAt":"2024-04-26T22:50:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"Allow naming and configuring order of symbol finders\n\nCurrently, the bare-bones add_symbol_finder() interface only allows\nadding a symbol finder that is called before any existing finders. It'd\nbe useful to be able to specify the order that symbol finders should be\ncalled in and to selectively enable and disable them. To do that, we\nalso need finders to have a name to identify them by. So, replace\nadd_symbol_finder() (which hasn't been in a release yet) with a set of\ninterfaces providing this flexibility: register_symbol_finder(),\nset_enabled_symbol_finders(), registered_symbol_finders(), and\nenabled_symbol_finders().\n\nIn particular, this flexibility will be very useful for a plugin system:\npre-installed plugins can register symbol finders that the user can\nchoose to enable or disable.\n\nType and object finders will also get this treatment, although\nadd_type_finder() and add_object_finder() may need to stick around for\nbackwards-compatibility.\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"Allow naming and configuring order of symbol finders"}},{"before":"a66ec46b8c2f710be4d62cd5f588edeec19a750d","after":null,"ref":"refs/heads/check","pushedAt":"2024-04-26T21:53:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"}},{"before":"991e674d575799efd293b25c349166ea61fe1909","after":"af890a3199304d7dfe5b8aec652d57c8eb119bb5","ref":"refs/heads/main","pushedAt":"2024-04-26T21:53:53.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"Translate path_iterator tests to C unit tests\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"Translate path_iterator tests to C unit tests"}},{"before":"64f277117b9f30e19a4f88323942327945f7fb74","after":"a66ec46b8c2f710be4d62cd5f588edeec19a750d","ref":"refs/heads/check","pushedAt":"2024-04-26T21:19:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"Translate path_iterator tests to C unit tests\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"Translate path_iterator tests to C unit tests"}},{"before":"9cbfb7901ffa0203ffa5ae39f5fdc0a780cd3873","after":"64f277117b9f30e19a4f88323942327945f7fb74","ref":"refs/heads/check","pushedAt":"2024-04-26T20:49:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"osandov","name":"Omar Sandoval","path":"/osandov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3682206?s=80&v=4"},"commit":{"message":"Translate path_iterator tests to C unit tests\n\nSigned-off-by: Omar Sandoval ","shortMessageHtmlLink":"Translate path_iterator tests to C unit tests"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXI7DCAA","startCursor":null,"endCursor":null}},"title":"Activity · osandov/drgn"}