{"id":22220835,"url":"https://github.com/nokia/pysros","last_synced_at":"2026-03-12T18:52:06.450Z","repository":{"id":39027970,"uuid":"376739264","full_name":"nokia/pysros","owner":"nokia","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-12T19:25:09.000Z","size":1036,"stargazers_count":50,"open_issues_count":3,"forks_count":20,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-02-13T03:16:10.543Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nokia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"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}},"created_at":"2021-06-14T07:26:35.000Z","updated_at":"2026-02-12T19:25:13.000Z","dependencies_parsed_at":"2024-04-12T00:25:09.594Z","dependency_job_id":"c437bba3-d738-4929-bd5b-cde1747039a0","html_url":"https://github.com/nokia/pysros","commit_stats":{"total_commits":11,"total_committers":3,"mean_commits":"3.6666666666666665","dds":"0.36363636363636365","last_synced_commit":"1d488529118af0c97fc0b0de503ba159ef6f0fbc"},"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/nokia/pysros","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fpysros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fpysros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fpysros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fpysros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nokia","download_url":"https://codeload.github.com/nokia/pysros/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fpysros/sbom","scorecard":{"id":69948,"data":{"date":"2025-08-04","repo":{"name":"github.com/nokia/pysros","commit":"68a8c9fa216daf6a9ff7c4124493207d961e7f1c"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":3.8,"checks":[{"name":"Maintained","score":0,"reason":"1 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/17 approved changesets -- score normalized to 0","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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/publish_pysros_to_pypi.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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"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/publish_pysros_to_pypi.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/nokia/pysros/publish_pysros_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish_pysros_to_pypi.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/nokia/pysros/publish_pysros_to_pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish_pysros_to_pypi.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/nokia/pysros/publish_pysros_to_pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish_pysros_to_pypi.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/nokia/pysros/publish_pysros_to_pypi.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/publish_pysros_to_pypi.yml:17","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/publish_pysros_to_pypi.yml:6"],"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}}]},"last_synced_at":"2025-08-15T03:37:49.211Z","repository_id":39027970,"created_at":"2025-08-15T03:37:49.211Z","updated_at":"2025-08-15T03:37:49.211Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30438660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-12-02T23:10:23.072Z","updated_at":"2026-03-12T18:52:06.433Z","avatar_url":"https://github.com/nokia.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python 3 for Nokia Service Router Operating System (pySROS) #\n\n## Overview ##\n\nThe pySROS libraries provide a model-driven management interface for\nPython developers to integrate with supported Nokia routers\nrunning the Service Router Operating System (SR OS).\n\nThe libraries provide an Application Programming Interface (API) for developers\nto create applications that can interact with Nokia SR OS devices, whether those\napplications are executed from a development machine or directly on the router.\n\nWhen a developer uses only libraries and constructs supported on SR OS, a\nsingle application may be executed from a development machine or ported\ndirectly to an SR OS node where the application is executed.\n\n## Pre-requisites ##\n\nIn order to use the pySROS library the following pre-requisites must be met:\n\n- One or more SR OS node\n    - Running in model-driven mode\n    - Running SR OS 21.7.R1 or greater (to execute applications on the SR OS device)\n    - With NETCONF enabled and accessible by an authorized user (to execute applications\n    remotely)\n- A Python 3 interpreter of version 3.10 or newer when using the pySROS library to\n  execute applications remotely\n\n## License ##\n\nCopyright 2021-2024 Nokia.\n\nThe license is located [here](LICENSE.md).\n\n## Reporting issues ##\n\nIssues, suggestions, and enhancements are welcome.  Please use the Nokia support\nprocess.  Issues raised in GitHub may be considered for inclusion into the project \nby Nokia.  Pull requests are not accepted.\n\n## Installation ##\n\nMultiple installation methods are available:\n\n* [PyPi](#pypi)\n* [Nokia support portal](#nokia-support-portal)\n* [GitHub](#github)\n\nNote: It is recommended to use Python virtual environments where appropriate.\n\n### PyPi ###\n\nThe preferred method of installation of the pySROS libraries is to install\ndirectly from the Python Package index (PyPi) using the ``pip`` tool.\n\nThe pySROS project is [located on PyPi.org](https://pypi.org/project/pysros).\n\nThe libraries can be downloaded and installed by using the following:\n\n```shell\npip install pysros\n```\n\nTo upgrade to the latest release use:\n\n```shell\npip install --upgrade pysros\n```\n\n### Nokia support portal ###\n\n\nThe pySROS libraries are available for [download from the portal](https://customer.nokia.com/support) for registered\ncustomers.\n\nThe obtained file can be unzipped and subsequently installed using:\n\n```shell\npython3 setup.py install\n```\n\n\n\n### GitHub ###\n\n\nThe pySROS libraries are available for\n[download from GitHub](https://github.com/nokia/pysros).\n\nThe obtained file can be installed using:\n\n```shell\ngit clone https://github.com/nokia/pysros\npython3 setup.py install\n```\n\n## Documentation and examples ##\n\nGuidance documentation is available in the SR OS System Management Guide.\n\nAPI documentation is provided in this repository and may be compiled from source\nusing:\n\n```shell\ncd docs\npip3 install -r requirements.txt\nmake html\n```\n\nThe built documentation will be available in the docs/build/html directory.\n\nAlternative formats may be selected after the ``make`` command instead of the ``html`` attribute.  Some of\nthese include:\n\n- singlehtml\n- man\n- text\n\n\n## Further reading and assistance ##\n\n- [Nokia product documentation](https://documentation.nokia.com)\n- [Technical support](https://customer.nokia.com/support/s/)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnokia%2Fpysros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnokia%2Fpysros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnokia%2Fpysros/lists"}