Saya pindah dari gitlab ke github.
Kami menggunakan https://github.com/python-gitlab/python-gitlab sebagai perpustakaan
Untuk membuat komit untuk banyak file, kami menggunakan persis contoh ini: https://python-gitlab.readthedocs.io/en/stable/gl_objects/commits.html
Saya menemukan create_git_commit akan melakukan hal yang sama di github tetapi kekurangan dokumen.
Bisakah seseorang membantu memberikan contoh pembuatan staf Pohon dll.?
Terima kasih banyak.
nah akhirnya saya akhiri juga dengan proses lengkapnya...semoga nanti bisa di share...
Berikut adalah contoh lengkap yang disarikan dari penggunaan saya yang sebenarnya:
Saya mendapatkan banyak petunjuk dari ini https://github.com/PyGithub/PyGithub/issues/863#issuecomment -517927446
Untuk berkomitmen pada cabang utama
import github
g = github.Github(base_url="https://git.mycompany.com/api/v3",login_or_token="mytoken")
repo = g.get_repo('myorg/myrepo')
# you can read file content into blob, here just use str for example
blob1 = repo.create_git_blob("file-content", "utf-8")
element1 = github.InputGitTreeElement(path="path-in-repo.ext", mode='100644', type='blob', sha=blob1.sha)
blob2 = repo.create_git_blob("file-content2", "utf-8")
element2 = github.InputGitTreeElement(path="folder/path-in-repo.ext", mode='100644', type='blob', sha=blob2.sha)
head_sha = repo.get_branch('master').commit.sha
base_tree = repo.get_git_tree(sha=head_sha)
tree = repo.create_git_tree([element1, element2], base_tree)
parent = repo.get_git_commit(sha=head_sha)
commit = repo.create_git_commit("commit_message", tree, [parent])
master_refs = self.github_repo.get_git_ref('heads/master')
master_ref.edit(sha=commit.sha)
Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Terima kasih atas kontribusi Anda.
Saya ingin melakukan sesuatu yang serupa (yaitu mengkomit banyak file sekaligus), tetapi kali ini di cabang. Di bawah ini adalah kode yang berfungsi (beri tahu saya jika itu dapat dioptimalkan)
import github
g = github.Github("mytoken")
repo = g.get_repo('myorg/myrepo')
blob1 = repo.create_git_blob("file-content", "utf-8")
element1 = github.InputGitTreeElement(path="path-in-repo.ext", mode='100644', type='blob', sha=blob1.sha)
blob2 = repo.create_git_blob("file-content2", "utf-8")
element2 = github.InputGitTreeElement(path="folder/path-in-repo.ext", mode='100644', type='blob', sha=blob2.sha)
head_sha = repo.get_branch('master').commit.sha
# everything above is identical to <strong i="6">@xpdable</strong>
# but here I create the branch
branch = repo.create_git_ref(ref=f"refs/heads/branch-name", sha=head_sha)
branch_sha = repo.get_branch("branch-name").commit.sha
# similar to <strong i="7">@xpdable</strong> but replacing head_sha with branch_sha
base_tree = repo.get_git_tree(sha=branch_sha)
tree = repo.create_git_tree([configuration_element, stats_element], base_tree)
parent = repo.get_git_commit(sha=branch_sha)
commit = repo.create_git_commit("commit_message", tree, [parent])
branch_refs = repo.get_git_ref("heads/branch-name")
branch_refs.edit(sha=commit.sha)
# optional : open a PR with the new branch
repo.create_pull(title="PR title", body="PR body", base="master", head="branch-name")
Adakah saran tentang cara menghapus file sebagai bagian dari beberapa file yang dikomit?
Beberapa posting berbicara tentang membuat pohon baru dengan referensi ke jalur dengan null sha, atau memodifikasi pohon yang ada termasuk. ide tentang perulangan dan menemukan semua referensi ke gumpalan yang dihapus?
Komentar yang paling membantu
Berikut adalah contoh lengkap yang disarikan dari penggunaan saya yang sebenarnya:
Saya mendapatkan banyak petunjuk dari ini https://github.com/PyGithub/PyGithub/issues/863#issuecomment -517927446
Untuk berkomitmen pada cabang utama