PyPI / ghapi / 2.1.4

ghapi 2.1.4

Source
https://github.com/fastai/ghapi
Tag scanned
2.1.4
Compared with
2.1.3 (35 signals introduced since)
Files
23 scanned, 68 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 52 info
Scan time
30.0 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 38 of 38 warn and critical signals; 38 demoted to info.
Disclude version
4.0.0
Scanned (UTC)
2026-10-14 18:52

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review encoding-base64 ghapi/gh_spec.py:8872:124 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                 'verificationMaterial': {'tlogEntries': [{'logIndex': '97913980',
                                                                                                           'logId': {'keyId': 'wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0='},
    likely benign LLM, confidence 0.92 Base64 value (log key identifier) inside an embedded GitHub attestation verification structure.
    Reasoning

    The blob sits inside a large embedded API specification dictionary. It is a 44-byte base64 value in a Sigstore transparency-log verification structure, which is a legitimate data field. Raw-pass base64 hits in data files have a high false-positive rate.

  2. info warn → info by review encoding-base64 ghapi/gh_spec.py:8875:150 new in this release

    base64-like blob (96 bytes, compression ratio 1.11) (raw pass, confidence 0.60)

                                                                                                           'inclusionPromise': {'signedEntryTimestamp': 'MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL'},
    likely benign LLM, confidence 0.92 Base64 signed entry timestamp in an embedded Sigstore attestation example.
    Reasoning

    The 96-byte base64 string is a signedEntryTimestamp, an ECDSA signature field in a Sigstore inclusion promise. It is expected data in an API spec and is not encoded code.

  3. info warn → info by review encoding-base64 ghapi/gh_spec.py:8877:136 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                              'rootHash': 'KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=',
    likely benign LLM, confidence 0.92 Base64 SHA-256 rootHash value in an embedded attestation structure.
    Reasoning

    This is a base64 SHA-256 digest (44 characters with a trailing '=') in a rootHash field of a Merkle-tree attestation structure. Hashes like this are expected in the spec.

  4. info warn → info by review encoding-base64 ghapi/gh_spec.py:8879:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                              'hashes': ['8LI21mzwxnUSo0fuZeFsUrz2ujZ4QAL+oGeTG+5toZg=',
    likely benign LLM, confidence 0.92 Base64 SHA-256 hash entry in an embedded attestation hashes list.
    Reasoning

    This is a base64 SHA-256 digest in a hashes list, the same kind of Merkle-tree attestation data. It is a legitimate data constant.

  5. info warn → info by review encoding-base64 ghapi/gh_spec.py:8880:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'nCb369rcIytNhGwWoqBv+eV49X3ZKpo/HJGKm9V+dck=',
    likely benign LLM, confidence 0.92 Base64 SHA-256 hash value in an embedded attestation structure.
    Reasoning

    This is a base64 SHA-256 digest in the same attestation data block. It has the normal shape of a hash value and no decoding or execution is involved.

  6. info warn → info by review encoding-base64 ghapi/gh_spec.py:8881:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'hnNQ9mUdSwYCfdV21pd87NucrdRRNZATowlaRR1hJ4A=',
    likely benign LLM, confidence 0.92 Base64 SHA-256 hash value in an embedded attestation structure.
    Reasoning

    This is a base64 SHA-256 digest in the same attestation data block. It is a static data constant in a spec file.

  7. info warn → info by review encoding-base64 ghapi/gh_spec.py:8882:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'MBhhK33vlD4Tq/JKgAaXUI4VjmosWKe6+7RNpQ2ncNM=',
    likely benign LLM, confidence 0.92 Base64 SHA-256 hash value in an embedded attestation structure.
    Reasoning

    This is a base64 SHA-256 digest in the same attestation data block. It is a static data constant with no execution path.

  8. info warn → info by review encoding-base64 ghapi/gh_spec.py:8883:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'XKWUE3stvGV1OHsIGiCGfn047Ok6uD4mFkh7BaicaEc=',
    likely benign LLM, confidence 0.92 Base64 SHA-256 hash value in an embedded attestation structure.
    Reasoning

    This is a base64 SHA-256 digest in the same attestation data block. It is a static data constant with no execution path.

  9. info warn → info by review encoding-base64 ghapi/gh_spec.py:8884:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'Tgve40VPFfuei+0nhupdGpfPPR+hPpZjxgTiDT8WNoY=',
    likely benign LLM, confidence 0.92 Base64 SHA-256 hash value in an embedded attestation structure.
    Reasoning

    This is a base64 SHA-256 digest in the same attestation data block. It is a static data constant with no execution path.

  10. info warn → info by review encoding-base64 ghapi/gh_spec.py:8885:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'wV+S/7tLtYGzkLaSb6UDqexNyhMvumHK/RpTNvEZuLU=',
    likely benign LLM, confidence 0.93 Base64-encoded 32-byte value in an embedded GitHub API spec for attestations.
    Reasoning

    The snippet is a 44-byte base64 string ending in '=' inside a large embedded GitHub API spec dict, alongside attestation-related fields. Such values are typically sample hashes or keys in API documentation, not a payload.

  11. info warn → info by review encoding-base64 ghapi/gh_spec.py:8886:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'uwaWufty6sn6XqO1Tb9M3Vz6sBKPu0HT36mStxJNd7s=',
    likely benign LLM, confidence 0.93 Base64-encoded 32-byte example value within the GitHub API spec data.
    Reasoning

    The same pattern as the neighbouring entries: a 32-byte base64 value with padding, in a list of example values inside a generated API spec file. It is data, not executed code.

  12. info warn → info by review encoding-base64 ghapi/gh_spec.py:8887:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'jUfeMOXQP0XF1JAnCEETVbfRKMUwCzrVUzYi8vnDMVs=',
    likely benign LLM, confidence 0.93 Base64 sample value in a list inside the GitHub API spec.
    Reasoning

    A sequence of consecutive 44-character base64 strings with a common layout, consistent with documented sample hashes or public keys in a generated spec file. Nothing in the snippet decodes or executes them.

  13. info warn → info by review encoding-base64 ghapi/gh_spec.py:8888:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'xQKjzJAwwdlQG/YUYBKPXxbCmhMYKo1wnv+6vDuKWhQ=',
    likely benign LLM, confidence 0.93 Base64-encoded digest-like string in the GitHub API spec data.
    Reasoning

    A standard 32-byte base64 digest-like string in a literal list in an API spec module. The context is documentation data for attestation examples, and the snippet shows no decoding or execution.

  14. info warn → info by review encoding-base64 ghapi/gh_spec.py:8889:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'cX3Agx+hP66t1ZLbX/yHbfjU46/3m/VAmWyG/fhxAVc=',
    likely benign LLM, confidence 0.93 Base64-encoded example hash in the GitHub API spec.
    Reasoning

    Another 44-character padded base64 value in a list of example attestation data. High entropy is expected for hashes and keys, and the file is a generated API spec.

  15. info warn → info by review encoding-base64 ghapi/gh_spec.py:8890:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         'sjohk/3DQIfXTgf/5XpwtdF7yNbrf8YykOMHr1CyBYQ=',
    likely benign LLM, confidence 0.93 Base64-encoded example value in the GitHub API spec.
    Reasoning

    A padded 32-byte base64 string in the same literal list of spec examples. It is static data with no decode or execution path visible.

  16. info warn → info by review encoding-base64 ghapi/gh_spec.py:8891:135 new in this release

    base64-like blob (44 bytes, compression ratio 1.25) (raw pass, confidence 0.60)

                                                                                                                                         '98enzMaC+x5oCMvIZQA5z8vu2apDMCFvE/935NfuPw8='],
    likely benign LLM, confidence 0.93 Final base64 example value closing a list in the GitHub API spec.
    Reasoning

    The last entry of the same list of base64 example values in the generated spec. The closing bracket shows it is a plain data literal.

  17. info warn → info by review encoding-base64 ghapi/gh_spec.py:8892:204 new in this release

    base64-like blob (45 bytes, compression ratio 1.24) (raw pass, confidence 0.60)

                                                                                                                              'checkpoint': {'envelope': 'rekor.sigstore.dev - 2605736670972794746\\n93750551\\nKgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60=\\n\\n— rekor.sigstore.dev '
    likely benign LLM, confidence 0.95 Sigstore Rekor checkpoint envelope with a base64 signature in the API spec example.
    Reasoning

    The snippet has a Sigstore/Rekor transparency-log checkpoint envelope with a base64 signature line and a log origin string. This is the documented format for a checkpoint in an attestation example, not obfuscation.

  18. info warn → info by review encoding-base64 ghapi/gh_spec.py:8893:151 new in this release

    base64-like blob (100 bytes, compression ratio 1.11) (raw pass, confidence 0.60)

                                                                                                                                                         'wNI9ajBEAiBkLzdjY8A9HReU7rmtjwZ+JpSuYtEr9SmvSwUIW7FBjgIgKo+vhkW3tqc+gc8fw9gza3xLoncA8a+MTaJYCaLGA9c=\\n'}},
    likely benign LLM, confidence 0.95 Base64 ECDSA signature in an attestation bundle example.
    Reasoning

    The base64 value begins with the DER prefix MEUCI/MEQCI/MFkw-style ECDSA signature structure and is followed by a newline escape and a dict close, consistent with an example Sigstore signature in an attestation bundle.

  19. info warn → info by review encoding-base64 ghapi/gh_spec.py:8899:103 new in this release

    base64-like blob (96 bytes, compression ratio 1.11) (raw pass, confidence 0.60)

                                                                                  'signatures': [{'sig': 'MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ=='}]}}}}},
              'docs_url': 'https://docs.github.com/rest/repos/attestations#create-an-attestation'},
    likely benign LLM, confidence 0.95 Base64 ECDSA signature in an attestation example with a documentation link.
    Reasoning

    A base64 DER-encoded ECDSA signature ('MEQCI...') inside a nested signatures structure with a docs_url pointing to GitHub's attestation documentation. This is documentation example data.

  20. info warn → info by review encoding-base64 ghapi/gh_spec.py:10085:61 new in this release

    base64-like blob (1784 bytes, compression ratio 0.77) (raw pass, confidence 0.60)

                                            'sarif': 'H4sICMLGdF4AA2V4YW1wbGUuc2FyaWYAvVjdbts2FL7PUxDCijaA/CM7iRNfLkPXYgHSNstumlzQ0pHFVCI1korjFgH2ONtr7Ul2KFmy/mOn6QIkjsjDw0/nfN85NL8dEGL9pNwAImqRObECrWM1H40kXQ2XTAfJIlEgXcE1cD10RTQSVDE10K4aKSqZP1AxuKOIKg1ydJU60jSfSh8Hk6EzHA/vlOCWbfa7B6kYPpj90rlsWCZcmbHP5Bs+4oAWIjQD2SMOeJLh2v
    likely benign LLM, confidence 0.96 Gzip-compressed base64 example SARIF document in the GitHub API spec.
    Reasoning

    The value is a gzip-compressed base64 blob ('H4sI' is the gzip header) holding an example SARIF file, stored as an example response in the API spec. Compression is a common way to embed sample payloads, and nothing here decodes or runs it automatically.

  21. info warn → info by review encoding-base64 ghapi/gh_spec.py:11487:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   'iQIzBAABAQAdFiEESn/54jMNIrGSE6Tp6cQjvhfv7nAFAlnT71cACgkQ6cQjvhfv\n'
                                                                   '7nCWwA//XVqBKWO0zF+bZl6pggvky3Oc2j1pNFuRWZ29LXpNuD5WUGXGG209B0hI\n'
    likely benign LLM, confidence 0.85 A base64-encoded line, probably embedded PGP/key material, in the ghapi spec module.
    Reasoning

    Raw-pass base64 match on a 64-character line inside a generated API spec module. The 'iQIzBAABAQAdFiEE' and 'CACgkQ' fragments look like the start of a PGP key or signature packet, which is embedded binary data, not an obfuscated payload. No decode or execution call appears in the snippet, and raw findings carry a high false-positive rate.

  22. info warn → info by review encoding-base64 ghapi/gh_spec.py:11488:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   '7nCWwA//XVqBKWO0zF+bZl6pggvky3Oc2j1pNFuRWZ29LXpNuD5WUGXGG209B0hI\n'
                                                                   'DkmcGk19ZKUTnEUJV2Xd0R7AW01S/YSub7OYcgBkI7qUE13FVHN5ln1KvH2all2n\n'
    likely benign LLM, confidence 0.85 Another base64 line from the same embedded key-like block.
    Reasoning

    Consecutive base64 line in the same embedded block as 11487. It is a plain string literal with no decode or execution, and the block is consistent with an armored key.

  23. info warn → info by review encoding-base64 ghapi/gh_spec.py:11489:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   'DkmcGk19ZKUTnEUJV2Xd0R7AW01S/YSub7OYcgBkI7qUE13FVHN5ln1KvH2all2n\n'
                                                                   '2+JCV1HcJLEoTjqIFZSSu/sMdhkLQ9/NsmMAzpf/iIM0nQOyU4YRex9eD1bYj6nA\n'
    likely benign LLM, confidence 0.85 Base64 continuation line within the embedded key-like data.
    Reasoning

    Same embedded base64 block continuing across lines with no code consuming it. The raw pass flags high-entropy text, which armored key data reliably produces.

  24. info warn → info by review encoding-base64 ghapi/gh_spec.py:11490:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   '2+JCV1HcJLEoTjqIFZSSu/sMdhkLQ9/NsmMAzpf/iIM0nQOyU4YRex9eD1bYj6nA\n'
                                                                   'OQPIDdAuaTQj1gFPHYLzM4zJnCqGdRlg0sOM/zC5apBNzIwlgREatOYQSCfCKV7k\n'
    likely benign LLM, confidence 0.85 Base64 line of embedded key-like data.
    Reasoning

    Same embedded block, with no decode call or execution visible. Consistent with armored cryptographic material in a library data file.

  25. info warn → info by review encoding-base64 ghapi/gh_spec.py:11491:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   'OQPIDdAuaTQj1gFPHYLzM4zJnCqGdRlg0sOM/zC5apBNzIwlgREatOYQSCfCKV7k\n'
                                                                   'nrU34X8b9BzQaUx48Qa+Dmfn5KQ8dl27RNeWAqlkuWyv3pUauH9UeYW+KyuJeMkU\n'
    likely benign LLM, confidence 0.85 Base64 line from the static embedded data block.
    Reasoning

    Continuation of the same base64 literal block. Nothing in the snippet decodes or runs it, and the structure is a static data string.

  26. info warn → info by review encoding-base64 ghapi/gh_spec.py:11492:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   'nrU34X8b9BzQaUx48Qa+Dmfn5KQ8dl27RNeWAqlkuWyv3pUauH9UeYW+KyuJeMkU\n'
                                                                   '+NyHgAsWFaCFl23kCHThbLStMZOYEnGagrd0hnm1TPS4GJkV4wfYMwnI4KuSlHKB\n'
    likely benign LLM, confidence 0.85 Base64 data line in the embedded block.
    Reasoning

    Same static base64 block with no decode or execution path visible. The flag is a raw entropy match on binary-looking data typical of embedded keys.

  27. info warn → info by review encoding-base64 ghapi/gh_spec.py:11493:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   '+NyHgAsWFaCFl23kCHThbLStMZOYEnGagrd0hnm1TPS4GJkV4wfYMwnI4KuSlHKB\n'
                                                                   'jHl3Js9vNzEUQipQJbgCgTiWvRJoK3ENwBTMVkKHaqT4x9U4Jk/XZB6Q8MA09ezJ\n'
    likely benign LLM, confidence 0.85 Base64 line in the static data block.
    Reasoning

    Part of the same consecutive base64 literal. Static data with no consumer in the snippet; the raw-pass signal is weak here.

  28. info warn → info by review encoding-base64 ghapi/gh_spec.py:11494:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   'jHl3Js9vNzEUQipQJbgCgTiWvRJoK3ENwBTMVkKHaqT4x9U4Jk/XZB6Q8MA09ezJ\n'
                                                                   '3QgiTjTAGcum9E9QiJqMYdWQPWkaBIRRz5cET6HPB48YNXAAUsfmuYsGrnVLYbG+\n'
    likely benign LLM, confidence 0.85 Base64 data line within the embedded block.
    Reasoning

    Continuation of the same static base64 literal. No dropper or dynamic execution indicated, and the pattern matches embedded key material.

  29. info warn → info by review encoding-base64 ghapi/gh_spec.py:11495:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   '3QgiTjTAGcum9E9QiJqMYdWQPWkaBIRRz5cET6HPB48YNXAAUsfmuYsGrnVLYbG+\n'
                                                                   'UpC6I97VybYHTy2O9XSGoaLeMI9CsFn38ycAxxbWagk5mhclNTP5mezIq6wKSwmr\n'
    likely benign LLM, confidence 0.85 Base64 line of static embedded data.
    Reasoning

    Same embedded block, with no decode call or execution visible. Consistent with armored key data in a library file.

  30. info warn → info by review encoding-base64 ghapi/gh_spec.py:11496:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   'UpC6I97VybYHTy2O9XSGoaLeMI9CsFn38ycAxxbWagk5mhclNTP5mezIq6wKSwmr\n'
                                                                   'X11FW3n1J23fWZn5HJMBsRnUCgzqzX3871IqLYHqRJ/bpZ4h20RhTyPj5c/z7QXp\n'
    likely benign LLM, confidence 0.85 Base64 data line closing the embedded block.
    Reasoning

    Final visible line of the same static base64 block. No runtime use is shown, and the raw-pass match on random-looking text is expected for armored key material.

  31. info warn → info by review encoding-base64 ghapi/gh_spec.py:11497:65 new in this release

    base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

                                                                   'X11FW3n1J23fWZn5HJMBsRnUCgzqzX3871IqLYHqRJ/bpZ4h20RhTyPj5c/z7QXp\n'
                                                                   'eSakNQMfbbMcljkha+ZMuVQX1K9aRlVqbmv3ZMWh+OijLYVU2bc=\n'
    likely benign LLM, confidence 0.93 A base64-encoded PGP signature embedded as a string literal in the GitHub API spec module.
    Reasoning

    Raw-pass base64 match on a multi-line string that is part of a PGP signature block (the next line shows '-----END PGP SIGNATURE-----'). This is a literal signature in an API spec fixture, not an encoded payload. Raw findings have a high false-positive rate, and this one is a standard data blob.

  32. info warn → info by review encoding-base64 ghapi/gh_spec.py:11498:65 new in this release

    base64-like blob (52 bytes, compression ratio 1.21) (raw pass, confidence 0.60)

                                                                   'eSakNQMfbbMcljkha+ZMuVQX1K9aRlVqbmv3ZMWh+OijLYVU2bc=\n'
                                                                   '=5Io4\n'
                                                                   '-----END PGP SIGNATURE-----\n'}}},
    likely benign LLM, confidence 0.93 Tail of a PGP signature armor block stored as string data in the GitHub API spec file.
    Reasoning

    The same PGP signature block, continuing with the armor checksum line '=5Io4' and the END marker. It is a documentation or example signature in a generated API spec, with no execution or decoding logic nearby in the snippet.

  33. info warn → info by review encoding-base64 ghapi/gh_spec.py:13229:66 new in this release

    base64-like blob (150 bytes, compression ratio 0.93) (raw pass, confidence 0.60)

                                       'oidc_token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlV2R1h4SUhlY0JFc1JCdEttemUxUEhfUERiVSIsImtpZCI6IjUyRjE5N0M0ODFERTcwMTEyQzQ0MUI0QTlCMzdCNTNDN0ZDRjBEQjUifQ.eyJqdGkiOiJhMWIwNGNjNy0zNzZiLTQ1N2QtOTMzNS05NTY5YmVjZDExYTIiLCJzdWIiOiJyZXBvOnBhcGVyLXNwYS9taW55aTplbnZpcm9ubWVudDpQcm9
    likely benign LLM, confidence 0.92 An example OIDC JSON Web Token string literal inside the GitHub API spec.
    Reasoning

    The value is a JWT (header starts 'eyJ0eXAiOiJKV1Qi'), used as an 'oidc_token' example in an API spec. JWTs in example payloads are common, and the string is just data with no decoding or execution in the snippet.

  34. info warn → info by review encoding-base64 ghapi/gh_spec.py:13229:1073 new in this release

    base64-like blob (87 bytes, compression ratio 1.13) (raw pass, confidence 0.60)

    U2LCJleHAiOjE2MzkwMDE3NTYsImlhdCI6MTYzOTAwMTQ1Nn0.VP8WictbQECKozE2SgvKb2FqJ9hisWsoMkYRTqfBrQfZTCXi5IcFEdgDMB2X7a99C2DeUuTvHh9RMKXLL2a0zg3-Sd7YrO7a2ll2kNlnvyIypcN6AeIc7BxHsTTnZN9Ud_xmEsTrSRGOEKmzCFkULQ6N4zlVD0sidypmXlMemmWEcv_ZHqhioEI_VMp5vwXQurketWH7qX4oDgG4okyYtPrv5RQHbfQcVo9izaPJ_jnsDd0CBA0QOx9InjPidtIkMYQLyUgJy33HLJ
    likely benign LLM, confidence 0.92 Remaining JWT segment (payload and signature) of the example OIDC token in the spec data.
    Reasoning

    A continuation of the same JWT example string, with the payload and signature segments in base64url form. This is a sample credential-shaped value in a spec file, not an obfuscated dropper.

  35. info warn → info by review encoding-base64 ghapi/gh_spec.py:13229:1306 new in this release

    base64-like blob (109 bytes, compression ratio 1.01) (raw pass, confidence 0.60)

    _VMp5vwXQurketWH7qX4oDgG4okyYtPrv5RQHbfQcVo9izaPJ_jnsDd0CBA0QOx9InjPidtIkMYQLyUgJy33HLJy86EFNUnAf8UhBQuQi5mAsEpEzBBuKpG3PDiPtYCHOk64JZkZGd5mR888a5sbHRiaF8hm8YA'}}},
    likely benign LLM, confidence 0.92 Final portion of the example JWT signature string embedded in the GitHub API spec dictionary.
    Reasoning

    Another fragment of the same long base64url JWT signature string inside a literal, with a closing quote and brace structure consistent with a dict of example data. No decoding or execution appears in the snippet.

  36. info long-line README.md:196:1

    line length 967 characters (raw pass, confidence 0.50)

    [`ghapi`]https://ghapi.fast.ai/cli.html#ghapi also layers task-level conveniences over the generated endpoints – see the [GhApi details]https://ghapi.fast.ai/core.html page for the full set. Highlights: [`paged`]https://ghapi.fast.ai/page.html#paged/[`pages`]https://ghapi.fast.ai/page.html#pages iterate any l
  37. info critical → info by review dynamic-execution README.md:233:1

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    eval "$(completion-ghapi --install)"
    likely benign LLM, confidence 0.80 README instruction to eval the output of completion-ghapi --install to enable shell completion.
    Reasoning

    The eval wraps output of the package's own completion-install subcommand. This is the common shell-completion setup idiom in CLI tools, and the expression is not an obfuscated payload or a download-and-run chain. It is still dynamic execution, so the confidence is not higher.

  38. info warn → info by review decoder-import-with-exec ghapi/event.py:71:17

    file imports decoder module(s) gzip and calls `exec`/`eval`/`compile` — multi-stage payload shape (ast pass, confidence 0.80)

    
    for o in Event: exec(f'class {snake2camel(o)}Event(GhEvent):pass')
    
    # %% ../nbs/04_event.ipynb #8232d504
    likely benign LLM, confidence 0.80 Dynamically creates GhEvent subclasses by exec-ing a generated class statement for each event name.
    Reasoning

    exec builds event subclasses from a known list of event names via snake2camel. The gzip import is in the same file but the snippet shows no decoding feeding into exec, so the multi-stage payload shape is not present. This is ordinary metaprogramming for generating classes.

  39. info warn → info by review dynamic-attribute ghapi/event.py:85:26

    reach-by-name through `globals` (ast pass, confidence 0.60)

    # %% ../nbs/04_event.ipynb #4de78d50
    def _cast_evt(o): return globals()[o.type](o)
    
    # %% ../nbs/04_event.ipynb #e3e61809
    likely benign LLM, confidence 0.85 Looks up an event class by name from globals() to cast an event object.
    Reasoning

    globals() lookup maps an event type string to a class defined in the same module, which is a standard dispatch pattern. The lookup key comes from the API's own event type field and the target is a module-local class, so there is no sign of an attacker-controlled name reaching a sensitive sink.

  40. info high-complexity ghapi/gh_spec.py:1502:37

    compression ratio 0.869 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'before': 'Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.',
  41. info high-complexity ghapi/gh_spec.py:9572:41

    compression ratio 0.886 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'external_id': "A reference for the run on the integrator's system.",
                             'started_at': 'The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.',
  42. info high-complexity ghapi/gh_spec.py:9574:43

    compression ratio 0.904 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'completed_at': 'The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.',
  43. info high-complexity ghapi/gh_spec.py:9624:43

    compression ratio 0.904 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'completed_at': 'The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.',
  44. info high-complexity ghapi/gh_spec.py:10079:41

    compression ratio 0.874 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'started_at': 'The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.',
  45. info high-complexity ghapi/gh_spec.py:13014:37

    compression ratio 0.915 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'description': 'A description of the milestone.',
                             'due_on': 'The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.'},
  46. info high-complexity ghapi/gh_spec.py:13044:37

    compression ratio 0.915 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'description': 'A description of the milestone.',
                             'due_on': 'The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.'},
  47. info high-complexity ghapi/gh_spec.py:13088:37

    compression ratio 0.869 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'before': 'Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.',
  48. info high-complexity ghapi/gh_spec.py:16210:36

    compression ratio 0.854 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'since': 'Only show repositories updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.',
  49. info high-complexity ghapi/gh_spec.py:16211:37

    compression ratio 0.868 is >2σ above file mean 0.701 (raw pass, confidence 0.50)

                             'before': 'Only show repositories updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.'},
              'docs_url': 'https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user'},
  50. info high-complexity ghapi/gql_spec.py:593:38

    compression ratio 0.870 is >2σ above file mean 0.683 (raw pass, confidence 0.50)

    'Float': {'kind': 'SCALAR', 'desc': 'Represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).'},
  51. info high-complexity ghapi/gql_spec.py:941:349

    compression ratio 0.840 is >2σ above file mean 0.683 (raw pass, confidence 0.50)

    icateOf': {'type': 'IssueOrPullRequest', 'desc': 'The issue or pull request the suggestion proposes marking this issue as a duplicate of. Only set when `stateReason` is `DUPLICATE`.', 'args': {}}, 'rationale': {'type': 'String', 'desc': 'The rationale provided for suggesting this close.', 'args': {}}, 'stateReason': {'
  52. info high-complexity ghapi/gql_spec.py:1773:19706

    compression ratio 0.906 is >2σ above file mean 0.683 (raw pass, confidence 0.50)

    ributionTypes': ['[RepositoryContributionType]', 'If non-null, include only the specified types of contributions. The GitHub.com UI uses [COMMIT, ISSUE, PULL_REQUEST, REPOSITORY]', None], 'after': ['String', 'Returns the elements in the list that come after the specified cursor.', None], 'before': ['String', 'Returns t

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.0.0
git clone https://github.com/fastai/ghapi ghapi && cd ghapi
git checkout 2.1.4
disclude scan --severity info --diff 2.1.3 .