Esempio n. 1
0
def find_bitbucket_repository(user, password, email):
    bitbucket = Client(
        BasicAuthenticator(user, password, email)
    )

    try:
        print("Finding run project in bitbucket...")
        repository = Repository.find_repository_by_name_and_owner(
            repository_name="run",
            client=bitbucket
        )
    except HTTPError:
        print("Project not found")
        print("Creating project run...")

        repository = Repository.create(
            payload=RepositoryPayload({
                "name": "run",
                "is_private": True,
                "fork_policy": RepositoryForkPolicy.NO_FORKS,
            }),
            client=bitbucket
        )

    for link in repository.links["clone"]:
        if link["name"] == "https":
            return link["href"]
Esempio n. 2
0
 def test_response_is_a_repository(self):
     httpretty.register_uri(httpretty.POST,
                            self.url,
                            content_type='application/json',
                            body=self.resource_data(),
                            status=200)
     payload = RepositoryPayload() \
         .add_name(self.name) \
         .add_fork_policy(self.fork_policy) \
         .add_is_private(self.is_private)
     response = Repository.create(payload, client=self.test_client)
     assert 'application/json' == \
         httpretty.last_request().headers.get('Content-Type')
     assert isinstance(response, Repository)
Esempio n. 3
0
 def create(self, user, repo, add=False):
     try:
         repo = Repository.create(
                 RepositoryPayload(dict(
                     fork_policy=RepositoryForkPolicy.ALLOW_FORKS,
                     is_private=False
                 )),
                 repository_name=repo,
                 owner=user,
                 client=self.bb.client
         )
         if add:
             self.add(user=user, repo=repo.name, tracking=self.name)
     except HTTPError as err:
         if '400' in err.args[0].split(' '):
             raise ResourceExistsError('Project {} already exists on this account.'.format(repo)) from err
         raise ResourceError("Couldn't complete creation: {}".format(err)) from err
Esempio n. 4
0
 def create(self, user, repo, add=False):
     try:
         repo = Repository.create(
                 RepositoryPayload(dict(
                     fork_policy=RepositoryForkPolicy.ALLOW_FORKS,
                     is_private=False
                 )),
                 repository_name=repo,
                 owner=user,
                 client=self.bb.client
         )
         if add:
             self.add(user=user, repo=repo.name, tracking=self.name)
     except HTTPError as err:
         if '400' in err.args[0].split(' '):
             raise ResourceExistsError('Project {} already exists on this account.'.format(repo)) from err
         raise ResourceError("Couldn't complete creation: {}".format(err)) from err
Esempio n. 5
0
  request.get_method = lambda: 'PUT'
  try:
    result = urlopen(request).read()
  except Exception as e:
    print(repr(e))
    break

  print('Creating remote git repo...')
  payload = RepositoryPayload() \
    .add_scm(RepositoryType.GIT) \
    .add_name(str(repo.name)) \
    .add_is_private(repo.is_private) \
    .add_description(str(repo.description)) \
    .add_fork_policy(RepositoryForkPolicy.ALLOW_FORKS) \
    .add_language(str(repo.language)) \
    .add_has_issues(repo.has_issues) \
    .add_has_wiki(repo.has_wiki)
  repo = Repository.create(payload, repository_name=repo.slug, owner=teamname, client=bitbucket)

  git_clone_https = ''
  for clone in repo.links['clone']:
    if clone['name'] == 'https':
      git_clone_https = clone['href']
      break
  git_clone_https = git_clone_https.replace('@', ':%s@' % password)
  time.sleep(2)

  print('Pushing to remote git repo...')
  os.popen('cd %s;git remote add origin %s' % (git_clone_dir, git_clone_https))
  os.popen('cd %s;git push origin master' % (git_clone_dir))