{"id":13450699,"url":"https://github.com/google/skylark","last_synced_at":"2025-09-28T19:31:01.745Z","repository":{"id":37432022,"uuid":"105541516","full_name":"google/skylark","owner":"google","description":"Skylark in Go: the Skylark configuration language, implemented in Go [MOVED to go.starlark.net]","archived":true,"fork":false,"pushed_at":"2019-03-12T20:37:43.000Z","size":1878,"stargazers_count":1184,"open_issues_count":6,"forks_count":73,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-09-25T07:30:59.639Z","etag":null,"topics":["go","language","python","skylark"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.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":"2017-10-02T14:05:01.000Z","updated_at":"2025-09-20T01:47:42.000Z","dependencies_parsed_at":"2022-08-03T03:15:41.374Z","dependency_job_id":null,"html_url":"https://github.com/google/skylark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/google/skylark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fskylark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fskylark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fskylark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fskylark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/skylark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fskylark/sbom","scorecard":{"id":437920,"data":{"date":"2025-08-11","repo":{"name":"github.com/google/skylark","commit":"a5f7082aabed29c0e429c722292c66ec8ecf9591"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Code-Review","score":6,"reason":"Found 19/30 approved changesets -- score normalized to 6","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":"project is archived","details":["Warn: Repository is archived."],"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":-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":"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":"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":"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" 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":"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/google/.github/SECURITY.md:1","Info: Found linked content: github.com/google/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/google/.github/SECURITY.md:1","Info: Found text in security policy: github.com/google/.github/SECURITY.md:1"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 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-19T05:05:47.945Z","repository_id":37432022,"created_at":"2025-08-19T05:05:47.945Z","updated_at":"2025-08-19T05:05:47.945Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277355943,"owners_count":25804422,"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-09-28T02:00:08.834Z","response_time":79,"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":["go","language","python","skylark"],"created_at":"2024-07-31T07:00:37.423Z","updated_at":"2025-09-28T19:31:01.718Z","avatar_url":"https://github.com/google.png","language":"Go","readme":"\n\u003c!-- This file is the project homepage at github.com/google/skylark --\u003e\n\n# Skylark in Go\n\n**Skylark is now called Starlark.  The project has moved to [go.starlark.net](https://go.starlark.net).**\n\n\nThis is the home of the _Skylark in Go_ project.\nSkylark in Go is an interpreter for Skylark, implemented in Go.\n\nSkylark is a dialect of Python intended for use as a configuration language.\nLike Python, it is an untyped dynamic language with high-level data\ntypes, first-class functions with lexical scope, and garbage collection.\nUnlike CPython, independent Skylark threads execute in parallel, so\nSkylark workloads scale well on parallel machines.\nSkylark is a small and simple language with a familiar and highly\nreadable syntax. You can use it as an expressive notation for\nstructured data, defining functions to eliminate repetition, or you\ncan use it to add scripting capabilities to an existing application.\n\nA Skylark interpreter is typically embedded within a larger\napplication, and the application may define additional domain-specific\nfunctions and data types beyond those provided by the core language.\nFor example, Skylark was originally developed for the\n[Bazel build tool](https://bazel.build).\nBazel uses Skylark as the notation both for its BUILD files (like\nMakefiles, these declare the executables, libraries, and tests in a\ndirectory) and for [its macro\nlanguage](https://docs.bazel.build/versions/master/skylark/language.html),\nthrough which Bazel is extended with custom logic to support new\nlanguages and compilers.\n\n\n## Documentation\n\n* Language definition: [doc/spec.md](doc/spec.md)\n\n* About the Go implementation: [doc/impl.md](doc/impl.md)\n\n* API documentation: [godoc.org/github.com/google/skylark](https://godoc.org/github.com/google/skylark)\n\n* Mailing list: [skylark-go](https://groups.google.com/forum/#!forum/skylark-go)\n\n* Issue tracker: [https://github.com/google/skylark/issues](https://github.com/google/skylark/issues)\n\n* Travis CI: ![Travis CI](https://travis-ci.org/google/skylark.svg) [https://travis-ci.org/google/skylark](https://travis-ci.org/google/skylark)\n\n### Getting started\n\nBuild the code:\n\n```shell\n$ go get github.com/google/skylark/...\n$ go build github.com/google/skylark/cmd/skylark\n```\n\nRun the interpreter:\n\n```\n$ cat coins.sky\ncoins = {\n  'dime': 10,\n  'nickel': 5,\n  'penny': 1,\n  'quarter': 25,\n}\nprint('By name:\\t' + ', '.join(sorted(coins.keys())))\nprint('By value:\\t' + ', '.join(sorted(coins.keys(), key=coins.get)))\n\n$ ./skylark coins.sky\nBy name:\tdime, nickel, penny, quarter\nBy value:\tpenny, nickel, dime, quarter\n```\n\nInteract with the read-eval-print loop (REPL):\n\n```\n$ ./skylark\n\u003e\u003e\u003e def fibonacci(n):\n...    res = list(range(n))\n...    for i in res[2:]:\n...        res[i] = res[i-2] + res[i-1]\n...    return res\n...\n\u003e\u003e\u003e fibonacci(10)\n[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]\n\u003e\u003e\u003e\n```\n\nWhen you have finished, type `Ctrl-D` to close the REPL's input stream. \n\n### Contributing\n\nWe welcome submissions but please let us know what you're working on\nif you want to change or add to the Skylark repository.\n\nBefore undertaking to write something new for the Skylark project,\nplease file an issue or claim an existing issue.\nAll significant changes to the language or to the interpreter's Go\nAPI must be discussed before they can be accepted.\nThis gives all participants a chance to validate the design and to\navoid duplication of effort.\n\nDespite some differences, the Go implementation of Skylark strives to\nmatch the behavior of the Java implementation used by Bazel.\nFor that reason, proposals to change the language itself should\ngenerally be directed to the Bazel team, not to the maintainers of\nthis project.\nOnly once there is consensus that a language change is desirable may\nits Go implementation proceed.\n\nWe use GitHub pull requests for contributions.\n\nPlease complete Google's contributor license agreement (CLA) before\nsending your first change to the project.  If you are the copyright\nholder, you will need to agree to the\n[individual contributor license agreement](https://cla.developers.google.com/about/google-individual),\nwhich can be completed online.\nIf your organization is the copyright holder, the organization will\nneed to agree to the [corporate contributor license agreement](https://cla.developers.google.com/about/google-corporate).\nIf the copyright holder for your contribution has already completed\nthe agreement in connection with another Google open source project,\nit does not need to be completed again.\n\n### Stability\n\nWe reserve the right to make breaking language and API changes at this\nstage in the project, although we will endeavor to keep them to a minimum.\nNow that the project's long-term name (\"Starlark\") has been decided,\nwe plan to copy this repository to github.com/google/starlark and\nchange the canonical import path for all packages to starlark.net/starlark.\nThe current github.com/google/skylark repository will be frozen.\nOnce the Bazel team has finalized the version 1 language specification,\nwe will be more rigorous with interface stability.\n\n### Credits\n\nSkylark was designed and implemented in Java by\nUlf Adams,\nLukács Berki,\nJon Brandvein,\nJohn Field,\nLaurent Le Brun,\nDmitry Lomov,\nDamien Martin-Guillerez,\nVladimir Moskva, and\nFlorian Weikert,\nstanding on the shoulders of the Python community.\nThe Go implementation was written by Alan Donovan and Jay Conrod;\nits scanner was derived from one written by Russ Cox.\n\n### Legal\n\nSkylark in Go is Copyright (c) 2017 The Bazel Authors.\nAll rights reserved.\n\nIt is provided under a 3-clause BSD license:\n[LICENSE](https://github.com/google/skylark/blob/master/LICENSE).\n\nThe name \"Skylark\" is a code name of the Bazel project.\nThe Bazel team plans to rename the language to \"Starlark\" to reflect its\napplicability to projects unrelated to Bazel.\n\nSkylark in Go is not an official Google product.\n","funding_links":[],"categories":["Go (134)","Go","Configuration Management","Repositories","Tooling"],"sub_categories":["Starlark"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fskylark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fskylark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fskylark/lists"}