Repository#clone_at: unexpected behavior with URL without `.git` ending

オープン
#761 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
git, ruby
領域
tooling

調査の方向性

まず、Rugged::Repository.clone_at を使用して2つのURLで問題を再現し、.git サフィックスがない場合の認証処理を比較します。clone_at のエントリーポイントを追跡して、認証情報が渡されない理由を特定し、その後、.git のないURLが認証パラメーター付きで正常にクローンできることを確認します。

索引モデルが issue の本文から書いたものです。

説明

This problem occurs when authentication parameters are specified in a repository URL.

> url                    = "https://test:token@github.com/company/project.git"
> url_without_git_ending = "https://test:token@github.com/company/project"
>
> Rugged::Repository.clone_at(url_without_git_ending", "/folder", credentials: nil)
Rugged::NetworkError: authentication required but no callback set
	from (irb):11:in `clone_at'
	from (irb):11
	from /usr/bin/irb:11:in `<main>'
> Rugged::Repository.clone_at(url, "/folder", credentials: nil)
=> #<Rugged::Repository:14348060 {path: "/folder"}>

git clone doesn't depend on .git ending.

主要言語
C
スター
2.3k
フォーク
293
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

libgit2/rugged のほかの issue

libgit2/rugged の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。