AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āĻŸā§āϰāĻžāϝāĻŧāĻžāĻŽ, āĻšā§āϝāĻžāϞ⧋!

āφāĻŽāĻŋ BitBucket āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ GitLab āĻāĻŦāĻ‚ AppCenter āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āφāĻŽāĻžāϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻĨāĻž āĻŦāϞāϤ⧇ āϚāĻžāχāĨ¤

Xamarin-āĻ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāϏ-āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ UI āĻĒāϰ⧀āĻ•ā§āώāĻž āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāχ āϧāϰāύ⧇āϰ āĻāϕ⧀āĻ•āϰāϪ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻĻ⧇āĻ–āĻž āĻĻ⧇āϝāĻŧāĨ¤ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϟāĻŋāωāĻŸā§‹āϰāĻŋāϝāĻŧāĻžāϞ āύāĻŋāĻšā§‡ āĻ•āĻžāϟāĻž!

* āϜāύāϏāĻžāϧāĻžāϰāĻŖ āφāĻ—ā§āϰāĻšā§€ āĻšāϞ⧇ āĻ•ā§āϰāϏ-āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϰ āĻŽāĻ§ā§āϝ⧇ UI āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āφāĻŽāĻŋ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āύāĻŋāĻŦāĻ¨ā§āϧ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤

āφāĻŽāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāχ āϧāϰāύ⧇āϰ āĻāĻ•āϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ āĻ–āύāύ āĻĒā§āϰāĻŦāĻ¨ā§āϧ. āĻ…āϤāĻāĻŦ, āφāĻŽāĻžāϰ āύāĻŋāĻŦāĻ¨ā§āϧ āĻ•āĻžāωāϕ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇.

āĻ•āĻžāĻœā§‡āϰ: AppCenter-āĻ UI āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āϞāĻžā§āϚ āϏ⧇āϟ āφāĻĒ āĻ•āϰ⧁āύ, āφāĻŽāĻžāĻĻ⧇āϰ āĻĻāϞ GitLab āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

āϏāĻŽāĻ¸ā§āϝāĻž āĻĻ⧇āĻ–āĻž āϗ⧇āϞ āϝ⧇ āĻ…ā§āϝāĻžāĻĒāϏ⧇āĻ¨ā§āϟāĻžāϰ āϏāϰāĻžāϏāϰāĻŋ āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ⧇āϰ āϏāĻžāĻĨ⧇ āĻāϕ⧀āĻ­ā§‚āϤ āĻšāϝāĻŧ āύāĻžāĨ¤ BitBucket āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŦāĻžāχāĻĒāĻžāϏ āĻāĻ•āϟāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

āϧāĻžāĻĒ

1. BitBucket-āĻ āĻāĻ•āϟāĻŋ āĻ–āĻžāϞāĻŋ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āφāĻŽāĻŋ āφāϰāĻ“ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤāĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻĻ⧇āĻ–āĻ›āĻŋ āύāĻž :)

2. GitLab āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž

āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āϝ⧇ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϤ⧇ āĻĒ⧁āĻļ/āĻŽāĻžāĻ°ā§āϜ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋāĻ“ BitBucket-āĻ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻ•āϰāϤ⧇, āĻāĻ•āϟāĻŋ āϰāĻžāύāĻžāϰ āϝ⧋āĻ— āĻ•āϰ⧁āύ (āĻŦāĻž āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ .gitlab-ci.yml āĻĢāĻžāχāϞāϟāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰ⧁āύ)āĨ¤

āĻĒā§āϰāĻĨāĻŽā§‡ āφāĻŽāϰāĻž before_scripts āĻŦāĻŋāĻ­āĻžāϗ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϝ⧋āĻ— āĻ•āϰāĻŋ

 - git config --global user.email "user@email"
 - git config --global user.name "username"

āϤāĻžāϰāĻĒāϰ āĻĒāĻ›āĻ¨ā§āĻĻāϏāχ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϝ⧋āĻ— āĻ•āϰ⧁āύ:

