プライベート GitLab からファイルにアクセスしたい場合は、以下のアプローチを使用できます:)
URL を作成する:
https://url/api/v4/projects/projectId/repository/files/fileName/raw?ref=master&private_token=Generated_private_token
- url は Gitlab の URL です (例:git.lab.com.)。
- /api/v4/projects は定数です。
- プロジェクト ID は、プロジェクトの projectId です。これは、gitlab のプロジェクト名の下にあります。
- /リポジトリ/ファイル は再び定数です。
- ファイル名 ファイルの名前です。例:sagar.txt
- /raw?ref= は定数であり、ref の値は master またはファイルを取得する任意のブランチにすることができます。マスターからファイルを取得しています。
- Generated_private_token gitlab から生成する必要があります。リンクに記載されている手順に従ってください:プライベート トークンの生成
2018 年 12 月 25 日更新:
巨大なファイルをダウンロードしない限り、これは機能するはずです:
curl -s -H "Private-Token: <token>" "https://gitlab.com/api/v4/projects/<urlencode("gitlab_username/project_name")>/repository/files/<path/to/file>/raw?ref=<branch_name>"
、ファイル /README.md
をダウンロードする実際の例 プライベートリポジトリ https://gitlab.com/divinity76/Yur17
から 、Web ダウンロード URL は https://gitlab.com/divinity76/Yur17/raw/master/README.md?inline=false
です 、は:
curl -s -H "Private-Token: afF2s1xgk6xcwXHy3J4C" "https://gitlab.com/api/v4/projects/divinity76%2Fyur17/repository/files/README%2Emd/raw?ref=master"
gitlab_username/repo_name
の方法に特に注意してください /
のように URL エンコードされている %2F
になりました (ブラウザの JavaScript ターミナルを開いて encodeURIComponent("your_username/repo_name");
と書くことで、ユーザー名とレポ名が URL エンコードされているかを確認できます。 ターミナルで Enter キーを押します。)
Jonathan Hall
に感謝 mg.gitlab.com の @ gitlab、および https://docs.gitlab.com/ee/api/repository_files.html 、および tvl で解決策を見つけてください。
2018 年 12 月 11 日の更新:このメソッドは機能しなくなりました。ログイン ページを表示するだけで、need to log in to continue
というメッセージが表示されます。 、HTTP 200 OK を使用していても (恥を知れ)、理由がわかれば更新されます (@XavierStuvw はセキュリティ上の問題に関連していると主張しています)
@tvl の回答よりもはるかに簡単な方法を見つけました。
最初にここで API アクセスを使用してアクセス トークンを作成します:https://gitlab.com/profile/personal_access_tokens 、次に実行:
wget --header 'PRIVATE-TOKEN: <token>' 'https://gitlab.com/<username>/<repo>/raw/master/path/to/file.ext'
ここで解決策を見つけました。
Chris の貴重な助けを借りて、GitLab サーバーからスクリプト (私の場合は drupal .make ファイル) を実行する方法を次に示します。 (おそらく GitHub で動作しますが、テストはしていません。構文が少し異なる可能性があります)。 (もちろん、これはどのタイプのスクリプトでも機能します)
これは、認証トークンを使用して実行できます。ここに GitLab の API のドキュメントがあり、ここに GitHub の API があります
便宜上、サンプル サーバーとして https://gitlab.com を使用します。
-
https://gitlab.com/profile/account に移動し、「プライベート トークン」を見つけます
-
次に、プロジェクトのリストを印刷して、探しているプロジェクトの ID を見つけます
curl https://gitlab.com/api/v3/projects?private_token=<your_private_token>
または、ブラウザでそこにアクセスします (json ビューアーが大いに役立ちます)
-
次に、このプロジェクトにあるファイルのリストを印刷し、探しているファイルの ID を見つけます
curl https://gitlab.com/api/v3/projects/<project_id>/repository/tree?private_token=<your_private_token>
-
最後にファイルを取得/実行してください!
curl https://gitlab.com/api/v3/projects/<project_id>/repository/raw_blobs/<file_id>?private_token=<your_private_token>
スクリプトを実行したい場合 (drupal .make)
drush make https://gitlab.com/api/v3/projects/<project_id>/repository/raw_blobs/<file_id>?private_token=<your_private_token> <drupal_folder>
(トークン (おそらく SSH) を使用せずに GitLab を Aegir .make プラットフォームと統合するワークフローを探している場合は、スレッドを作成して、ここにリンクを貼り付けてください。)
編集
project_id
なしでファイルを取得できます エンコードされた プロジェクト名。たとえば、my-user-name/my-project
になります:my-user-name%2Fmy-project