Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
36 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
1

Публикация кода или его исправление на GitHub через cURL

05.01.2017, 11:53. Показов 1628. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Читаю, значит, документацию об API github, но из всего прочитанного только и понял как создавать болванку для репы, а также как ее удалять. А как отправлять в репу уже готовый к публикации код? Или пропатчить уже существующий? Подскажите, пожалуйста. Я бы мог делать все это через клиент git, но он далеко не на всех тачках развернут, на которых приходится работать, а вот curl в сети есть везде.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2017, 11:53
Ответы с готовыми решениями:

Работа с матрицей через указатели - исправление кода
Взял отсюда код. Как его исправить, чтобы работал? program Project1; const SizeOfReal = 6; ...

Не работает видео если брать его через curl
Доброго дня, есть ссылка: ...

Исправление кода. Функция по нахождение суммы между мин и макс показателями массива. Корректировка кода
Прошу помощи. Написал программку, проблема состоит в функции summ в ней происходит нахождение...

Распаковка кода GitHub
Здравствуйте! Совсем недавно начала заниматься программированием на Java для Android. Тремя...

5
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
09.01.2017, 00:06 2
Шпоргалка:

Bash
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
31
32
33
34
# Создать локальный репозиторий из удаленного
 
rm -rf hello-world
 
git clone [url]https://github.com/dragokas/hello-world[/url]
 
cd hello-world
 
# Если он уже есть можно просто обновить его:
 
cd hello-world
 
git pull origin
 
# Если работали в другой папке, можем скопировать ее целиком в Git проект
# (скопирует содержимое папки c:\temp в текущую папку)
 
cp -r /c/temp/* .
 
# Делаем так, чтобы Git определил, какие файлы были добалены/изменены/удалены:
 
git add *
 
# Выбрать определенную ветвь:
 
git checkout new-file
 
# Коммит текущей папки в выбранную ветвь:
 
git commit -a -m "комментарий к этому обновлению"
 
# Выгрузка на сервер:
 
git push
Пример патча:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
cd c/Users/tfcor/Documents/GitHub
rm -r -f /hello-world
# git clone [email]git@github.com[/email]:dragokas/hello-world
git clone [email]git@github.com:trendmicro/hijackthis.git[/email]
cd hello-world
git checkout devel
git pull
# cp /c/from .
# cp .gitignore . !!!
git add *
git commit -a -m "2.6.2.0"
git push
По curl не подскажу.
0
36 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
09.01.2017, 15:56  [ТС] 3
Я ж по-русски, кажется, написал, что мог бы сделать все через git, на кой мне "шпОргалка", когда мне нужно заливать отдельные комиты в уже существующий хаб с помощью curl. Отсутствие ответа лучше, чем ответ не по теме.
0
36 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
26.03.2017, 09:03  [ТС] 4
Проблема все еще актуальна. Все еще расчитываю на помощь.
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
26.03.2017, 09:55 5
Лучший ответ Сообщение было отмечено NeoMatrix как решение

Решение

Вообще-то git есть и portable, его достаточно закинуть на какой-нибудь USB-носитель. Можно лишь догадываться, что к USB-портам у Вас доступа не имеется, но вот что действительно странно, так это наличие везде в сети curl'а. Еще не встречалось ни одной такой конторы, в которой он бы был везде, на каждом компьютере. Но да лано, ближе к теме.
Если Вы разобрались как создать\удалить "болванку" репозитория, но не указали при этом как происходит авторизация (пара имя пользователя-пароль или токен), со своей стороны расскажу как все это делается через токен. Сам токен, можно получить в настройках профиля; минимум, которым должен обладать токен, - repo, user и delete_repo (последнее для того, чтобы можно было удалить репозиторий также через curl). Далее по тексту . . . заменять на полученный токен.
Создать репозиторий:
Windows Batch file
1
E:\sandbox> echo {"name" : "curl_test"} | curl -H "Authorization: token . . ." _https://api.github.com/user/repos -d @-
Обмен данными происходит в формате JSON, собственно, echo и передает curl'у минимум, достаточный для создания репозитория на github.com (помимо имени можно указать описание ("description") и ряд других параметров - это описано в документации).
Удалить созданный репозиторий можно командой:
Windows Batch file
1
E:\sandbox> curl -H "Authorization: token . . ." _https://api.github.com/repos/username/curl_test -X DELETE
Где username - Ваше имя пользователя на github.com.
Для создания файла в репозитории используется метод PUT, при этом содержание файла передается в виде base64 строки, а вот чем Вы будете конвертировать - это вопрос. В Windows 7 для этого можно использовать certutil, в более ранних - cscript или openssl (последний не является штатным инструментом). После того, как текст файла преобразован в base64, шлем запрос:
Windows Batch file
1
E:\sandbox> echo {"message":"init", "commiter":{"name":"username","email":"test@mail.ru"},"content":"bXkgbmV3IGZpbGUgY29udGVudHM="} | curl -H "Autorization: token . . ." _https://api.github.com/repos/username/curl_test/contents/README.md -X PUT -d @-
При желании можно указать в JSON и ветвь репозитория.
Обновление файла в репозитории также осуществляется методом PUT и выглядит аналогично тому, как файл создается, но при этом также в JSON нужно указать sha-хэш файла, чтобы избежать несоответсвий в исправлении (или лучше сказать, однозначно идентифицировать файл, подлежащий исправлению?!).
Все очень подробно описано здесь, а с детальным описанием ключей curl можно ознакомиться во встроенной справке последнего.
3
36 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
26.03.2017, 10:23  [ТС] 6
greg zakhrov, спасибо что разжевал. Думаю, тему можно помечать как решенную.
0
26.03.2017, 10:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2017, 10:23
Помогаю со студенческими работами здесь

Исправление кода C++
Надо сделать чтоб если в ответе есть одинаковых чисел, написать только один из них #include...

Исправление кода
заполняю массив случайным образом от 0 до 9, провожу сортировку, но что-то с кодом не понятно(...

Исправление кода
Помогите исправить код в c++ Builder 5 Код:...

Исправление кода C++
#include <iostream> #include <fstream> using namespace std; void read(){ int a,n; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru