{"id":13660211,"url":"https://github.com/xmlsquad/gsheet-to-xml","last_synced_at":"2026-02-18T23:35:55.718Z","repository":{"id":57084697,"uuid":"135239847","full_name":"xmlsquad/gsheet-to-xml","owner":"xmlsquad","description":"Given the url of a Google Sheet, this Symfony Console command fetches the Google Sheet and outputs it in the form of Xml.","archived":false,"fork":false,"pushed_at":"2019-12-04T08:48:25.000Z","size":146,"stargazers_count":3,"open_issues_count":9,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-01T13:02:37.829Z","etag":null,"topics":["google-drive-entity","google-sheets","recurse","xml","xml-representation"],"latest_commit_sha":null,"homepage":null,"language":"PHP","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/xmlsquad.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":"2018-05-29T04:09:42.000Z","updated_at":"2024-09-25T05:14:32.000Z","dependencies_parsed_at":"2022-08-24T22:50:44.706Z","dependency_job_id":null,"html_url":"https://github.com/xmlsquad/gsheet-to-xml","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/xmlsquad/gsheet-to-xml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlsquad%2Fgsheet-to-xml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlsquad%2Fgsheet-to-xml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlsquad%2Fgsheet-to-xml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlsquad%2Fgsheet-to-xml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xmlsquad","download_url":"https://codeload.github.com/xmlsquad/gsheet-to-xml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlsquad%2Fgsheet-to-xml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29598354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T22:25:43.180Z","status":"ssl_error","status_checked_at":"2026-02-18T22:25:42.766Z","response_time":162,"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":["google-drive-entity","google-sheets","recurse","xml","xml-representation"],"created_at":"2024-08-02T05:01:18.577Z","updated_at":"2026-02-18T23:35:55.700Z","avatar_url":"https://github.com/xmlsquad.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"# sheet-to-xml\n\nSymfony Console command that, given the URL of a (specifically structured) Google Sheet or Google Drive folder of sheets, outputs the contents (perhaps in multiple tabs) in the form of Xml.\n\nDesigned be used in the context of the Symfony Console application at https://github.com/xmlsquad/xml-authoring-tools which, in turn, is used in the context of a known directory structure which is based on [xml-authoring-project](https://github.com/xmlsquad/xml-authoring-project).\n\n# Documentation\n\nSee: https://github.com/xmlsquad/gsheet-to-xml/blob/master/DOCUMENTATION.md\n\n# Original Specification:\n\n## Schema descriptions\n\nI have published\n\n* a [schema defining how the Google Sheets map to Xml](https://docs.google.com/spreadsheets/d/1ooblH26ti5CyEJvJsLygXUJVnBvT1h6DUf67gCkrbZE/edit?usp=sharing).\n* an example [Inventory sheet](https://docs.google.com/spreadsheets/d/1kU_R8RokoMy9qvJqxy72H58cS48EVs0zRJXcgTZ5YFI/edit?usp=sharing).\n* an example [Xml representation of Inventory data](https://github.com/xmlsquad/xml-authoring-project/blob/master/src/Inventory/Inventory.xml).\n* some of the [rules that define the valid structure of an Inventory sheet](https://github.com/john-arcus/GasInventoryValidator/blob/master/features/ValidateUploadedInventoryFiles.feature).\n\n## Naming convention. \n\nGiven a Google Sheet, unless the sheet's name implies it is 'ignored', it is assumed that its structure is valid structure of an Inventory sheet.\nGiven a Google Drive folder, it is assumed that any Google Sheets found within have the valid structure of an Inventory sheet (unless the sheet's name implies it is 'ignored').\n\nA Google sheet's with a trailing underscore in their name imply that it should be 'ignored'. \nA Google sheet tab's with a trailing underscore in their name imply that it should be 'ignored'.\n\nIf a file is called `foo`, then it is validated as normal.\nIf a file is called `foo_`, then it is assumed to be 'private' and should be explicitly ignored, but it should be noted (in any feedback) that it was ignored.\nIf a Google Sheet's tab is named `foo`, then it is validated as normal.\nIf a Google Sheet's tab is named `foo_`, then it is assumed to be 'private' and should be explicitly ignored, but it should be noted  (in any feedback) that it was ignored.\n\n\n## Input\n\n- driveUrl: The URL of the Google Drive entity (Google Sheet or Google Drive folder).\n\n- is-recursive: if the Google Drive entity is a Google Drive folder, this option specifies whether or not to recurse through sub-directories to find sheets.\n\n\n## Behaviour\n\nIf the `driveUrl` is a Google Sheet write out the contents as Xml.\nIf it is a Google Drive find all Google Sheets within the directory (recursively, if specified) and write out the contents as Xml.\n\n## Output\n\nSTD_OUT\n\nStreamed output. \n\nXml representation of the Inventory data in the Google Sheet.  \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmlsquad%2Fgsheet-to-xml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxmlsquad%2Fgsheet-to-xml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmlsquad%2Fgsheet-to-xml/lists"}