2017-06-23 10 views
0

私はGitLabを初めて使用し、API呼び出しを使用しており、リポジトリ/プロジェクトファイルとメタデータを取得するための呼び出し方法を混乱させています。次のように私の現在のAPIコールは次のとおりです。上の行の末尾にGitLab API - リポジトリ/プロジェクトファイルとメタデータを取得する方法は?

https://gitlab.com/api/v3/projects?private_token=privateToken 

privateTokenは、私は明らかなセキュリティ上の理由から取り出してきた私のプライベートトークンに置き換えられます。

これは私が持っているすべてのプロジェクトを記述するjsonを返しますが、詳細を掘り下げ、各プロジェクト/リポジトリに格納されているファイルに関する特定の情報を確認したいと思います。私はGitLabと一般的にはAPI呼び出しに新しいですので、私は、この情報を取得するために私の最初のリンクを編集する方法へと混乱しています、しかし

GET /projects/:id/repository/files/:file_path 

:GitLab APIドキュメントのウェブサイトでは、それはこのことを示しています。

理想的には、プロジェクト/リポジトリのファイルとメタデータをPython内でドリルダウンすることができ、上記の最初のリンクを編集する必要はありませんが、可能かどうかはわかりません。 GitLabはどのようにjsonを返すのですか?ハッシュテーブルのハッシュテーブルとして、もしあれば、それをどうやってナビゲートするのですか?

jsonを解析し、それをより深く掘削する方法についての説明は、非常に高く評価されます。

私はPython 3.6.1を使用しています。

ありがとうございます!

+0

回答:さらなるテストの後、私はそれを理解しました。ジェネリックAPIコールを作成した後は、最初のコールから任意のプロジェクトのIDを取得し、 '/ projects'の後に配置してから、必要な情報にルーティングすることができます。 ':file_path'を認識できませんでしたが、他のAPI呼び出しを動作させることができました。 https://gitlab.com/api/v3/projects/id(id number from gitlab)/ repository/tree?private_token = privateToken –

答えて

0

あなたは部分的にコメントにあなた自身の質問に答えました(あなたは答えとして投稿できます)。

:file_pathについては、API for repo filesをご覧ください。

GET /projects/:id/repository/files/:file_path 

カーリング:

curl --request GET --header 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' \ 
'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb?ref=master' 

あなたが使用したいfile_pathを与えられ、その例としてgitlab-CEを服用していない - ファイル"app/models/key.rb"、ありますURLエンコードapp%2Fmodels%2Fkey%2Erb

curl --request GET \ 
'https://gitlab.com/api/v3/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb?ref=master' 

project idは、整数idまたはURL-encoded pathとして指定できます。あなたはまた、既存のAPIのようなpyapi-gitlabを使用して見てみたいことがあり

curl --request GET \ 
'https://gitlab.com/api/v3/projects/gitlab-org%2Fgitlab-ce/repository/files/app%2Fmodels%2Fkey%2Erb?ref=master' 

:としてので、代わりに13083の、プロジェクトの名前空間gitlab-org/gitlab-ce URLエンコードを使用することができます。

関連する問題