2017-12-06 53 views
0

Namesilo、Letsencrypt、Gitlab APIを使用してSSL証明書を生成および更新するための自動化スクリプトを作成しています。 私はほとんど終わりましたが、GitlabでSSL証明書を更新しようとすると404エラーが発生します。GitLab Pages API 404特定のプロジェクトでエラーが発生しました

私の2つのプロジェクトのうちの1つにのみエラーが発生するというのは奇妙なことです。具体的には、実行されている:

curl --header "Private-Token: XXXXXX" "https://gitlab.com/api/v4/projects/pallavagarwal07%2Fshort-links/pages/domains/pallav.xyz" 

は正常に動作し、プロジェクトshort-linksドメインpallav.xyzの詳細を取得します。

しかし、実行している:

curl --header "Private-Token: XXXXX" "https://gitlab.com/api/v4/projects/pallavagarwal07%2Fpallavagarwal07.gitlab.io/pages/domains/varstack.com" 
を404エラーを返します

。しかし、何それは奇妙になり、私はURLからドメイン名varstack.comを削除する場合に予想されるとして、それは私のドメインのリストを与えることである。

curl --header "Private-Token: XXXXX" "https://gitlab.com/api/v4/projects/pallavagarwal07%2Fpallavagarwal07.gitlab.io/pages/domains" 

リターン:

[{"domain":"varstack.com","url":"https://varstack.com","certificate":....] 
+0

ユーザーの権限を確認できますか?関連している可能性があります – djuarez

+1

@djuarezユーザーはどちらの場合もpallavagarwal07です。私はすべての場合に同じトークンを使用しています。トークンは、最初の特権 "Full Read/Write APIアクセス"を使用して生成されます。 –

答えて

0

私はついにそれを考え出しました(私はまだこれをGitLabのバグとして分類しますが)。

IDはURLエンコードする必要があります。そのため、%2Fでリポジトリ名に/を置き換えました。しかし、文字.は問題ではないはずです(前のURLの-は問題ありません)。しかし、.%2Eに置き換えると、期待される(正しい)結果が得られます。

私はので、これはバグだと思う:この動作は、(文字が許可されている?)文書化されていない

  1. ドメイン名のないURLは、新しいドメインを追加するためのAPI(URLはフォームパラメータであり、URLではなく)も含めて、.のエンコードがなくても問題なく動作します。

TL; DR

使用:

pallavagarwal07%2Fpallavagarwal07%2Egitlab%2Eio 

代わりにURLで

pallavagarwal07%2Fpallavagarwal07.gitlab.io 

のは、それが動作します。

関連する問題