- git push --mirror https://username:password@bitbucket.org/username/projectname.git

āφāĻŽāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻāχ āĻĢāĻžāχāϞāϟāĻŋ āφāĻŽāĻŋ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋ:

before_script:
 - git config --global user.email "user@email"
 - git config --global user.name "username"

stages:
  - mirror
mirror:
  stage: mirror
  script:
    - git push --mirror https://****:*****@bitbucket.org/****/testapp.git

āφāĻŽāϰāĻž āĻŦāĻŋāĻ˛ā§āĻĄ āϚāĻžāϞ⧁ āĻ•āϰāĻŋ, āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ/āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ BitBucket-āĻ āφāϛ⧇ āĻ•āĻŋāύāĻž āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύāĨ¤
* āϝ⧇āĻŽāύ āĻ…āύ⧁āĻļā§€āϞāύ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇, SSH āϕ⧀ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āϐāĻšā§āĻ›āĻŋāĻ•āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻŽāĻŋ āύ⧀āĻšā§‡ SSH āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•āϟāĻŋ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻŦ

SSH āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

āĻĒā§āϰāĻĨāĻŽā§‡ āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ SSH āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ āύāĻŋāϝāĻŧ⧇ āĻ…āύ⧇āĻ• āĻĒā§āϰāĻŦāĻ¨ā§āϧ āϞ⧇āĻ–āĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻ–āĻžāύ⧇.
āωāĻ¤ā§āĻĒāĻ¨ā§āύ āϕ⧀āϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻāϰāĻ•āĻŽ āĻ•āĻŋāϛ⧁ āĻĻ⧇āĻ–āĻžāϝāĻŧ:
AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āĻ…āϧāĻŋāĻ•āϤāϰ āĻ—ā§‹āĻĒāύ āϚāĻžāĻŦāĻŋ GitLab āĻ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻāϟāĻŋ āĻ•āϰāϤ⧇, āϏ⧇āϟāĻŋāĻ‚āϏ > CI/CD > āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ-āĻ āϝāĻžāύāĨ¤ āϝ⧇ āĻĢāĻžāχāϞāϟāĻŋāϤ⧇ āφāĻĒāύāĻŋ āĻ—ā§‹āĻĒāύ āϕ⧀āϟāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āϛ⧇āύ āϤāĻžāϰ āϏāĻŽāĻ¸ā§āϤ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύ⧎ āϚāϞ⧁āύ SSH_PRIVATE_KEY āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞāϟāĻŋāϕ⧇ āĻ•āϞ āĻ•āϰāĻŋāĨ¤
* āĻāχ āĻĢāĻžāχāϞāϟāĻŋ, āĻĒāĻžāĻŦāϞāĻŋāĻ• āϕ⧀ āĻĢāĻžāχāϞ⧇āϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻĨāĻžāĻ•āĻŦ⧇ āύāĻž
AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āϚāĻŽā§ŽāĻ•āĻžāϰ, āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āφāĻĒāύāĻžāϕ⧇ BitBucket-āĻ āϏāĻ°ā§āĻŦāϜāύ⧀āύ āϕ⧀ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāϟāĻŋ āĻ•āϰāϤ⧇, āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞāϟāĻŋ āϖ⧁āϞ⧁āύ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāĻ‚āϏ > āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āϕ⧀āϗ⧁āϞāĻŋāϤ⧇ āϝāĻžāύāĨ¤

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž Add Key-āĻ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻŦāϞāĻŋāĻ• āϕ⧀ (āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ .pub āϏāĻš āĻĢāĻžāχāϞ) āĻĻāĻŋāϝāĻŧ⧇ āĻĢāĻžāχāϞ⧇āϰ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āϏāĻ¨ā§āύāĻŋāĻŦ⧇āĻļ āĻ•āϰāĻŋāĨ¤

āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϧāĻžāĻĒ āĻšāϞ āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ-āϰāĻžāύāĻžāϰ⧇ āϕ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāĨ¤ āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻžāϰ āĻŦāĻŋāĻŦāϰāĻŖ āĻĻāĻŋāϝāĻŧ⧇ āϤāĻžāϰāĻ•āĻžāϚāĻŋāĻšā§āύāϗ⧁āϞāĻŋ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύ

image: timbru31/node-alpine-git:latest

stages:
  - mirror

before_script:
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  - ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts
  - chmod 644 ~/.ssh/known_hosts
  - git config --global user.email "*****@***"
  - git config --global user.name "****"
  - ssh -T git@bitbucket.org

mirror:
  stage: mirror
  script:
    - git push --mirror https://****:****@bitbucket.org/*****/*****.git

3. āĻ…ā§āϝāĻžāĻĒāϏ⧇āĻ¨ā§āϟāĻžāϰ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

āφāĻŽāϰāĻž āĻ…ā§āϝāĻžāĻĒāϏ⧇āĻ¨ā§āϟāĻžāϰ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋāĨ¤

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āĻ­āĻžāώāĻž/āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰ⧁āύ

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āĻāϰ āĻĒāϰ⧇, āύāϤ⧁āύ āϤ⧈āϰāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦāĻŋāĻ­āĻžāϗ⧇ āϝāĻžāύāĨ¤ āϏ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž BitBucket āĻāĻŦāĻ‚ āϧāĻžāĻĒ 1 āĻ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻŋāĨ¤

āϚāĻŽā§ŽāĻ•āĻžāϰ, āĻāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāϟāĻŋ āĻ•āϰāϤ⧇, āĻ—āĻŋāϝāĻŧāĻžāϰ āφāχāĻ•āύ āϖ⧁āρāϜ⧁āύ

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āύ⧀āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇, āϏ⧇āĻ–āĻžāύ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁āχ āĻ¸ā§āĻŦāĻœā§āĻžāĻžāϤāĨ¤ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻāĻŦāĻ‚ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύāĨ¤ āϝāĻĻāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ, āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧁āύāĨ¤ āϤāĻžāϰāĻž āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻļ⧁āϰ⧁ āĻšāĻŦ⧇āĨ¤

āĻŽā§‚āϞāϤ, āϝ⧇ āϏāĻŦ. āĻāϟāĻž āϏāĻšāϜ āĻļā§‹āύāĻžāĻšā§āϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁, āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇āχ, āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŽāϏ⧃āĻŖāĻ­āĻžāĻŦ⧇ āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ āĻ…āϤāĻāĻŦ, āφāĻŽāĻŋ āĻ•āĻŋāϛ⧁ āĻ¤ā§āϰ⧁āϟāĻŋ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻŦ āϝāĻž āφāĻŽāĻŋ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāĻŽā§āĻŽā§āĻ–ā§€āύ āĻšāϝāĻŧ⧇āĻ›āĻŋ:

'ssh-keygen' āĻāĻ•āϟāĻŋ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻŦāĻž āĻŦāĻžāĻšā§āϝāĻŋāĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ āύāϝāĻŧāĨ¤

āĻāϟāĻžāĻ“ āϘāĻŸā§‡ āĻ•āĻžāϰāĻŖ ssh-keygen.exe-āĻāϰ āĻĒāĻžāĻĨ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋāĨ¤
āĻĻ⧁āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āφāϛ⧇: C:Program FilesGitusrbin āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇ āϝ⧋āĻ— āĻ•āϰ⧁āύ (āĻŽā§‡āĻļāĻŋāύ āϰāĻŋāĻŦ⧁āϟ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāĻŦ⧇), āĻ…āĻĨāĻŦāĻž āĻāχ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āĻ•āύāϏ⧋āϞ āϚāĻžāϞ⧁ āĻ•āϰ⧁āύāĨ¤

