TakeYourJob app is using HeadHunter API
The app is created as diploma project.
Implemented options for searching for vacancies (with a custom filters by location, industry, salary), collect/remove vacancies from favorites, view details of an individual vacancy, change the application theme
- Android Studio
- Coroutines + Flow
- Arcitecture: MVVM+StateFlow, Single Activity + Android Navigation
- DB: Room Persistent Library
- Network: Retrofit2
- DI - Hilt
- Coil
- WebView
-
Clone this repository to your local machine.
git clone https://github.com/GoetzDeBouville/TakeYourJob.git
-
Get application token (read)
-
Open the project in Android Studio.
-
For setting the application token, create file
develop.properties
in the project folder and add there the only one property:
hhAccessToken=my_access_token
Instead of my_access_token
insert the HeadHunter API access token received after registration (point 2). After changing the value
synchronize the project.
File develop.properties
is ignoring by default.
Values, texted into develop.properties
file will be added to ypur app on building process that calls BuildConfig
(read)
-
Set up your Android device/emulator/simulator.
-
Build and run the project.
A basic static analyzer - detekt - is configured in the project. It will check for a large number of standard errors when writing Kotlin code.
The detekt configuration file is located here. A description of the meaning of the rules can be found
in the official detekt documentation - for example, here are the rules for the comments
group.
To check for detekt errors in a project, open a terminal and run the command ./gradlew detektAll
. After
execution you will see a list of errors in the terminal output, if you have any, and next to each error there will be a link to a piece of code, where detekt
a link to the piece of code where detekt found the error.
There is also a command set up in the project that fixes a large number of detekt formatting errors. To run
it, open a terminal and run the command ./gradlew detektFormat
.
The project uses the Github Actions service to configure CI. It allows automating basic application quality checks such as compilation of the project and running the static analyzer detekt. project and running the static analyzer detekt. CI configuration.
In order to allow automatic checks to run on each pull request created, you must do a few additional steps:
- Activate
Github Actions
in your thesis fork. - And add the HeadHunter API token to the repository secrets.
By default, Github disables customized Github Actions
for each fork of the original repository. This is done in order to
To ensure that every developer and developer is consciously applying the described CI configurations (there's not much configured in the
original repository!).
To activate Github Actions
in the diploma project fork, you need to go to the Actions
tab:
And then click the green button - this is how you give your consent to run the repository described in the the `Github Actions configuration files described in the repository:
The develop.properties
file is not stored in the commit history, but the value of the HeadHunter API token is necessary for successful
APK application build. In order for the CI server to retrieve the token value, it must be added
to repository secrets for Github Actions.
Open the Settings
tab from the main page of the fork:
On the left side of the screen, find the Security
section, there is a Secrets and variables
item (number (1) in the screenshot). When
click on this item, a drop-down list will appear, which will contain the Actions
list item (number (2) on the screenshot).
Click on this list item and on the right side of the screen you will see a block called Repository secrets
:
Click on the New repository secret
button. In the window that appears, specify GH_HHH_ACCESS_TOKEN
as the name of the secret,
and the value is the same token you added to the develop.properties
file:
After entering the key and value, click the Add secret
button. If you've done everything correctly, you should see an
updated Repository secrets
block:
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
ΠΠ»Ρ ΠΏΡΠΎΠ±ΡΠΎΡΠ° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π°, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ API HeadHunter, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²
ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΠΉΠ» develop.properties
ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠ΄Π° ΠΎΠ΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ:
hhAccessToken=my_access_token
ΠΠΌΠ΅ΡΡΠΎ my_access_token
Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API HeadHunter. ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ.
Π€Π°ΠΉΠ» develop.properties
ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
Π² Git, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π±ΠΎΡΡΡΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π° ΠΏΠΎΠΏΠ°Π΄ΡΡ Π²
ΠΎΡΠΊΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ» develop.properties
, Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ
ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ BuildConfig
. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ
Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ - detekt. ΠΠ½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Kotlin-ΠΊΠΎΠ΄Π°.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» detekt Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π·Π΄Π΅ΡΡ. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΌΡΡΠ»Π° ΠΏΡΠ°Π²ΠΈΠ» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ
Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ detekt - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π³ΡΡΠΏΠΏΡ comments
.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ detekt Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ./gradlew detektAll
. ΠΠΎΡΠ»Π΅
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ, ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ
ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΊΡΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ detekt ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ detekt. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ
Π΅Ρ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ./gradlew detektFormat
.
Π Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ Github Actions Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ CI ( Continuous Integration). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΡΠΎΠ³ΠΎΠ½ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° detekt. Π€Π°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ CI Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ.
ΠΠ° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ pull request CI-ΡΠ΅ΡΠ²Π΅Ρ:
- Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΡΠΎΠ±Π΅ΡΡΡ APK ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² ΠΌΠΎΠ΄ΡΠ»Π΅
app
. ΠΠΎΡΠΎΠ²ΡΠΉ APK ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π²ΡΡΠ²Π΅ΡΠ°ΠΌ. - Π Π·Π°ΠΏΡΡΡΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ
detekt
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΡΠΈΠ½ΡΡΡΠΉ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΊΠΎΠ΄-ΡΡΠ°ΠΉΠ».
Π§ΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ pull request, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
- ΠΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ
Github Actions
Π² Π²Π°ΡΠ΅ΠΌ ΡΠΎΡΠΊΠ΅ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. - Π Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠΊΠ΅Π½ API HeadHunter Π² ΡΠ΅ΠΊΡΠ΅ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Github ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Github Actions
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΡΠΊΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ
ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠ° ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ CI (ΠΌΠ°Π»ΠΎ Π»ΠΈ ΡΡΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ Π²
ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ!).
Π§ΡΠΎΠ±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Github Actions
Π² ΡΠΎΡΠΊΠ΅ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡΠΈ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡ Actions
:
Π Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΡ Π½Π° Π·Π΅Π»ΡΠ½ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ - ΡΠ°ΠΊ Π²Ρ Π΄Π°ΡΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ Π½Π° Π·Π°ΠΏΡΡΠΊ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
ΡΠ°ΠΉΠ»ΠΎΠ²-ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Github Actions
:
Π€Π°ΠΉΠ» develop.properties
Π½Π΅ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π° API HeadHunter Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ
ΡΠ±ΠΎΡΠΊΠΈ APK ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ CI-ΡΠ΅ΡΠ²Π΅Ρ ΡΠΌΠΎΠ³ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ
Π² ΡΠ΅ΠΊΡΠ΅ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π΄Π»Ρ Github Actions.
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΡ Settings
Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΡΠΊΠ°:
Π Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π° Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π» Security
, Π² Π½ΡΠΌ Π΅ΡΡΡ ΠΏΡΠ½ΠΊΡ Secrets and variables
(ΡΠΈΡΡΠ° (1) Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅). ΠΡΠΈ
Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΡΡΠΎΡ ΠΏΡΠ½ΠΊΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° Actions
(ΡΠΈΡΡΠ° (2) Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅).
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° ΠΈ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π° Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π±Π»ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Repository secrets
:
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ New repository secret
. Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΠ΅ΡΠ° ΡΠΊΠ°ΠΆΠΈΡΠ΅ GH_HH_ACCESS_TOKEN
,
Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΠΊΠ΅Π½, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ Π² ΡΠ°ΠΉΠ» develop.properties
:
ΠΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΊΠ»ΡΡΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Add secret
. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠΉ Π±Π»ΠΎΠΊ Repository secrets
: