{"id":23550149,"url":"https://github.com/yashhere/godaddy-gitlab-certs","last_synced_at":"2026-05-01T19:32:04.806Z","repository":{"id":105118964,"uuid":"174665161","full_name":"yashhere/GoDaddy-GitLab-Certs","owner":"yashhere","description":"A set of scripts to automatically update the https certificates of website hosted on GitLab with domain manager as GoDaddy","archived":false,"fork":false,"pushed_at":"2019-03-09T11:08:55.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-15T14:47:46.658Z","etag":null,"topics":["bash","certbot","gitlab-api","godaddy-api","godaddy-dns","golang","letsencrypt"],"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/yashhere.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-09T07:58:16.000Z","updated_at":"2020-05-12T10:34:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"c59a1cf7-9bb5-4e80-ba4a-bdde60981b21","html_url":"https://github.com/yashhere/GoDaddy-GitLab-Certs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yashhere/GoDaddy-GitLab-Certs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashhere%2FGoDaddy-GitLab-Certs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashhere%2FGoDaddy-GitLab-Certs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashhere%2FGoDaddy-GitLab-Certs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashhere%2FGoDaddy-GitLab-Certs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yashhere","download_url":"https://codeload.github.com/yashhere/GoDaddy-GitLab-Certs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashhere%2FGoDaddy-GitLab-Certs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32510649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["bash","certbot","gitlab-api","godaddy-api","godaddy-dns","golang","letsencrypt"],"created_at":"2024-12-26T10:13:38.899Z","updated_at":"2026-05-01T19:32:04.799Z","avatar_url":"https://github.com/yashhere.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoDaddy-GitLab-Certs\n\nA set of scripts to update the HTTPS certificates of my website [https://yashagarwal.in](https://yashagarwal.in) using GoDaddy and GitLab APIs.\n\n[![Build\nStatus](https://travis-ci.org/yashhere/GoDaddy-GitLab-Certs.svg?branch=master)](https://travis-ci.org/yashhere/GoDaddy-GitLab-Certs)\n\n## Usage Instructions\n\nFirst of all, set the four environmental variables `EMAIL_ID`, `GODADDY_KEY`, `GODADDY_SECRET` and `GITLAB_TOKEN` in your shell.\n\nTo generate API keys for GoDaddy, sign into your account and follow the instructions on [this](https://developer.godaddy.com/keys) page.\n\nTo generate personal access token for GitLab API, follow the instructions given [here](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#creating-a-personal-access-token).\n\nTo run these scripts, you will require [Certbot](https://certbot.eff.org/) and [GoLang](https://github.com/golang/go) installed on your machine.\n\nOnce you have finished setting up your system, clone the repository and navigate to it. \n\nIn the file `certbot.sh`, edit the `certbot` command to include your domain names.\n\nIn the subsequent `curl` command in the same file, edit the URL part to include your repository address where your webiste's code sits. Follow the documentation of GitLab Pages Domain API [here](https://docs.gitlab.com/ee/api/pages_domains.html).\n\nNow, in the `auth_hook.sh` file, towards the end, edit the `if` statement to compare the `CERTBOT_DOMAIN` variable to the the domain name, which is the last in the list that you defined in the certbot command above. For example -\n\n```bash\ncertbot --manual \\\n--preferred-challenges dns \\\n--agree-tos \\\n--email \"${EMAIL_ID}\" \\\n--no-eff-email \\\n--expand \\\n--renew-by-default \\\n--manual-public-ip-logging-ok \\\n--noninteractive \\\n--redirect \\\n--config-dir ${DIR}/generated/config \\\n--work-dir ${DIR}/generated/work \\\n--logs-dir ${DIR}/generated/logs \\\n--manual-auth-hook ${DIR}/auth_hook.sh \\\n-d photos.yashagarwal.in \\\n-d yashagarwal.in \\\n-d readings.yashagarwal.in \\ # THIS IS THE LAST DOMAIN DEFINED\ncertonly\n```\n\nSo, in the `auth_hook.sh` file -\n\n```bash\n# Comparing with the last domain\nif [ \"${CERTBOT_DOMAIN}\"  =  \"readings.yashagarwal.in\" ];  then\n\tfor  (( i=0; i\u003c5; i++ ));  do\n\t\tsleep 60s\n\tdone\nfi\n```\n\nDomain registrars require some time to publish the changes in the DNS records. Here I have assumed 15 minutes in case of GoDaddy, and it works fine for me. Change the time limit according to your experience.\n\nAlso update the `key_dir` vairable in the `certbot.sh` file to include your last domain name as explained above. So in the above case, `key_dir` variable will be -\n\n```bash\nkey_dir=\"${DIR}/generated/config/live/readings.yashagarwal.in\"\n```\n\nNow, while you are in the root of the directory, execute the following command - \n```bash\nbash certbot.sh\n```\n\nIf everything works as expected, then you will see following message -\n```text\n...\nCongratulations! Your certificate and chain have been saved at:\n...\n```\n\nThe script will automatically update your https certificate on the GitLab pages also. Your website will reflect the changes in some time.\n\n## Authors\n\n* **Yash Agarwal** - *Initial work* - [Pallav Agarwal](https://github.com/pallavagarwal07) \n\n## License\n\n[![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org) \n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n## Acknowledgments\n\nThis script by [Pallav Agarwal](https://github.com/pallavagarwal07/NamesiloCert) was the initial inspiration for this work. You can observe a lot of similarities in both the codes. Basically, I have just modified his code to work with GoDaddy API.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashhere%2Fgodaddy-gitlab-certs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyashhere%2Fgodaddy-gitlab-certs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashhere%2Fgodaddy-gitlab-certs/lists"}