{"id":13428040,"url":"https://github.com/deivid-rodriguez/pry-byebug","last_synced_at":"2025-10-18T20:02:53.290Z","repository":{"id":41186753,"uuid":"9824738","full_name":"deivid-rodriguez/pry-byebug","owner":"deivid-rodriguez","description":"Step-by-step debugging and stack navigation in Pry","archived":false,"fork":false,"pushed_at":"2025-10-01T20:00:59.000Z","size":543,"stargazers_count":2020,"open_issues_count":48,"forks_count":145,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-10-11T11:23:57.351Z","etag":null,"topics":["debugger","pry","pry-byebug","repl","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deivid-rodriguez.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"liberapay":"pry-byebug","tidelift":"rubygems/pry-byebug"}},"created_at":"2013-05-02T23:30:11.000Z","updated_at":"2025-10-07T00:37:48.000Z","dependencies_parsed_at":"2024-06-18T10:55:56.536Z","dependency_job_id":"6d4282ad-3a3f-43da-9b79-6c1861596977","html_url":"https://github.com/deivid-rodriguez/pry-byebug","commit_stats":{"total_commits":581,"total_committers":37,"mean_commits":"15.702702702702704","dds":0.5387263339070568,"last_synced_commit":"4eb7421103985215d404d42d3ed74cfec15f0102"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/deivid-rodriguez/pry-byebug","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deivid-rodriguez%2Fpry-byebug","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deivid-rodriguez%2Fpry-byebug/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deivid-rodriguez%2Fpry-byebug/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deivid-rodriguez%2Fpry-byebug/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deivid-rodriguez","download_url":"https://codeload.github.com/deivid-rodriguez/pry-byebug/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deivid-rodriguez%2Fpry-byebug/sbom","scorecard":{"id":103702,"data":{"date":"2025-08-11","repo":{"name":"github.com/deivid-rodriguez/pry-byebug","commit":"c9bc2cef278819435e7ec8e45162ecfde05152c5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ubuntu.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":2,"reason":"Found 2/10 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/deivid-rodriguez/pry-byebug/ubuntu.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ubuntu.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/deivid-rodriguez/pry-byebug/ubuntu.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T10:41:42.031Z","repository_id":41186753,"created_at":"2025-08-15T10:41:42.032Z","updated_at":"2025-08-15T10:41:42.032Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279588563,"owners_count":26196112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-18T02:00:06.492Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debugger","pry","pry-byebug","repl","ruby"],"created_at":"2024-07-31T01:00:44.750Z","updated_at":"2025-10-18T20:02:53.254Z","avatar_url":"https://github.com/deivid-rodriguez.png","language":"Ruby","funding_links":["https://liberapay.com/pry-byebug","https://tidelift.com/funding/github/rubygems/pry-byebug","https://tidelift.com/subscription/pkg/rubygems-pry-byebug?utm_source=rubygems-pry-byebug\u0026utm_medium=referral\u0026utm_campaign=readme","https://liberapay.com/pry-byebug/donate","https://tidelift.com/security"],"categories":["Debug","Ruby","调试","Debugging Tools","Uncategorized"],"sub_categories":["Omniauth","Uncategorized"],"readme":"# pry-byebug\n\n[![Version][VersionBadge]][VersionURL]\n[![Build][CIBadge]][CIURL]\n[![Inline docs][InchCIBadge]][InchCIURL]\n\nAdds step-by-step debugging and stack navigation capabilities to [pry] using\n[byebug].\n\nTo use, invoke pry normally. No need to start your script or app differently.\nExecution will stop in the first statement after your `binding.pry`.\n\n```ruby\ndef some_method\n  puts 'Hello World' # Run 'step' in the console to move here\nend\n\nbinding.pry\nsome_method          # Execution will stop here.\nputs 'Goodbye World' # Run 'next' in the console to move here.\n```\n\n## Requirements\n\nMRI 2.4.0 or higher.\n\n## Installation\n\nAdd\n\n```ruby\ngem 'pry-byebug'\n```\n\nto your Gemfile and run\n\n```console\nbundle install\n```\n\nMake sure you include the gem globally or inside the `:test` group if you plan\nto use it to debug your tests!\n\n## Commands\n\n### Step-by-step debugging\n\n**break:** Manage breakpoints.\n\n**step:** Step execution into the next line or method. Takes an optional numeric\nargument to step multiple times.\n\n**next:** Step over to the next line within the same frame. Also takes an\noptional numeric argument to step multiple lines.\n\n**finish:** Execute until current stack frame returns.\n\n**continue:** Continue program execution and end the Pry session.\n\n### Callstack navigation\n\n**backtrace:** Shows the current stack. You can use the numbers on the left\nside with the `frame` command to navigate the stack.\n\n**up:** Moves the stack frame up. Takes an optional numeric argument to move\nmultiple frames.\n\n**down:** Moves the stack frame down. Takes an optional numeric argument to move\nmultiple frames.\n\n**frame:** Moves to a specific frame. Called without arguments will show the\ncurrent frame.\n\n## Matching Byebug Behaviour\n\nIf you're coming from Byebug or from Pry-Byebug versions previous to 3.0, you\nmay be lacking the 'n', 's', 'c' and 'f' aliases for the stepping commands.\nThese aliases were removed by default because they usually conflict with\nscratch variable names. But it's very easy to reenable them if you still want\nthem, just add the following shortcuts to your `~/.pryrc` file:\n\n```ruby\nif defined?(PryByebug)\n  Pry.commands.alias_command 'c', 'continue'\n  Pry.commands.alias_command 's', 'step'\n  Pry.commands.alias_command 'n', 'next'\n  Pry.commands.alias_command 'f', 'finish'\nend\n```\n\nAlso, you might find useful as well the repeat the last command by just hitting\nthe `Enter` key (e.g., with `step` or `next`). To achieve that, add this to\nyour `~/.pryrc` file:\n\n```ruby\n# Hit Enter to repeat last command\nPry::Commands.command /^$/, \"repeat last command\" do\n  pry_instance.run_command Pry.history.to_a.last\nend\n```\n\n## Breakpoints\n\nYou can set and adjust breakpoints directly from a Pry session using the\n`break` command:\n\n**break:** Set a new breakpoint from a line number in the current file, a file\nand line number, or a method. Pass an optional expression to create a\nconditional breakpoint. Edit existing breakpoints via various flags.\n\nExamples:\n\n```ruby\nbreak SomeClass#run            # Break at the start of `SomeClass#run`.\nbreak Foo#bar if baz?          # Break at `Foo#bar` only if `baz?`.\nbreak app/models/user.rb:15    # Break at line 15 in user.rb.\nbreak 14                       # Break at line 14 in the current file.\n\nbreak --condition 4 x \u003e 2      # Change condition on breakpoint #4 to 'x \u003e 2'.\nbreak --condition 3            # Remove the condition on breakpoint #3.\n\nbreak --delete 5               # Delete breakpoint #5.\nbreak --disable-all            # Disable all breakpoints.\n\nbreak                          # List all breakpoints.\nbreak --show 2                 # Show details about breakpoint #2.\n```\n\nType `break --help` from a Pry session to see all available options.\n\n## Alternatives\n\nNote that all of the alternatives here are incompatible with pry-byebug. If\nyour platform is supported by pry-byebug, you should remove any of the gems\nmentioned here if they are present in your Gemfile.\n\n* [pry-debugger]: Provides step-by-step debugging for MRI 1.9.3 or older\n  rubies. If you're still using those and need a step-by-step debugger to help\n  with the upgrade, pry-debugger can be handy.\n\n* [pry-stack_explorer]: Provides stack navigation capabilities for MRI 1.9.3 or\n  older rubies. If you're still using those and need to navigate your stack to\n  help with the upgrade, pry-stack_explorer can be handy.\n\n* [pry-nav]: Provides step-by-step debugging for JRuby.\n\n## Contribute\n\nSee [Getting Started with Development](CONTRIBUTING.md).\n\n## Funding\n\nSubscribe to [Tidelift] to ensure pry-byebug stays actively maintained, and at\nthe same time get licensing assurances and timely security notifications for\nyour open source dependencies.\n\nYou can also help `pry-byebug` by leaving a small (or big) tip through [Liberapay].\n\n[Tidelift]: https://tidelift.com/subscription/pkg/rubygems-pry-byebug?utm_source=rubygems-pry-byebug\u0026utm_medium=referral\u0026utm_campaign=readme\n[Liberapay]: https://liberapay.com/pry-byebug/donate\n\n## Security contact information\n\nPlease use the Tidelift security contact to [report a security vulnerability].\nTidelift will coordinate the fix and disclosure.\n\n[report a security vulnerability]: https://tidelift.com/security\n\n## Credits\n\n* Gopal Patel (@nixme), creator of [pry-debugger], and everybody who contributed\n  to it. pry-byebug is a fork of pry-debugger so it wouldn't exist as it is\n  without those contributions.\n* John Mair (@banister), creator of [pry].\n\nPatches and bug reports are welcome.\n\n[pry]: https://pry.github.io\n[byebug]: https://github.com/deivid-rodriguez/byebug\n[pry-debugger]: https://github.com/nixme/pry-debugger\n[pry-nav]: https://github.com/nixme/pry-nav\n[pry-stack_explorer]: https://github.com/pry/pry-stack_explorer\n\n[VersionBadge]: https://badge.fury.io/rb/pry-byebug.svg\n[VersionURL]: http://badge.fury.io/rb/pry-byebug\n[CIBadge]: https://github.com/deivid-rodriguez/pry-byebug/workflows/ubuntu/badge.svg?branch=master\n[CIURL]: https://github.com/deivid-rodriguez/pry-byebug/actions?query=workflow%3Aubuntu\n[InchCIBadge]: http://inch-ci.org/github/deivid-rodriguez/pry-byebug.svg?branch=master\n[InchCIURL]: http://inch-ci.org/github/deivid-rodriguez/pry-byebug\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeivid-rodriguez%2Fpry-byebug","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeivid-rodriguez%2Fpry-byebug","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeivid-rodriguez%2Fpry-byebug/lists"}