- Add GitHub Login to an Android App
- adriantache/GitHubExplorer
- Explore repositories and download files. Contribute to adriantache/GitHubExplorer development by creating an account on…
- GitHub API v3
- Get started with one of our guides, or jump straight into the API documentation.
- Getting Public Repos
- Getting Private Repos (Basic Authentication)
- Getting Private Repos (Two Factor Authentication — OAuth2 Token)
- How to link Android Studio with Github
- Легкое управление системой контроря версиями Git в Android Studio
- Предпосылки
- 1. Создайте проект Android Studio
- 2. Интеграция Git
- 3. Интеграция с GitHub или Bitbucket
- 4. Окно контроля версий
- Вкладка The Local Changes
- Вкладка The Console
- Вкладка Log
- 5. Выполнение фиксации
- Просмотр журнала фиксаций
- 6. Создание ветки Git
- 7. Слияние веток Git
- Слияние, проверка, удаление, сравнение, переименование ветви
- 8. Пуш в удаленный репозиторий
- 9. Вытягивание из удаленного хранилища
- Заключение
Add GitHub Login to an Android App
Or how I figured out dealing with incomplete documentation
I’m currently searching for a job as a Mobile Developer in the Geneva area so I’m applying to all sorts of positions and companies. One of them asked me to make a simple app that can browse a user’s repositories on GitHub, including authentication so you can see your own private repos (did you know we now have unlimited private repos for free on GitHub!). Here’s the finished code if you just want to have a look, but otherwise read on to see the necessary steps:
adriantache/GitHubExplorer
Explore repositories and download files. Contribute to adriantache/GitHubExplorer development by creating an account on…
I have to preface this by saying that before this assignment I really had no idea how to use OAuth and I’ve only sent simple GET requests to APIs. I’m sure that for some people this article is just a whole lot of duh! but for me it was a learning experience and so I wanted to share it.
The first thing I did to start this app was, of course, to consult the GitHub API documentation:
GitHub API v3
Get started with one of our guides, or jump straight into the API documentation.
The documentation exposes two main endpoints to get a list of repos:
So let’s start with the simple use case:
Getting Public Repos
This is as easy as making a get request to the API and decoding the response. I’ve used OKHTTP inside an AsyncTask to make the request and then I simply decode it into an ArrayList of repo names (code is shortened and simplified):
Getting Private Repos (Basic Authentication)
In order to get private repos we have to log in, of course. And this is where the confusion started for me. The documentation talks a lot about OAuth2 and tokens and secrets and the only examples they give are using curl . So I started searching the documentation and then online and lo and behold, Basic Authentication is a technical term! To summarize, basic authentication is essentially sending an Authorization header which contains the string Basic followed by a base64 encode of
So here’s how the code changes:
As you can see, not much changes, we simply change the endpoint and add that authorization header.
Getting Private Repos (Two Factor Authentication — OAuth2 Token)
This is where things get a bit more complex. The process itself isn’t too complicated once you understand how it works, which is like this: if 2FA is active, when you try to log in using basic authentication the API returns a 401 response and the error message Must specify two-factor authentication OTP code. At that point, if SMS 2FA is active, the platform should send out a OTP SMS to the user containing the code. Please note, however, that SMS 2FA for GitHub is finicky and might not work at all in some countries!
So to detect that we add the following in our try block in doInBackground :
Since we’ve returned this we ask the user for their 2FA password. Technically speaking that’s all we need to access their repos list, but if we want to do more than that we need to acquire an authorization token from GitHub. For this, we need to send a login request to the authorizations endpoint:
In order to request an authorization we must send a POST request in which we specify as JSON a title for the authorization. I found the easiest way to do this without using a try/catch block is by creating the JSON object from a HashMap. So we add this to the doInBackground method of the AsyncTask:
If the authentication is successful, the API will reply with a JSON containing a token field with our authentication token. I have made a method to extract it and save it to SharedPreferences for easy access:
Afterwards, we can login as we do with Basic Authentication, the only difference being that instead of sending a header that contains:
we send one that contains “token” instead of “Basic”, followed by the token of our authorization:
And since I’m saving the token as SharedPreferences, we can easily check if we have a token for a certain username by using contains :
And that’s it, we now have full access to the GitHub API! If you have any questions make sure to have a look at the full code on my GitHub page using the link at the top of the article or just leave a comment below!
Thanks for reading this article. You can connect with me on LinkedIn.
I’m currently looking for a job in the Geneva area , Switzerland, so please contact me if you know someone in need of a Mobile Developer with Java/Kotlin (Android) and JavaScript (React Native Android/iOS) experience.
If you liked this article, please hit the clap icon 👏 to show your support.
Источник
How to link Android Studio with Github
This article is for github beginners or for those who find it difficult to upload android projects on github.
Visit this official site to download git on your computer. Once you do that, you can start using it with android studio.
2. Enable Version Control Integration on android studio
> On doing this,you will notice that all your files will turn red.
Now ,go to VCS>Import into Version Control>Share project on Github
Now give a name to your repository and write a description if you want.
4. Push your project files on Github
Now select the files you want to share and press Ok . You can also write a specific commit message and after you do so,all your files will turn white.
Your project is now under version control and shared on Github ,you can start making changes to commit and push. You can see I added a new ImageView reference to the MainActivity.java . Notice that after I made the change, the MainActivity.java file turned blue. That means the file now has uncommitted changes (and it doesn’t match the file in the Github repository).
Its upto you now when you want to do commit and push. You can do it after every new change or after a lot of changes.
To commit and push,go to Menu>VCS(with green up arrow)
After that,you will see a commit changes window and you have to write a commit message (mandatory) and then press on commit and push.
After that,you will see another push window. Just press on push button and all your changes will be reflected in you repository.
Congratulations on setting up your first project with version control . Yayyyyy.
I am a recipitentof Udacity’s Google India challenge scholarship and I wrote this article to help my peers. Do clap if you find this useful.
Источник
Легкое управление системой контроря версиями Git в Android Studio
Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)
Как вы знаете, лучше всего использовать управление исходными кодами (SCM) для ваших проектов — даже для личных проектов. Знаете ли вы, что Android Studio имеет удивительную интеграцию с Git для управления исходным кодом? Если вы не знали или не имеете опыта использования, продолжайте читать эту статью. Даже если вы уже использовали интеграцию с Git для Android Studio, вы все равно можете найти некоторые полезные трюки.
Я расскажу вам о многих функциях поддержки Git в Android Studio, а также о том, как легко выполнять различные операции Git (commit, push, pull, branch и т.д.) изнутри Android Studio.
В этом уроке я расскажу вам список функций SCM, доступных в Android Studio. Мы рассмотрим следующие области:
- интеграция нового проекта Android Studio с Git
- работа с GitHub или Bitbucket
- Изучение окна Version Control
- коммиты
- ветви
- пушинг и пулинг из удаленного хранилища
Предпосылки
Чтобы иметь возможность следовать этому руководству, вам понадобятся:
1. Создайте проект Android Studio
Запустите Android Studio и создайте новый проект (вы можете назвать его GitApplicationDemo ) пустым действием MainActivity .
2. Интеграция Git
После того, как был настроен проект Android Studio, щелкните меню VCS, наведите указатель мыши на меню Import in Version Control и выберите Create Git Repository .
Затем выберите главную родительскую папку вашего Android Studio Project.
Нажмите кнопку OK, чтобы инициализировать проект с помощью Git. Под капотом Android Studio выполняет команду Git:
В качестве напоминания, вот что будет делать эта команда:
Эта команда создает пустой репозиторий Git — в основном каталог .git с подкаталогами для objects , refs/head , refs/tags и файлы шаблонов. Также создается начальный файл HEAD , который ссылается на HEAD ведущей ветки.
Появится диалоговое окно с информацией:
Это говорит нам о файле с именем vcs.xml внутри папки .idea. Эта папка содержит только определенные для проекта настройки. Обратите внимание, что это формат, используемый всеми последними версиями IntelliJ IDEA.
В идеале файлы в папке .idea/ не должны доходить до Git, поэтому вы должны добавить ее в .gitignore .
По умолчанию мы переключились на главную ветку. Вы всегда можете просмотреть текущую ветку своего проекта в нижнем правом углу Android Studio.
3. Интеграция с GitHub или Bitbucket
Вы можете легко работать в любом из репозиториев исходного кода Android, который находится в учетной записи GitHub или Bitbucket в Android Studio. Позвольте мне показать вам, как это сделать.
Перейдите в File> New> Project из Control Version> GitHub.
(Если вы хотите работать с репо из Bitbucket, выберите Bitbucket вместо этого. Если вы хотите просто клонировать Git repo из Интернета на свой локальный компьютер, выберите опцию Git.)
Затем введите учетные данные учетной записи GitHub и нажмите «Login».
Если вход был успешным, появится диалоговое окно Clone Repository. В этом диалоговом окне отображается раскрывающийся список, содержащий список репозиториев в GitHub, который вы сейчас используете или над которым работает.
Нажмите «Clone», чтобы клонировать репо на локальный компьютер в уже выбранном родительском каталоге.
4. Окно контроля версий
После успешного запуска нашего проекта Android Studio с помощью Git, Android Studio отобразит окно Version Control. Перейдите на вкладку Version Control (в левом нижнем углу Android Studio), и давайте посмотрим, что у нас есть. Обратите внимание, что вы можете использовать Alt-9, чтобы быстро открыть это окно.
Внутри этого окна у нас есть три разных вкладки: Local Changes, Console, и Log.
Вкладка The Local Changes
Это показывает список файлов, которые были изменены локально (на вашем собственном компьютере) и еще не зафиксированы в репозитории.
Давайте посмотрим на панели инструментов элемента, доступные, когда вы находитесь на вкладке Local Changes.
- Нажмите этот значок, чтобы обновить статус ваших файлов на текущем рабочем месте. Горячая клавиша — Control-F5.
- Этот значок при нажатии будет фиксировать текущие изменения. Горячая клавиша — Control-Alt-Z.
- Нажмите этот значок, чтобы отменить все выбранные изменения.
- Нажмите этот значок, чтобы создать новый список изменений. Обратите внимание, что список изменений — это набор изменений в файлах, которые представляют собой логическое изменение исходного кода. Горячая клавиша — Alt-Insert.
- Нажмите эту кнопку, чтобы удалить выбранный список изменений.
- Чтобы сделать список изменений активным, просто нажмите этот значок.
- Чтобы переместить выбранный файл в другой список изменений, щелкните этот значок.
- Нажмите этот значок, чтобы открыть его, чтобы просмотреть все файлы.
- Нажмите этот значок, чтобы свернуть все файлы.
- Нажмите этот значок, чтобы отобразить измененные файлы, сгруппированные по папкам.
- Нажмите этот значок, чтобы скопировать путь к выбранному файлу в буфер обмена системы.
- Щелкните этот значок, чтобы отобразить узел игнорируемых файлов, список существующих файлов, игнорируемых Git.
- Нажмите этот значок, чтобы настроить список файлов, которые Git игнорирует.
- Нажмите этот значок, чтобы открыть панель Preview Diff, чтобы сравнить текущий файл с последней совершенной версией.
Вкладка The Console
Внутри этой вкладки мы видим результат выполнения команд, связанных с Git. Обратите внимание, что вы не можете писать команды Git внутри этой вкладки — сделайте это в окне терминала в Android Studio.
Вкладка Log
На этой вкладке отображаются все изменения, которые были зафиксированы во всех ветвях локального и удаленного репозитория. Внутри этой вкладки вы можете просматривать фиксации в любой ветке.
Поле поиска используется для поиска коммитов, которые имеют введенную строку или регулярное выражение.
- Это выпадающее меню, которое используется для фильтрации, фиксируется веткой. Чтобы просмотреть все локальные и удаленные коммиты, просто выберите All (по умолчанию).
- Чтобы фильтровать фиксацию автором, используйте этот раскрывающийся список. Вам нужно будет ввести имя автора, чтобы просмотреть свои коммиты. Выберите All, чтобы просмотреть коммиты всех пользователей.
- Используйте это раскрывающееся меню для фильтрации фиксации по временному диапазону или определенной дате. Чтобы уточнить дату, просто нажмите Select и выберите дату. Выберите All, чтобы просмотреть фиксации, сделанные во все даты.
- Используйте это раскрывающееся меню для фильтрации коммитов по пути измененных файлов.
- Эта кнопка (IntelliSort) позволяет более удобный способ видеть слияния, сначала отображая входящие коммиты, непосредственно под фиксацией слияния.
- Если эта кнопка включена, длинные ветви отображаются полностью, даже если в них нет коммитов.
- Используйте эту кнопку, чтобы обновить список коммитов в проекте.
- Чтобы перейти к хэшу, тегу или ветви, просто используйте эту кнопку.
- Нажмите эту кнопку, чтобы применить изменения от выбранной фиксации к текущей ветке.
- Нажмите эту кнопку, чтобы выделить фиксации из выбранной ветви, которые еще не были применены к текущей ветке.
Подробнее об окне инструмента Version Control вы можете узнать в документации IntelliJ IDEA.
5. Выполнение фиксации
Вы заметите, что когда мы настроили интеграцию Git с нашим проектом Android Studio, цвет нашего файла стал коричневым. Согласно официальной документации IntelliJ IDEA, для файлов с коричневыми метками:
Файл существует локально, но не находится в репозитории и не предназначен для добавления.
Давайте посмотрим, как сделать фиксацию в Android Studio. Но сначала нам нужно добавить наши изменения в рабочий каталог в промежуточную область. В консоли мы будем использовать команду git add .
Но мы можем сделать это прямо из Android Studio. Выберите раскрывающийся список «Неверсированные файлы» на вкладке «Локальные изменения», щелкните правой кнопкой мыши и перейдите в «Git»> «Добавить» или «Control-Alt-A». Помните, что выбор корневой папки добавит все, что находится внутри нее, в промежуточную область.
Теперь вы заметите, что цвета ярлыков ваших файлов изменились с коричневого на зеленый. Вот что в документации IntelliJ IDEA говорится о именах файлов, которые окрашены в зеленый цвет:
Файл планируется добавить в репозиторий.
Чтобы узнать больше о разных цветах, имя файла может быть указано в зависимости от состояния файла в Android Studio (IntelliJ IDEA), проверьте статусы файлов из документации.
Чтобы окончательно зафиксировать наши изменения, нажмите кнопку фиксации фиксации на вкладке Local Changes и откроется диалоговое окно Commit Changes.
- Здесь мы можем выбрать или отменить выбор файлов, которые должны быть включены в эту фиксацию. По умолчанию проверяются все поэтапные файлы.
- Напишите здесь сообщение о фиксации. Если у вас есть ранее записанное сообщение фиксации, оно будет отображаться здесь как значение по умолчанию.
- Выберите операцию(и) для выполнения перед тем, как фиксировать в Git.
- Совместное сравнение измененных файлов.
- С помощью этой кнопки вы можете зафиксировать и запушить или просто зафиксировать.
Чтобы сделать фиксацию, давайте напишем сообщение о фиксации:
Выберите Commit в раскрывающемся списке «Commit», чтобы, наконец, зафиксировать свои изменения. Обратите внимание, что вы можете использовать горячие клавиши Control-K для фиксации изменений в любое время из Android Studio.
Если вы сейчас перейдете на вкладку Local Changes в окне Version Control, вы больше не увидите ни одного из ваших файлов, потому что мы успешно передали их в нашем локальный репозиторий.
Обратите внимание, что вы также можете перейти в VCS> Git> Commit File . чтобы сделать фиксацию и VCS> Git> Add, чтобы добавить файл для постановки. Кроме того, вы можете щелкнуть значок фиксации изменений на главной верхней панели инструментов в Android Studio, чтобы быстро совершить фиксацию.
В нашем классе MainActivity.kt я сделал простую модификацию в классе, переопределив onResume() . Вы заметите, что цвет имени файла после модификации теперь синий; это означает, что мы изменили файл.
Просмотр журнала фиксаций
Теперь снова перейдите в окно Version Control и перейдите на вкладку Log. Теперь вы увидите коммиты, которые были сделаны в этом проекте. Чтобы получить более подробную информацию о любой фиксации, просто нажмите на нее.
- Эта основная панель показывает все фиксации проекта в соответствии с выбранным фильтром. Другими словами, это показывает нам историю фиксации.
- На этой панели отображаются файлы и папки, на которые влияет фиксация, выбранная в панели истории фиксации.
- Эта панель отображает более подробную информацию о выбранной фиксации.
Щелкнув правой кнопкой мыши на фиксации, вы также можете увидеть меню, в котором вы можете скопировать номер версии, создать патч, проверить ревизию, ответвление от этой фиксации, создать новый тег и сбросить текущую ветвь до этого фиксации ,
Давайте посмотрим, как мы можем посмотреть, какой код был добавлен, отредактирован или удален. Другими словами, мы хотим более подробно ознакомиться с внесенными изменениями.
Просто нажмите значок show diff над окном, где показаны файлы, затронутые фиксацией. Горячей клавишей является использование Control-D или двойной щелчок по файлу или папке.
Вы увидите диалог Show Diff, показывающий различия между предыдущей фиксацией и выбранной фиксацией.
Зеленый цвет области в файле выделяет строки, которые были добавлены в файл — вы должны увидеть некоторые, если вы следуете. Серые области выделяют линии, которые были удалены. И синий выделяет линии, которые были изменены. Попробуйте изучить фильтры и кнопки значков, доступные в верхней части диалогового окна Show Diff, чтобы узнать больше об этом.
Обратите внимание, что вы также можете увидеть изменения в изображениях в диалоговом окне Show Diff!
Щелкнув правой кнопкой мыши по файлу, вы также можете увидеть разницу между последней фиксацией и текущей фиксацией этого файла — show diff (Control-D). Вы также можете отредактировать исходный файл (F4), открыть версию в репозитории, вернуть выбранные изменения, показать историю для ревизии и показать детали фиксации для этого файла.
6. Создание ветки Git
По умолчанию основная ветка будет текущей. Тем не менее, рекомендуется всегда отходить от мастера и выполнять свою работу в отдельной ветви, специфичной для конкретной задачи. Когда вы закончите кодирование своей функции (и когда вы проверили свои изменения), вы затем объедините свои изменения в главную ветку.
Давайте посмотрим, как создать ветку от мастера.
Перейдите в нижний правый угол Android Studio и нажмите раскрывающееся меню Git: master.
Нажмите кнопку New Branch.
Введите название ветки. В нашем случае используйте dev.
Наконец, нажмите кнопку «ОК» для Android Studio, чтобы автоматически создать ветвь dev, а также перейти на эту ветку.
Сейчас мы находимся в ветке dev. Как вы можете видеть ниже:
Под капотом Android Studio выполняет команду:
Обратите внимание, что мы также можем создать новую ветку, перейдя в VCS> Git> Branches> New Branch.
7. Слияние веток Git
Внутри ветви dev просто создайте основной профиль ProfileActivity.kt и его файлы макета и зафиксируйте свои изменения. Мы собираемся посмотреть, как смержить dev в мастер.
Выйдите из текущей ветви (dev) в ветвь master (это означает, что мы переключаемся с dev на master).
Слияние, проверка, удаление, сравнение, переименование ветви
Если вы нажмете на ветку, вам будут показаны некоторые операции, которые вы можете выполнить в этой ветке. Операции включают объединение, сравнение двух веток, переименование ветки, ребейз, переход и удаление ветки.
В этой статье мы рассмотрим, как объединять ветки. В основной ветке объедините ветвь dev, перейдя в ветвь dev и нажав Merge в меню.
Это оно! Теперь мы успешно объединили нашу ветвь dev с ветвью master.
За кулисами Android Studio выполняет команду:
Обратите внимание, что мы также можем выполнить расширенное слияние прямо в Android Studio. Мы можем указать стратегию слияния (Resolve, Recursive, Octopus, Ours или Subtree) или не использовать режим fast-forward.
Чтобы установить это при слиянии, перейдите в VCS> Git> Merge Changes .
Здесь вы можете выбрать несколько ветвей для объединения, выбрать стратегию слияния и написать сообщение фиксации. Настоятельно рекомендуется, чтобы вы действительно понимали эти стратегии слияния.
8. Пуш в удаленный репозиторий
Каждый проект Git должен иметь удаленный или центральный репозиторий, где другие разработчики могут учавствовать в проекте из любой точки мира. В Android Studio также можно запушить наши фиксации или изменения в удаленный репозиторий. Для этого перейдите в VCS> Git> Push .
Здесь мы можем добавить URL удаленного репозитория, щелкнув ссылку Define remote в появившемся диалоговом окне Push Commits. Наконец, нажмите кнопку Push, когда закончите! Горячие клавиши Control-Shift-K.
Android Studio выполняет следующую команду за кулисами:
Вы также можете быстро совершить фиксацию нажатием кнопки, нажав на значок фиксации изменений на главной панели инструментов или с помощью Control-K.
9. Вытягивание из удаленного хранилища
Чтобы обновить проект (подтянуть изменения) с последними изменениями из удаленного репозитория (вы должны были добавить удаленный origin), перейдите в VCS> Git> Pull. Это автоматически обновит ваш проект Android Studio самым последним кодом из удаленного репозитория.
Чтобы инициировать pull, вы также можете щелкнуть значок проекта обновления на главной панели инструментов или использовать ярлык Control-T.
Если вы сделаете это, Android Studio выполнит команду git pull за кулисами:
Обратите внимание, что если вы столкнулись с конфликтом слияния при пуле или пуше, Android Studio покажет действительно удобный диалог конфликтов слияния, который поможет вам разрешить этот конфликт.
Заключение
В этом уроке вы узнали, как легко выполнять различные операции Git, которые вы обычно можете выполнять в командной строке или в терминале. Использование инструментов Git для Android Studio упрощает и повышает эффективность совместной работы над проектами Android с другими разработчиками.
Чтобы узнать больше о кодировании для Android, ознакомьтесь с некоторыми нашими другими курсами и учебниками здесь, на Envato Tuts +!
Источник