{"id":43644479,"url":"https://github.com/chiradeep/go-nitro","last_synced_at":"2026-02-04T18:30:28.133Z","repository":{"id":51160974,"uuid":"72249442","full_name":"chiradeep/go-nitro","owner":"chiradeep","description":"A Golang client to the Citrix ADC API","archived":false,"fork":false,"pushed_at":"2021-07-18T23:30:43.000Z","size":1951,"stargazers_count":18,"open_issues_count":1,"forks_count":21,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-06-18T18:52:36.843Z","etag":null,"topics":["citrix","citrix-adc","citrix-api","citrix-netscaler","golang","netscaler","nitro","sdk"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chiradeep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-28T23:11:06.000Z","updated_at":"2021-07-26T15:25:59.000Z","dependencies_parsed_at":"2022-08-28T17:01:31.977Z","dependency_job_id":null,"html_url":"https://github.com/chiradeep/go-nitro","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/chiradeep/go-nitro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiradeep%2Fgo-nitro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiradeep%2Fgo-nitro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiradeep%2Fgo-nitro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiradeep%2Fgo-nitro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chiradeep","download_url":"https://codeload.github.com/chiradeep/go-nitro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiradeep%2Fgo-nitro/sbom","scorecard":{"id":278122,"data":{"date":"2025-08-11","repo":{"name":"github.com/chiradeep/go-nitro","commit":"c3c38b448c27704bad6c085d5dfa14b8f1886d37"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"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":"Code-Review","score":0,"reason":"Found 1/14 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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: 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":"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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 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"}},{"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"}}]},"last_synced_at":"2025-08-17T15:02:19.425Z","repository_id":51160974,"created_at":"2025-08-17T15:02:19.425Z","updated_at":"2025-08-17T15:02:19.425Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29092965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["citrix","citrix-adc","citrix-api","citrix-netscaler","golang","netscaler","nitro","sdk"],"created_at":"2026-02-04T18:30:27.183Z","updated_at":"2026-02-04T18:30:28.128Z","avatar_url":"https://github.com/chiradeep.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go client for configuring Citrix ADC\n\n## About\nThe [NITRO](https://developer-docs.citrix.com/projects/citrix-adc-nitro-api-reference/en/12.1/) API is the REST-like API to the Citrix ADC (aka NetScaler). This project provides a Golang SDK that can be used to make configuration API calls to a Citrix ADC.\n\n## Deprecation Notice\nThe project has an official home at https://github.com/citrix/adc-nitro-go where updates will continue.\nThere will be no more updates to this repo.\n\n## Versioning\n\nThe repository uses tags to identify which version of the NITRO API is used to generate the config packages.\n\nThe version scheme follows that of Citrix ADC versioning.\n\nFor example the tag v12.1.50.12 signifies that the [jsonconfig](./jsonconfig) files and the generated [config](./config) files\nare taken from the same Citrix ADC version. In this instance it is Citrix ADC version 12.1 build 50.12 .\n\nYou can checkout a specific tag or download the corresponding release if you would like to use some \nversion of the API other than the one pointed to by the master branch.\n\n## Usage\nImport the SDK from github.com/chiradeep/go-nitro/netscaler. Config objects are available at github.com/chiradeep/go-nitro/config.\nInstantiate a client using `NewNitroClient`. To initialize the client from environment variables:\n\n```\nexport NS_URL=http://\u003cip-address\u003e\nexport NS_LOGIN=\u003cnetscaler-username\u003e\nexport NS_PASSWORD=\u003cnetscaler-password\u003e\n```\n\nConfig object types can be passed in as strings (\"lbvserver\"), or looked up from `netscaler.\u003cconfig object type\u003e.Type()`\nThe general pattern for NetScaler config objects is some combination of  `AddResource`, `UpdateResource`, `BindResource`, `UnbindResource` and `DeleteResource`. See the [NITRO REST docs](https://docs.citrix.com/en-us/netscaler/11-1/nitro-api/nitro-rest/nitro-rest-general.html) for more information.\n\n## Example\n\n```\npackage main\n\nimport (\n        \"github.com/chiradeep/go-nitro/config/lb\"\n        \"github.com/chiradeep/go-nitro/netscaler\"\n)\n\nfunction main() {\n        client, _ := netscaler.NewNitroClientFromEnv()\n        lb1 := lb.Lbvserver{\n                Name:        \"sample_lb\",\n                Ipv46:       \"10.71.136.50\",\n                Lbmethod:    \"ROUNDROBIN\",\n                Servicetype: \"HTTP\",\n                Port:        8000,\n        }\n        result, err := client.AddResource(netscaler.Lbvserver.Type(), \"sample_lb\", \u0026lb1)\n        if err == nil {\n            client.SaveConfig()\n        }\n}\n\n```\n\n## Building\nThe `structs` for the config objects under `config/` used to be generated from JSON declarations in `jsonconfig`. The JSON itself is generated by reverse engineering the official NITRO Java SDK (see [https://github.com/chiradeep/json-nitro](https://github.com/chiradeep/json-nitro)).  From 13.0, the go structs are generated and checked in directly to the repository. From 13.0-76.31 the `stats` directory contain the structs for the stats API.\n\n### Unit Tests\nThe unit tests are invoked with `make unit`. Note that they are actually functional tests and need a running NetScaler. The tests also need the environment variables `NS_URL`, `NS_LOGIN` and `NS_PASSWORD` to be set.\n\n### Using HTTPS\nIf you specify `https` in the URL then the client will use HTTPS. By default it will verify the presented certificate. If you want to use the default or self-signed certificates without verification, specify `sslVerify=false` in the constructor `NewNitroClientFromParams` or set the environment variable `NS_SSLVERIFY` to `false` and use the `NewNitroClientFromEnv` constructor\n\n## TODO\nSome [REST operations](https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/performing-netscaler-resource-operations/) are not yet supported:\n\n* Pagination \u0026 filtering\n* Count \n* Unset\n* Rename\n* SSL Certificate operations:\n  * Link/Unlink\n  * Import \n\n`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiradeep%2Fgo-nitro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchiradeep%2Fgo-nitro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiradeep%2Fgo-nitro/lists"}