{"action":"created","comment":{"url":"https://api.github.com/repos/Neilpang/acme.sh/pulls/comments/146837067","pull_request_review_id":71837657,"id":146837067,"diff_hunk":"@@ -0,0 +1,200 @@\n+#!/usr/bin/env sh\n+\n+########\n+# This is a custom DNS adapter for the german Schlundtech domain provider.\n+# Use as DNS api with the acme.sh LetsEncrypt script.\n+# See https://github.com/Neilpang/acme.sh for more information.\n+#\n+# Usage: acme.sh --issue --dns dns_schlundtech -d www.domain.com\n+#\n+# Author: Holger Böhnke\n+# Report bugs here: https://github.com/hmb/acme.sh\n+#\n+########\n+\n+########  initialization #######################\n+\n+# set these values, when using the provider the first time\n+#export SLTEC_user=\"0000000\"\n+#export SLTEC_password=\"********************\"\n+\n+# set these values if they differ from the default below\n+#export SLTEC_context=\"10\"\n+#export SLTEC_server=\"https://gateway.schlundtech.de/\"\n+\n+# default values for schlundtech dns requests, if the above not given\n+SLTEC_context_default=\"10\"\n+SLTEC_server_default=\"https://gateway.schlundtech.de/\"\n+\n+########  public functions #####################\n+\n+# Add the txt record before validation.\n+# Usage: dns_schlundtech_add _acme-challenge.www.domain.com \"XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs\"\n+\n+dns_schlundtech_add() {\n+  fulldomain=\"$1\"\n+  txtvalue=\"$2\"\n+\n+  _SLTEC_credentials\n+  if [ \"$?\" -ne 0 ]; then\n+    _err \"Please specify the SchlundTech user and password and try again.\"\n+    return 1\n+  fi\n+\n+  _SLTEC_split_domain \"$fulldomain\"\n+\n+  _info \"Using the schlundtech dns api to set the ${fulldomain} record\"\n+  _debug \"fulldomain: ${fulldomain}\"\n+  _debug \"domain    : ${_SLTEC_domain}\"\n+  _debug \"subdomain : ${_SLTEC_subdomain}\"\n+  _debug \"txtvalue  : ${txtvalue}\"\n+\n+  _SLTEC_init_request_add \"$SLTEC_user\" \"$SLTEC_password\" \"$SLTEC_context\" \"$_SLTEC_domain\" \"$_SLTEC_subdomain\" \"$txtvalue\"\n+  _debug \"xmladd: ${_SLTEC_xmladd}\"\n+\n+  _SLTEC_send_request \"$_SLTEC_xmladd\" \"$SLTEC_server\"\n+  echo \"$_SLTEC_response\" | grep \"<code>S0202</code>\" >/dev/null\n+  _ST_add_result=\"$?\"\n+  _debug \"result: ${_ST_add_result}\"\n+\n+  # returns 0 means success, otherwise error.\n+  return \"$_ST_add_result\"\n+}\n+\n+# Remove the txt record after validation.\n+# Usage: dns_schlundtech_rm _acme-challenge.www.domain.com \"XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs\"\n+\n+dns_schlundtech_rm() {\n+  fulldomain=\"$1\"\n+  txtvalue=\"$2\"\n+\n+  _SLTEC_credentials\n+  if [ \"$?\" -ne 0 ]; then\n+    _err \"Please specify the SchlundTech user and password and try again.\"\n+    return 1\n+  fi\n+\n+  _SLTEC_split_domain \"$fulldomain\"\n+\n+  _info \"Using the schlundtech dns api to remove the ${fulldomain} record\"\n+  _debug \"fulldomain: ${fulldomain}\"\n+  _debug \"txtvalue  : ${txtvalue}\"\n+  _debug \"domain    : ${_SLTEC_domain}\"\n+  _debug \"subdomain : ${_SLTEC_subdomain}\"\n+\n+  _SLTEC_init_request_rm \"$SLTEC_user\" \"$SLTEC_password\" \"$SLTEC_context\" \"$_SLTEC_domain\" \"$_SLTEC_subdomain\" \"$txtvalue\"\n+  _debug \"xmlrm:  ${_SLTEC_xmlrm}\"\n+\n+  _SLTEC_send_request \"$_SLTEC_xmlrm\" \"$SLTEC_server\"\n+  echo \"$_SLTEC_response\" | grep \"<code>S0202</code>\" >/dev/null\n+  _ST_rm_result=\"$?\"\n+  _debug \"result: ${_ST_rm_result}\"\n+\n+  # no return value documented\n+  #return \"$_ST_rm_result\"\n+}\n+\n+####################  private functions below ##################################\n+\n+_SLTEC_credentials() {\n+\n+  if [ -z \"${SLTEC_context}\" ]; then\n+    SLTEC_context=\"${SLTEC_context_default}\"\n+  fi\n+\n+  if [ -z \"${SLTEC_server}\" ]; then\n+    SLTEC_server=\"${SLTEC_server_default}\"\n+  fi\n+\n+  if [ -z \"${SLTEC_user}\" ] || [ -z \"$SLTEC_password\" ] || [ -z \"${SLTEC_context}\" ] || [ -z \"${SLTEC_server}\" ]; then\n+    SLTEC_user=\"\"\n+    SLTEC_password=\"\"\n+    SLTEC_context=\"\"\n+    SLTEC_server=\"\"\n+    return 1\n+  else\n+    _saveaccountconf SLTEC_user \"${SLTEC_user}\"\n+    _saveaccountconf SLTEC_password \"${SLTEC_password}\"\n+    _saveaccountconf SLTEC_context \"${SLTEC_context}\"\n+    _saveaccountconf SLTEC_server \"${SLTEC_server}\"\n+    return 0\n+  fi\n+}\n+\n+_SLTEC_split_domain() {\n+  _ST_split_fulldomain=\"$1\"\n+\n+  _SLTEC_domain=\"$(echo \"$_ST_split_fulldomain\" | sed 's/.*\\.\\([^.]*\\.[^.]*\\)/\\1/')\"","path":"dnsapi/dns_schlundtech.sh","position":127,"original_position":127,"commit_id":"9bc509fe1dcf95ea76ff49189aae567be529291d","original_commit_id":"9bc509fe1dcf95ea76ff49189aae567be529291d","user":{"login":"Neilpang","id":8305679,"avatar_url":"https://avatars2.githubusercontent.com/u/8305679?v=4","gravatar_id":"","url":"https://api.github.com/users/Neilpang","html_url":"https://github.com/Neilpang","followers_url":"https://api.github.com/users/Neilpang/followers","following_url":"https://api.github.com/users/Neilpang/following{/other_user}","gists_url":"https://api.github.com/users/Neilpang/gists{/gist_id}","starred_url":"https://api.github.com/users/Neilpang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Neilpang/subscriptions","organizations_url":"https://api.github.com/users/Neilpang/orgs","repos_url":"https://api.github.com/users/Neilpang/repos","events_url":"https://api.github.com/users/Neilpang/events{/privacy}","received_events_url":"https://api.github.com/users/Neilpang/received_events","type":"User","site_admin":false},"body":"do not just split the domain.\r\nplease use the api of Schlundtech to get a domain list, then check which part is the root zone.\r\n\r\notherwise you will get confused by `example.uk`  and `example.co.uk`","created_at":"2017-10-25T12:17:55Z","updated_at":"2017-10-25T12:17:55Z","html_url":"https://github.com/Neilpang/acme.sh/pull/976#discussion_r146837067","pull_request_url":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/Neilpang/acme.sh/pulls/comments/146837067"},"html":{"href":"https://github.com/Neilpang/acme.sh/pull/976#discussion_r146837067"},"pull_request":{"href":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976"}}},"pull_request":{"url":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976","id":136283808,"html_url":"https://github.com/Neilpang/acme.sh/pull/976","diff_url":"https://github.com/Neilpang/acme.sh/pull/976.diff","patch_url":"https://github.com/Neilpang/acme.sh/pull/976.patch","issue_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/976","number":976,"state":"open","locked":false,"title":"Create a dns api for the german domain registrar Schlund Technologies","user":{"login":"hmb","id":128550,"avatar_url":"https://avatars2.githubusercontent.com/u/128550?v=4","gravatar_id":"","url":"https://api.github.com/users/hmb","html_url":"https://github.com/hmb","followers_url":"https://api.github.com/users/hmb/followers","following_url":"https://api.github.com/users/hmb/following{/other_user}","gists_url":"https://api.github.com/users/hmb/gists{/gist_id}","starred_url":"https://api.github.com/users/hmb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmb/subscriptions","organizations_url":"https://api.github.com/users/hmb/orgs","repos_url":"https://api.github.com/users/hmb/repos","events_url":"https://api.github.com/users/hmb/events{/privacy}","received_events_url":"https://api.github.com/users/hmb/received_events","type":"User","site_admin":false},"body":"The german domain registrar Schlund Technologies provides an XML interface to manipulate their DNS servers. The new dns api file dns_schlundtech.sh provides support for this registrar.\r\nDE: https://www.schlundtech.de/\r\nEN: https://www.schlundtech.com/","created_at":"2017-08-17T15:18:38Z","updated_at":"2017-10-25T12:17:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"14c69f1a290a8a0b1fcd84517cdb9c2eef51018a","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976/commits","review_comments_url":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976/comments","review_comment_url":"https://api.github.com/repos/Neilpang/acme.sh/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/976/comments","statuses_url":"https://api.github.com/repos/Neilpang/acme.sh/statuses/9bc509fe1dcf95ea76ff49189aae567be529291d","head":{"label":"hmb:master","ref":"master","sha":"9bc509fe1dcf95ea76ff49189aae567be529291d","user":{"login":"hmb","id":128550,"avatar_url":"https://avatars2.githubusercontent.com/u/128550?v=4","gravatar_id":"","url":"https://api.github.com/users/hmb","html_url":"https://github.com/hmb","followers_url":"https://api.github.com/users/hmb/followers","following_url":"https://api.github.com/users/hmb/following{/other_user}","gists_url":"https://api.github.com/users/hmb/gists{/gist_id}","starred_url":"https://api.github.com/users/hmb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmb/subscriptions","organizations_url":"https://api.github.com/users/hmb/orgs","repos_url":"https://api.github.com/users/hmb/repos","events_url":"https://api.github.com/users/hmb/events{/privacy}","received_events_url":"https://api.github.com/users/hmb/received_events","type":"User","site_admin":false},"repo":{"id":100110146,"name":"acme.sh","full_name":"hmb/acme.sh","owner":{"login":"hmb","id":128550,"avatar_url":"https://avatars2.githubusercontent.com/u/128550?v=4","gravatar_id":"","url":"https://api.github.com/users/hmb","html_url":"https://github.com/hmb","followers_url":"https://api.github.com/users/hmb/followers","following_url":"https://api.github.com/users/hmb/following{/other_user}","gists_url":"https://api.github.com/users/hmb/gists{/gist_id}","starred_url":"https://api.github.com/users/hmb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmb/subscriptions","organizations_url":"https://api.github.com/users/hmb/orgs","repos_url":"https://api.github.com/users/hmb/repos","events_url":"https://api.github.com/users/hmb/events{/privacy}","received_events_url":"https://api.github.com/users/hmb/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hmb/acme.sh","description":"A pure Unix shell script implementing ACME client protocol","fork":true,"url":"https://api.github.com/repos/hmb/acme.sh","forks_url":"https://api.github.com/repos/hmb/acme.sh/forks","keys_url":"https://api.github.com/repos/hmb/acme.sh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hmb/acme.sh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hmb/acme.sh/teams","hooks_url":"https://api.github.com/repos/hmb/acme.sh/hooks","issue_events_url":"https://api.github.com/repos/hmb/acme.sh/issues/events{/number}","events_url":"https://api.github.com/repos/hmb/acme.sh/events","assignees_url":"https://api.github.com/repos/hmb/acme.sh/assignees{/user}","branches_url":"https://api.github.com/repos/hmb/acme.sh/branches{/branch}","tags_url":"https://api.github.com/repos/hmb/acme.sh/tags","blobs_url":"https://api.github.com/repos/hmb/acme.sh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hmb/acme.sh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hmb/acme.sh/git/refs{/sha}","trees_url":"https://api.github.com/repos/hmb/acme.sh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hmb/acme.sh/statuses/{sha}","languages_url":"https://api.github.com/repos/hmb/acme.sh/languages","stargazers_url":"https://api.github.com/repos/hmb/acme.sh/stargazers","contributors_url":"https://api.github.com/repos/hmb/acme.sh/contributors","subscribers_url":"https://api.github.com/repos/hmb/acme.sh/subscribers","subscription_url":"https://api.github.com/repos/hmb/acme.sh/subscription","commits_url":"https://api.github.com/repos/hmb/acme.sh/commits{/sha}","git_commits_url":"https://api.github.com/repos/hmb/acme.sh/git/commits{/sha}","comments_url":"https://api.github.com/repos/hmb/acme.sh/comments{/number}","issue_comment_url":"https://api.github.com/repos/hmb/acme.sh/issues/comments{/number}","contents_url":"https://api.github.com/repos/hmb/acme.sh/contents/{+path}","compare_url":"https://api.github.com/repos/hmb/acme.sh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hmb/acme.sh/merges","archive_url":"https://api.github.com/repos/hmb/acme.sh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hmb/acme.sh/downloads","issues_url":"https://api.github.com/repos/hmb/acme.sh/issues{/number}","pulls_url":"https://api.github.com/repos/hmb/acme.sh/pulls{/number}","milestones_url":"https://api.github.com/repos/hmb/acme.sh/milestones{/number}","notifications_url":"https://api.github.com/repos/hmb/acme.sh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hmb/acme.sh/labels{/name}","releases_url":"https://api.github.com/repos/hmb/acme.sh/releases{/id}","deployments_url":"https://api.github.com/repos/hmb/acme.sh/deployments","created_at":"2017-08-12T12:12:06Z","updated_at":"2017-08-12T12:12:07Z","pushed_at":"2017-08-22T18:15:22Z","git_url":"git://github.com/hmb/acme.sh.git","ssh_url":"git@github.com:hmb/acme.sh.git","clone_url":"https://github.com/hmb/acme.sh.git","svn_url":"https://github.com/hmb/acme.sh","homepage":"https://acme.sh","size":1813,"stargazers_count":0,"watchers_count":0,"language":"Shell","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Neilpang:dev","ref":"dev","sha":"6a524bff9df8d88c3f8c047a0c329af27f09c1fc","user":{"login":"Neilpang","id":8305679,"avatar_url":"https://avatars2.githubusercontent.com/u/8305679?v=4","gravatar_id":"","url":"https://api.github.com/users/Neilpang","html_url":"https://github.com/Neilpang","followers_url":"https://api.github.com/users/Neilpang/followers","following_url":"https://api.github.com/users/Neilpang/following{/other_user}","gists_url":"https://api.github.com/users/Neilpang/gists{/gist_id}","starred_url":"https://api.github.com/users/Neilpang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Neilpang/subscriptions","organizations_url":"https://api.github.com/users/Neilpang/orgs","repos_url":"https://api.github.com/users/Neilpang/repos","events_url":"https://api.github.com/users/Neilpang/events{/privacy}","received_events_url":"https://api.github.com/users/Neilpang/received_events","type":"User","site_admin":false},"repo":{"id":48610662,"name":"acme.sh","full_name":"Neilpang/acme.sh","owner":{"login":"Neilpang","id":8305679,"avatar_url":"https://avatars2.githubusercontent.com/u/8305679?v=4","gravatar_id":"","url":"https://api.github.com/users/Neilpang","html_url":"https://github.com/Neilpang","followers_url":"https://api.github.com/users/Neilpang/followers","following_url":"https://api.github.com/users/Neilpang/following{/other_user}","gists_url":"https://api.github.com/users/Neilpang/gists{/gist_id}","starred_url":"https://api.github.com/users/Neilpang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Neilpang/subscriptions","organizations_url":"https://api.github.com/users/Neilpang/orgs","repos_url":"https://api.github.com/users/Neilpang/repos","events_url":"https://api.github.com/users/Neilpang/events{/privacy}","received_events_url":"https://api.github.com/users/Neilpang/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Neilpang/acme.sh","description":"A pure Unix shell script implementing ACME client protocol","fork":false,"url":"https://api.github.com/repos/Neilpang/acme.sh","forks_url":"https://api.github.com/repos/Neilpang/acme.sh/forks","keys_url":"https://api.github.com/repos/Neilpang/acme.sh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Neilpang/acme.sh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Neilpang/acme.sh/teams","hooks_url":"https://api.github.com/repos/Neilpang/acme.sh/hooks","issue_events_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/events{/number}","events_url":"https://api.github.com/repos/Neilpang/acme.sh/events","assignees_url":"https://api.github.com/repos/Neilpang/acme.sh/assignees{/user}","branches_url":"https://api.github.com/repos/Neilpang/acme.sh/branches{/branch}","tags_url":"https://api.github.com/repos/Neilpang/acme.sh/tags","blobs_url":"https://api.github.com/repos/Neilpang/acme.sh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Neilpang/acme.sh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Neilpang/acme.sh/git/refs{/sha}","trees_url":"https://api.github.com/repos/Neilpang/acme.sh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Neilpang/acme.sh/statuses/{sha}","languages_url":"https://api.github.com/repos/Neilpang/acme.sh/languages","stargazers_url":"https://api.github.com/repos/Neilpang/acme.sh/stargazers","contributors_url":"https://api.github.com/repos/Neilpang/acme.sh/contributors","subscribers_url":"https://api.github.com/repos/Neilpang/acme.sh/subscribers","subscription_url":"https://api.github.com/repos/Neilpang/acme.sh/subscription","commits_url":"https://api.github.com/repos/Neilpang/acme.sh/commits{/sha}","git_commits_url":"https://api.github.com/repos/Neilpang/acme.sh/git/commits{/sha}","comments_url":"https://api.github.com/repos/Neilpang/acme.sh/comments{/number}","issue_comment_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/comments{/number}","contents_url":"https://api.github.com/repos/Neilpang/acme.sh/contents/{+path}","compare_url":"https://api.github.com/repos/Neilpang/acme.sh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Neilpang/acme.sh/merges","archive_url":"https://api.github.com/repos/Neilpang/acme.sh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Neilpang/acme.sh/downloads","issues_url":"https://api.github.com/repos/Neilpang/acme.sh/issues{/number}","pulls_url":"https://api.github.com/repos/Neilpang/acme.sh/pulls{/number}","milestones_url":"https://api.github.com/repos/Neilpang/acme.sh/milestones{/number}","notifications_url":"https://api.github.com/repos/Neilpang/acme.sh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Neilpang/acme.sh/labels{/name}","releases_url":"https://api.github.com/repos/Neilpang/acme.sh/releases{/id}","deployments_url":"https://api.github.com/repos/Neilpang/acme.sh/deployments","created_at":"2015-12-26T12:56:33Z","updated_at":"2017-10-25T07:13:28Z","pushed_at":"2017-10-23T10:18:44Z","git_url":"git://github.com/Neilpang/acme.sh.git","ssh_url":"git@github.com:Neilpang/acme.sh.git","clone_url":"https://github.com/Neilpang/acme.sh.git","svn_url":"https://github.com/Neilpang/acme.sh","homepage":"https://acme.sh","size":1913,"stargazers_count":4030,"watchers_count":4030,"language":"Shell","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":542,"mirror_url":null,"archived":false,"open_issues_count":91,"forks":542,"open_issues":91,"watchers":4030,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976"},"html":{"href":"https://github.com/Neilpang/acme.sh/pull/976"},"issue":{"href":"https://api.github.com/repos/Neilpang/acme.sh/issues/976"},"comments":{"href":"https://api.github.com/repos/Neilpang/acme.sh/issues/976/comments"},"review_comments":{"href":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976/comments"},"review_comment":{"href":"https://api.github.com/repos/Neilpang/acme.sh/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Neilpang/acme.sh/pulls/976/commits"},"statuses":{"href":"https://api.github.com/repos/Neilpang/acme.sh/statuses/9bc509fe1dcf95ea76ff49189aae567be529291d"}},"author_association":"NONE"}}
{"actor":{"display_login":"Neilpang"}}