-
Notifications
You must be signed in to change notification settings - Fork 78
/
Copy pathpush.php
30 lines (25 loc) · 1 KB
/
push.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$payload = array();
$repo = git_repository_open(".");
$remote = git_remote_load($repo, "origin");
$remote_callbacks = [
"credentials" => function($url, $username_from_url, $allowed_types, &$payload) {
// NOTE(chobie): you need to build with LibSSH2 when communicating with ssh protocol. */
if ($allowed_types & GIT_CREDTYPE_USERPASS_PLAINTEXT) {
return git_cred_userpass_plaintext_new("chobie", getenv("GITHUB_TOKEN"));
} else {
error_log("not supported allowed types");
}
}];
git_remote_set_callbacks($remote, $remote_callbacks);
if (git_remote_connect($remote, GIT_DIRECTION_PUSH)) {
$push = git_push_new($remote);
git_push_add_refspec($push, "refs/heads/master:refs/heads/master");
git_push_finish($push);
git_push_unpack_ok($push);
git_push_status_foreach($push, function($ref, $name, &$payload){
var_dump($ref, $name, $payload);
}, $payload);
git_push_update_tips($push);
git_remote_disconnect($remote);
}