Coder Social home page Coder Social logo

gitstrap's Introduction

gitstrap's People

Contributors

dependabot[bot] avatar g4s8 avatar mohamednizar avatar orlovm avatar rultor avatar vassilevsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitstrap's Issues

rultor merge is getting break

rultor merge is getting break. Found this logs.

e498faa5ef11: Download complete
049c1fe7217a: Verifying Checksum
049c1fe7217a: Download complete
8adecb6a6f53: Download complete
db2c2caf22d7: Verifying Checksum
db2c2caf22d7: Download complete
a48e7697bd54: Download complete
ac71eb070553: Verifying Checksum
ac71eb070553: Download complete
37a0800ca4c6: Verifying Checksum
37a0800ca4c6: Download complete
37a0800ca4c6: Pull complete
387d73a1a3a0: Pull complete
e498faa5ef11: Pull complete
ac71eb070553: Pull complete
049c1fe7217a: Pull complete
8adecb6a6f53: Pull complete
db2c2caf22d7: Pull complete
a48e7697bd54: Pull complete
Digest: sha256:c51fb822d6daf42888ae3a9a86b9ed12aa50af8ef18d206de1153e367e9d3bcc
Status: Downloaded newer image for g4s8/gorultor:alpine
+ docker ps --filter=status=exited
+ grep --quiet '\sg4s8_gitstrap_30\s*$'
+ ls -al .
total 712
drwx--x--x  3 rultor rultor   4096 Oct 23 15:29 .
drwxrwxrwt 12 root   root   684032 Oct 23 15:29 ..
-rw-rw-r--  1 rultor rultor    444 Oct 23 15:29 end.sh
-rwxrwxr-x  1 rultor rultor    338 Oct 23 15:29 entry.sh
-rw-rw-r--  1 rultor rultor      6 Oct 23 15:28 pid
drwxrwxr-x  9 rultor rultor   4096 Oct 23 15:29 repo
-rwxrwxr-x  1 rultor rultor   6723 Oct 23 15:28 run.sh
-rw-rw-r--  1 rultor rultor    854 Oct 23 15:29 script.sh
-rw-rw-r--  1 rultor rultor   7383 Oct 23 15:29 stdout
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-tt8g:/main --env=PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=CGO_ENABLED=0 [email protected]:g4s8/gitstrap.git --env=pull_id=30 [email protected]:mohamednizar/gitstrap.git --env=fork_branch=master --env=head_branch=master '--env=pull_title=Migrate to modules #29' --env=author=g4s8 '--env=scripts=( '\''export '\''\'\'''\''PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''CGO_ENABLED=0'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''[email protected]:g4s8/gitstrap.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_id=30'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''[email protected]:mohamednizar/gitstrap.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_title=Migrate to modules #29'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=g4s8'\''\'\'''\'''\'' '\'';'\'' '\'''\'' '\'';'\'' '\''export CGO_ENABLED=0'\'' '\'';'\'' '\''export PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'\'' '\'';'\'' '\''mkdir -pv /home/r/go/src/github.com/g4s8'\'' '\'';'\'' '\''ln -snv $PWD /home/r/go/src/github.com/g4s8/gitstrap'\'' '\'';'\'' '\''cd /home/r/go/src/github.com/g4s8/gitstrap'\'' '\'';'\'' '\''go get -t ./...'\'' '\'';'\'' '\''go build -o /dev/null .'\'' '\'';'\'' '\''go build -o /dev/null ./cmd/gitstrap'\'' '\'';'\'' '\''go test .'\'' '\'';'\'' )' --hostname=docker --privileged --memory=6g --memory-swap=16g --oom-kill-disable --cidfile=/tmp/rultor-tt8g/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --entrypoint=/main/entry.sh --name=g4s8_gitstrap_30 g4s8/gorultor:alpine /main/entry.sh
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
+ set -e
+ set -o pipefail
+ shopt -s dotglob
+ useradd -m -G sudo r
Creating mailbox file: No such file or directory
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL'
+ cp -R /root/.bundle /root/.cache /root/.gem /root/empty /home/r
+ cp -R ./cid ./end.sh ./entry.sh ./pid ./repo ./run.sh ./script.sh ./stdout /home/r
+ rm -rf repo
+ chown -R r:r /home/r
+ chmod a+x /home/r/script.sh
+ su --login r --command /home/r/script.sh
+ set -e
+ set -o pipefail
+ shopt -s expand_aliases
+ alias 'sudo=sudo -i'
+ export HOME=/home/r
+ HOME=/home/r
+ cd /home/r/repo
/home/r/script.sh: line 9: syntax error near unexpected token `;'
container 9cc6747c28b14506b15d7dd4359cb6b2ed8a1fd9301f11318dd5f9aacec9142a is dead
Wed Oct 23 15:30:50 CEST 2019

There is need to fix related to g4s8/gorultor:alpine docker image.

Release binaries

Build executables for different platforms, make a script to install.

Support env in template path

Let's support environment variables in templates files location:

gitstrap:
  templates:
    - name: "README.md"
      location: "$HOME/.gitstrap/README.md"

Organization teams spec

Create team specification to manage organization teams:

  • Spec definition
  • Get team command
  • Create team command
  • Apply/edit team command
  • Delete team command
  • Wiki documentation

err.go:7-8: Move error handling to separate module and...

The puzzle 37-c7fbd670 from #37 has to be resolved:

gitstrap/err.go

Lines 7 to 8 in ece415d

// @todo #37:30min Move error handling to separate module and publish it
// or find external dependency to work with errors.

The puzzle was created by @g4s8 on 28-Jan-20.

Estimate: 30 minutes, role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Unable to create new repo

Getting error on create command:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x7c4f57]

goroutine 1 [running]:
github.com/g4s8/gitstrap.(*strapCtx).createRepo(0xc00000e6a0, 0xc000294fac, 0x4, 0xc000102300, 0xc0000974d0, 0xc0000dc600, 0xc000152000, 0x0)
        /home/g4s8/go/src/github.com/g4s8/gitstrap/gitstrap.go:189 +0xd7
github.com/g4s8/gitstrap.(*strapCreate).Run(0xc0000100a0, 0xc0000974d0, 0x7ffe67b7d12c, 0x6)
        /home/g4s8/go/src/github.com/g4s8/gitstrap/gitstrap.go:158 +0x2bd
main.main()
        /home/g4s8/projects/github.com/g4s8/gitstrap/cmd/gitstrap/main.go:54 +0x4a4

Organization spec

Add commands for managing GitHub organizations:

  • Specification
  • Get command
  • [Create command
  • Apply command
  • Delete command

gitstrap.go:136-140: Continue refactoring. Refactor...

The puzzle 5-6471c36f from #5 has to be resolved:

gitstrap/gitstrap.go

Lines 136 to 140 in c054dde

// @todo #5:30min Continue refactoring.
// Refactor strapCreate.Run and strapDestr.Run functions.
// Split create and destroy logic to independend steps
// (such as create github repo, init git repo, etc),
// Implement each actions as a chain of these steps.

The puzzle was created by @g4s8 on 07-Jan-19.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

gitstrap get teams crashes on nil pointer

When running gitstrap get teams --org artipie command (I have access to artipie org), it crashes with log:

gitstrap get teams --org artipie
panic: assignment to entry in nil map

goroutine 52 [running]:
github.com/g4s8/gitstrap/internal/gitstrap.(*Gitstrap).GetTeams.func1()
	/home/g4s8/go/pkg/mod/github.com/g4s8/[email protected]/internal/gitstrap/get.go:152 +0x4a5
created by github.com/g4s8/gitstrap/internal/gitstrap.(*Gitstrap).GetTeams
	/home/g4s8/go/pkg/mod/github.com/g4s8/[email protected]/internal/gitstrap/get.go:125 +0x15b

Print repository URL on create

Print to stdout repository URL after creating it with gitstrap create or gitstrap apply, now printed internal Github repo ID and repo name.

Redundant code

https://github.com/g4s8/gitstrap/blob/master/internal/utils/tag.go

func removeOmitempty(tag reflect.StructTag, key string) (reflect.StructTag, error) {
	newTag := *new(reflect.StructTag)
	tags, err := structtag.Parse(string(tag))
	if err != nil {
		return newTag, err
	}

	....
}

newTag := *new(reflect.StructTag) can be removed and return nil, err due to it doesn't use

tag, err := removeOmitempty(field.Tag, key)
if err != nil {
	return nil, err
} 

[create] failed to sync git repo: exit status 128

 $ ~/gitstrap/gitstrap -debug -version
gitstrap version: 0.2.6151
commit hash: 1468aa1cf49c08c31ae9f331f3331445e390c33f
build date: 2019-09-30T20:33:11Z
18:09:03 $ uname -a
Linux XXX 4.4.0-18362-Microsoft #476-Microsoft Fri Nov 01 16:53:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
...

The command gitstrap -token=xxx -debug create creates the repo, however fails with error

17:56:01 prj $ ~/gitstrap/gitstrap -token=xxx -debug create
2019/12/01 17:56:45 token: ***xxx
strap = create={ctx={debug=true, cfg=&{Gitstrap:0xc00000e680}}}
2019/12/01 17:56:45 [GH] >>> GET https://api.github.com/user
2019/12/01 17:56:45 [GH] https://api.github.com/user <<< 200
2019/12/01 17:56:45 {"login":"dgroup","id":1651114,"node_id":"yyy=","avatar_url":"https://avatars0.githubusercontent.com/u/1651114?v=4","gravatar_id":"","url":"https://api.github.com/users/dgroup","html_url":"https://github.com/dgroup","followers_url":"https://api.github.com/users/dgroup/followers","following_url":"https://api.github.com/users/dgroup/following{/other_user}","gists_url":"https://api.github.com/users/dgroup/gists{/gist_id}","starred_url":"https://api.github.com/users/dgroup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgroup/subscriptions","organizations_url":"https://api.github.com/users/dgroup/orgs","repos_url":"https://api.github.com/users/dgroup/repos","events_url":"https://api.github.com/users/dgroup/events{/privacy}","received_events_url":"https://api.github.com/users/dgroup/received_events","type":"User","site_admin":false,"name":"Yurii Dubinka","company":null,"blog":"","location":"Hyderabad","email":"[email protected]","hireable":true,"bio":null,"public_repos":32,"public_gists":9,"followers":19,"following":7,"created_at":"2012-04-17T08:48:20Z","updated_at":"2019-12-01T14:19:14Z"}
RUN: as dgroup options = map[]
Looking up for repo dgroup/c
2019/12/01 17:56:45 [GH] >>> GET https://api.github.com/repos/dgroup/c
2019/12/01 17:56:46 [GH] https://api.github.com/repos/dgroup/c <<< 404
2019/12/01 17:56:46 {"message":"Not Found","documentation_url":"https://developer.github.com/v3/repos/#get"}
repository doesn't exist. Create? (y/n): y
creating repo: dgroup/c
        github.Repository{Name:"c", Description:"zzz", Private:true}
2019/12/01 17:56:51 [GH] >>> POST https://api.github.com/user/repos
2019/12/01 17:56:51 {"name":"c","description":"zzz","private":true}
2019/12/01 17:56:53 [GH] https://api.github.com/user/repos <<< 201
2019/12/01 17:56:53 {"id":225179076,"node_id":"xxxx=","name":"c","full_name":"dgroup/c","private":true,"owner":{"login":"dgroup","id":1651114,"node_id":"xxx","avatar_url":"https://avatars0.githubusercontent.com/u/1651114?v=4","gravatar_id":"","url":"https://api.github.com/users/dgroup","html_url":"https://github.com/dgroup","followers_url":"https://api.github.com/users/dgroup/followers","following_url":"https://api.github.com/users/dgroup/following{/other_user}","gists_url":"https://api.github.com/users/dgroup/gists{/gist_id}","starred_url":"https://api.github.com/users/dgroup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgroup/subscriptions","organizations_url":"https://api.github.com/users/dgroup/orgs","repos_url":"https://api.github.com/users/dgroup/repos","events_url":"https://api.github.com/users/dgroup/events{/privacy}","received_events_url":"https://api.github.com/users/dgroup/received_events","type":"User","site_admin":false},"html_url":"https://github.com/dgroup/c","description":"xxx","fork":false,"url":"https://api.github.com/repos/dgroup/c","forks_url":"https://api.github.com/repos/dgroup/c/forks","keys_url":"https://api.github.com/repos/dgroup/c/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dgroup/c/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dgroup/c/teams","hooks_url":"https://api.github.com/repos/dgroup/c/hooks","issue_events_url":"https://api.github.com/repos/dgroup/c/issues/events{/number}","events_url":"https://api.github.com/repos/dgroup/c/events","assignees_url":"https://api.github.com/repos/dgroup/c/assignees{/user}","branches_url":"https://api.github.com/repos/dgroup/c/branches{/branch}","tags_url":"https://api.github.com/repos/dgroup/c/tags","blobs_url":"https://api.github.com/repos/dgroup/c/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dgroup/c/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dgroup/c/git/refs{/sha}","trees_url":"https://api.github.com/repos/dgroup/c/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dgroup/c/statuses/{sha}","languages_url":"https://api.github.com/repos/dgroup/c/languages","stargazers_url":"https://api.github.com/repos/dgroup/c/stargazers","contributors_url":"https://api.github.com/repos/dgroup/c/contributors","subscribers_url":"https://api.github.com/repos/dgroup/c/subscribers","subscription_url":"https://api.github.com/repos/dgroup/c/subscription","commits_url":"https://api.github.com/repos/dgroup/c/commits{/sha}","git_commits_url":"https://api.github.com/repos/dgroup/c/git/commits{/sha}","comments_url":"https://api.github.com/repos/dgroup/c/comments{/number}","issue_comment_url":"https://api.github.com/repos/dgroup/c/issues/comments{/number}","contents_url":"https://api.github.com/repos/dgroup/c/contents/{+path}","compare_url":"https://api.github.com/repos/dgroup/c/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dgroup/c/merges","archive_url":"https://api.github.com/repos/dgroup/c/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dgroup/c/downloads","issues_url":"https://api.github.com/repos/dgroup/c/issues{/number}","pulls_url":"https://api.github.com/repos/dgroup/c/pulls{/number}","milestones_url":"https://api.github.com/repos/dgroup/c/milestones{/number}","notifications_url":"https://api.github.com/repos/dgroup/c/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dgroup/c/labels{/name}","releases_url":"https://api.github.com/repos/dgroup/c/releases{/id}","deployments_url":"https://api.github.com/repos/dgroup/c/deployments","created_at":"2019-12-01T14:56:52Z","updated_at":"2019-12-01T14:56:52Z","pushed_at":"2019-12-01T14:56:53Z","git_url":"git://github.com/dgroup/c.git","ssh_url":"[email protected]:dgroup/c.git","clone_url":"https://github.com/dgroup/c.git","svn_url":"https://github.com/dgroup/c","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"is_template":false,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"template_repository":null,"network_count":0,"subscribers_count":1}
Github repository c has been created
[create] failed to sync git repo: exit status 128

The SSH key was generated and imported to ssh-agent in accordance with https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

The gitstrap template is available here
https://raw.githubusercontent.com/dgroup/gitstrap-templates/master/dgroup-eo-readme.md

Automate repository wiki update

It will be helpful to use Github action to push changes to wiki from some directory in repository.
This will make it possible to create and review PRs to wiki.

Patch command

Let's introduce a new command patch: it'll update an existing remote resource without downloading the full spec file. It can accept patch file or patch statements. For patch command it automatically create spec in memory, update it using patch file or statements and modify remote resources according to these changes.

Patch file provides yaml representation of fields that should be updated, e.g. gitstrap patch -f repo.yml g4s8/gitstrap with repo.yml file's content:

spec:
  description: "New repository description"

will change repository description of g4s8/gitstrap repo.

Patch statements can modify specs without editing file. Each statement should be valid YAML document, it should accept one-line documents. E.g. gitstrap patch -s 'spec: { visibility: private }' g4s8/gitstrap changes visibility of repository to private. Patch command can accept one or more statements at once, and one or more changes in one statement: e.g.

gitstrap patch \
  -s 'spec: { visibility: private, license: MIT }' \
  -s 'spec: { features: [issues, pages] }' \
  g4s8/gitstrap

Repo name from $PWD

Make name attribute optional, use current directory name if name is not present.
E.g. if gistrap was called from directory /home/user/projects/myrepo and .gitstrap.yaml doesn't have name attribute, we should call repo myrepo.

Brew Install doesn't work

No available formula or cask with the name "g4s8/.tap/gitstrap". Did you mean g4s8/.tap/wts?
No available formula or cask with the name "g4s8/.tap/wts". Did you mean g4s8/.tap/gistrap?

Can't read repository name from $PWD

When I run gitstrap create without .gitstrap.github.repo.name field in config file, I'm getting error:

{Resource:Repository Field:name Code:custom Message:name is too short (minimum is 1 character)}]

Full log of gitstrap -accept -debug create and .gitstrap.yaml config:

---
gitstrap:
    version: v1
    github:
        repo:
            description: "test"

log:

strap = create={ctx={debug=true, cfg=&{Gitstrap:0xc000012700}}}
2019/10/03 20:34:07 [GH] >>> GET https://api.github.com/user
2019/10/03 20:34:07 [GH] https://api.github.com/user <<< 200
2019/10/03 20:34:07 {"login":"g4s8"...}
RUN: as g4s8 options = map[accept:yes]
Looking up for repo g4s8/
2019/10/03 20:34:07 [GH] >>> GET https://api.github.com/repos/g4s8/
2019/10/03 20:34:07 [GH] https://api.github.com/repos/g4s8/ <<< 404
2019/10/03 20:34:07 {"message":"Not Found","documentation_url":"https://developer.github.com/v3"}
creating repo: g4s8/
        github.Repository{Name:"", Description:"test"}
2019/10/03 20:34:07 [GH] >>> POST https://api.github.com/user/repos
2019/10/03 20:34:07 {"name":"","description":"test"}
2019/10/03 20:34:08 [GH] https://api.github.com/user/repos <<< 422
2019/10/03 20:34:08 {"message":"Repository creation failed.","errors":[{"resource":"Repository","code":"missing_field","field":"name"},{"resource":"Repository","code":"custom","field":"name","message":"name is too short (minimum is 1 character)"}],"documentation_url":"https://developer.github.com/v3/repos/#create"}
[create] failed to create github repo: failed to create repo: POST https://api.github.com/user/repos: 422 Repository creation failed. [{Resource:Repository Field:name Code:missing_field Message:} {Resource:Repository Field:name Code:custom Message:name is too short (minimum is 1 character)}]

Reading repo name from $PWD was implemented in #14 ticket, but it seems it was broken.

Edit collaborators in repo spec

Update collaborators in Repository specification on apply or create command. Now it's not clear how to edit collaborator permissions or specify it for non-organization repository.
Parent #46

v2.2

New version 2.2:

  • feature(delete): delete repo command
  • refactoring(pagination): implemented pagination utils
  • docs(protections): added branch protection spec to wiki
  • fix(protections): protection ToGithub and FromGithub fixed
  • feature(protections): implemented protection apply and delete commands (#71)
  • deps: bump github.com/urfave/cli/v2 from 2.1.1 to 2.3.0 (#69)
  • ci: fixed dependabot config
  • docs(teams): Added wiki documentation for teams (#68)
  • ci: Added Github actcion to update wiki (#67)
  • feature(teams): Implemented apply and delete team commands

Unable to apply for new repo

When creating a new repository with apply command, gitstrap fails with error: 404: repository doesn't exist, while it's still possible to create repo using same specification file with create command. The gitstrap should create a new repository with apply if it doesn't exist.

Branch protection rules

Add repository branch protection rules:

  • Specification
  • Get command
  • Apply command
  • Delete command
  • Wiki pages

v2.0

Let's reimplement this tool and make it more configurable

Unable to create new repo

New repository from spec can not be created if owner in metadata is the same user as token's user.

Templates url

Fetch templates from network using http.
Add some useful templates to this repository.

Generate link for create token with all preferences if the --token not provided

Is your feature request related to a problem? Please describe.
In a project directory if I ran the command gitstrap create without --token the

'GitHub token neither given as a flag, nor found in /home/nizar/.config/gitstrap/github_token.tx'

Describe the solution you'd like
Instead of this error message , create link somthing like :
https://github.com/settings/tokens/new?scopes=repo&description=gitstrap+on+99650139dc08+2019-11-08+1635
for which is redirect the user and complete the --token registration, after that DEV can past the token which created and it will stored on config.

.goreleaser.yml:6-9: Build date is missing. Let's add...

The puzzle 4-dc1e5699 from #4 has to be resolved:

# @todo #4:15min Build date is missing.
# Let's add build date in ISO timestamp format
# to environment variables from travis deploy script
# to use it here as `main.buildDate` X ldflag.

The puzzle was created by @g4s8 on 05-Jan-19.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Dead code with checking error

gitstrap\github\repo_delete.go

Check err on nil twice

        name, err := r.name()
	if err != nil {
		return err
	}
	owner := ctx.Owner()
	if err != nil {
		return err
	}

gitstrap.go:272-273: Extract name resolution logic and...

The puzzle 9-5fb1349f from #9 has to be resolved:

gitstrap/gitstrap.go

Lines 272 to 273 in 575aff7

// @todo #9:30m/DEV Extract name resolution logic
// and repo lookup logic below into separate functions.

The puzzle was created by @vassilevsky on 24-Jun-19.

Estimate: 30 minutes, role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Refactoring

Split main file gitstrap.go into few smaller files

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.