{"id":15685783,"url":"https://github.com/tombuildsstuff/golang-iis","last_synced_at":"2025-05-07T18:02:57.517Z","repository":{"id":142076146,"uuid":"156449278","full_name":"tombuildsstuff/golang-iis","owner":"tombuildsstuff","description":"A library enabling IIS to be managed via Golang","archived":false,"fork":false,"pushed_at":"2022-11-14T07:13:35.000Z","size":35,"stargazers_count":9,"open_issues_count":5,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-20T00:38:21.898Z","etag":null,"topics":["automation","golang","iis","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","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/tombuildsstuff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-11-06T21:19:51.000Z","updated_at":"2023-08-29T10:47:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"4a636dfb-350e-4d74-92c0-0f3289e1a672","html_url":"https://github.com/tombuildsstuff/golang-iis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombuildsstuff%2Fgolang-iis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombuildsstuff%2Fgolang-iis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombuildsstuff%2Fgolang-iis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombuildsstuff%2Fgolang-iis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tombuildsstuff","download_url":"https://codeload.github.com/tombuildsstuff/golang-iis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931480,"owners_count":21827109,"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","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":["automation","golang","iis","windows"],"created_at":"2024-10-03T17:30:46.723Z","updated_at":"2025-05-07T18:02:57.096Z","avatar_url":"https://github.com/tombuildsstuff.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# golang-iis\n\nEnables management of Windows IIS from Golang.\n\n### Why?\n\nGood question. IIS is a bit of a unmanageable beast - this library tries to make it friendlier, for if you were doing something crazy like automating it.\n\n## Requirements\n\n- Go 1.10+ (possibly earlier, but untested)\n- Access to a machine with IIS\n\n### Example Usage\n\n```go\nimport (\n  \"log\"\n\n  \"github.com/tombuildsstuff/golang-iis/iis\"\n)\n\nfunc main() {\n    log.Printf(\"Example app launched..\")\n\n    websiteName := \"my-website\"\n    appPoolName := \"my-app-pool\"\n    physicalPath := \"C:\\\\inetpub\\\\wwwroot\"\n\n    err := run(websiteName, appPoolName, physicalPath)\n    if err != nil {\n        // handle the error better than this\n        panic(err)\n    }\n}\n\nfunc run(websiteName string, appPoolName string, physicalPath string) error {\n    client, err := iis.NewClient()\n    if err != nil {\n        return err\n    }\n\n    log.Printf(\"Creating App Pool %q..\", appPoolName)\n    err = client.AppPools.Create(appPoolName)\n    if err != nil {\n        return fmt.Errorf(\"Error creating App Pool %q: %+v\", appPoolName, err)\n    }\n\n    log.Printf(\"Creating Website %q exists..\", websiteName)\n    err = client.Websites.Create(websiteName, appPoolName, physicalPath)\n    if err != nil {\n        return fmt.Errorf(\"Error creating Website %q: %+v\", websiteName, err)\n    }\n\n    return nil\n}\n```\n\nMore examples can be found in [the `./examples` directory](https://github.com/tombuildsstuff/golang-iis/tree/master/examples) in the root of this repository.\n\n## Running the Tests\n\nIf you're running Windows and have IIS installed, you should be able to run `go test -v ./... -parallel=1` and things should run. This is significantly quicker than provisioning the Virtual Machine since the files don't need to be replicated.\n\nIf you're not running Windows - there's a [HashiCorp Terraform](https://terraform.io) script available which will provision a Windows VM (currently only in Azure, but other providers would be cool) which runs the tests remotely [which can be found here](https://github.com/tombuildsstuff/golang-iis/tree/master/terraform).\n\n## Licence\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftombuildsstuff%2Fgolang-iis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftombuildsstuff%2Fgolang-iis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftombuildsstuff%2Fgolang-iis/lists"}