AppCenter āϭ⧁āϞ BitBucket āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ?

āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻžāϕ⧇ AppCenter āĻĨ⧇āϕ⧇ āφāĻĒāύāĻžāϰ BitBucket āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟāϟāĻŋ āφāύāϞāĻŋāĻ™ā§āĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āφāĻŽāϰāĻž āϭ⧁āϞ BitBucket āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡ āϞāĻ— āχāύ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ⧇ āϝāĻžāχāĨ¤

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āĻāϰāĻĒāϰ⧇, āϏ⧇āϟāĻŋāĻ‚āϏ > āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ > OAuth-āĻ āϝāĻžāύ

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϞāĻŋāĻ™ā§āĻ•āĻŽā§āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻšāĻžāϰ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύāĨ¤

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āĻāϰ āĻĒāϰ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ BitBucket āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻĻāĻŋāϝāĻŧ⧇ āϞāĻ— āχāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
* āĻļ⧇āώ āĻ…āĻŦāϞāĻŽā§āĻŦāύ āĻšāĻŋāϏāĻžāĻŦ⧇, āφāĻĒāύāĻžāϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻ•ā§āϝāĻžāĻļ⧇āĻ“ āϏāĻžāĻĢ āĻ•āϰ⧁āύāĨ¤

āĻāĻ–āύ āĻ…ā§āϝāĻžāĻĒāϏ⧇āĻ¨ā§āϟāĻžāϰ⧇ āϝāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻ•āĨ¤ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦāĻŋāĻ­āĻžāϗ⧇ āϝāĻžāύ, āĻŦāĻŋāϟāĻŦāĻžāϕ⧇āϟ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϏāĻ‚āϝ⧋āĻ— āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ•āϰ⧁āύ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ

AppCenter āĻāĻŦāĻ‚ GitLab āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ

āϝāĻ–āύ āĻĒ⧁āϰāĻžāύ⧋ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϞāĻŋāĻ™ā§āĻ•āĻŽā§āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ, āφāĻŽāϰāĻž āφāĻŦāĻžāϰ AppCenter āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻŋāĨ¤ āĻāĻ–āύ āĻ•āĻžāĻ™ā§āĻ–āĻŋāϤ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āĨ¤

'eval' āĻāĻ•āϟāĻŋ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻŦāĻž āĻŦāĻžāĻšā§āϝāĻŋāĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ āύāϝāĻŧ

āφāĻŽāϰāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ

  - eval $(ssh-agent -s)

āĻŸā§€āĻŽ:

  - ssh-agent

āĻ•āĻŋāϛ⧁ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻĒāύāĻžāϕ⧇ āĻšāϝāĻŧ C:Program FilesGitusrbinssh-agent.exe-āĻāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻžāĻĨ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻ…āĻĨāĻŦāĻž āĻŽā§‡āĻļāĻŋāύ⧇āϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇ āĻāχ āĻĒāĻĨāϟāĻŋ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇āĻ–āĻžāύ⧇ āϰāĻžāύāĻžāϰ āϚāϞāϛ⧇āĨ¤

āĻ…ā§āϝāĻžāĻĒāϏ⧇āĻ¨ā§āϟāĻžāϰ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻ•āϟāĻŋ āĻĒ⧁āϰāĻžāύ⧋ āĻŦāĻŋāϟāĻŦāĻžāϕ⧇āϟ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϛ⧇

āφāĻŽāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻĻ⧇āĻ–āĻž āĻĻāĻŋāϝāĻŧ⧇āϛ⧇ āĻ•āĻžāϰāĻŖ āφāĻŽāĻŋ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻ›āĻŋāϞāĻžāĻŽāĨ¤ āφāĻŽāĻŋ āĻ•ā§āϝāĻžāĻļ⧇ āϏāĻžāĻĢ āĻ•āϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϝāĻŧ⧇āϛ⧇.

āωāĻ¤ā§āϏ: www.habr.com