Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Today's sync bug #970

@ewels

Description

@ewels

sync_log_dualrnaseq.zip

$   nf-core --log-file sync_log_dualrnaseq.txt sync nf-core/dualrnaseq --from-branch dev --pull-request --username nf-core-bot --repository nf-core/dualrnaseq

                                          ,--./,-.
          ___     __   __   __   ___     /,-._.--~\
    |\ | |__  __ /  ` /  \ |__) |__         }  {
    | \| |       \__, \__/ |  \ |___     \`-._,-`-,
                                          `._,._,'

    nf-core/tools version 1.13.3



INFO     Pipeline directory:                                          sync.py:86
         /home/runner/work/tools/tools/nf-core/dualrnaseq                       
INFO     Using branch 'dev' to fetch workflow variables               sync.py:88
INFO     Will attempt to automatically create a pull request          sync.py:90
INFO     Original pipeline repository branch is 'dev'                sync.py:142
INFO     Deleting all files in 'TEMPLATE' branch                     sync.py:198
INFO     Making a new template pipeline using pipeline variables     sync.py:216
INFO     Committed changes to 'TEMPLATE' branch                      sync.py:242
INFO     Pushing TEMPLATE branch to remote: 'dualrnaseq'             sync.py:252
INFO     Checking out merge base branch                              sync.py:280
         'nf-core-template-merge-1.13.3'                                        
INFO     Pushing 'nf-core-template-merge-1.13.3' branch to remote    sync.py:288
INFO     Submitting a pull request via the GitHub API                sync.py:301
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /opt/hostedtoolcache/Python/3.8.8/x64/bin/nf-core:8 in <module>              │
│                                                                              │
│   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])     │
│ ❱ 8 │   sys.exit(run_nf_core())                                              │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/nf_core/__ │
│ main__.py:57 in run_nf_core                                                  │
│                                                                              │
│    56 │   # Lanch the click cli                                              │
│ ❱  57 │   nf_core_cli()                                                      │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/click/core │
│ .py:829 in __call__                                                          │
│                                                                              │
│    828 │   │   """Alias for :meth:`main`."""                                 │
│ ❱  829 │   │   return self.main(*args, **kwargs)                             │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/click/core │
│ .py:782 in main                                                              │
│                                                                              │
│    781 │   │   │   │   with self.make_context(prog_name, args, **extra) as c │
│ ❱  782 │   │   │   │   │   rv = self.invoke(ctx)                             │
│    783 │   │   │   │   │   if not standalone_mode:                           │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/click/core │
│ .py:1259 in invoke                                                           │
│                                                                              │
│   1258 │   │   │   │   with sub_ctx:                                         │
│ ❱ 1259 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/click/core │
│ .py:1066 in invoke                                                           │
│                                                                              │
│   1065 │   │   if self.callback is not None:                                 │
│ ❱ 1066 │   │   │   return ctx.invoke(self.callback, **ctx.params)            │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/click/core │
│ .py:610 in invoke                                                            │
│                                                                              │
│    609 │   │   │   with ctx:                                                 │
│ ❱  610 │   │   │   │   return callback(*args, **kwargs)                      │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/nf_core/__ │
│ main__.py:664 in sync                                                        │
│                                                                              │
│   663 │   try:                                                               │
│ ❱ 664 │   │   sync_obj.sync()                                                │
│   665 │   except (nf_core.sync.SyncException, nf_core.sync.PullRequestExcept │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/nf_core/sy │
│ nc.py:113 in sync                                                            │
│                                                                              │
│   112 │   │   │   │   self.push_merge_branch()                               │
│ ❱ 113 │   │   │   │   self.make_pull_request()                               │
│   114 │   │   │   │   self.close_open_template_merge_prs()                   │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/site-packages/nf_core/sy │
│ nc.py:349 in make_pull_request                                               │
│                                                                              │
│   348 │   │   │   │   log.debug(f"GitHub API PR failed with 403              │
│       error:\n{returned_data_prettyprint}\n\n{r.headers}")                   │
│ ❱ 349 │   │   │   │   wait_time = float(re.sub("[^0-9]", "", r.headers.get(" │
│       30)))                                                                  │
│   350 │   │   │   │   log.warning(f"Got 403 code - probably the abuse protec │
│       after {wait_time} seconds..")                                          │
│                                                                              │
│ /opt/hostedtoolcache/Python/3.8.8/x64/lib/python3.8/re.py:210 in sub         │
│                                                                              │
│   209 │   a replacement string to be used."""                                │
│ ❱ 210 │   return _compile(pattern, flags).sub(repl, string, count)           │
╰──────────────────────────────────────────────────────────────────────────────╯
TypeError: expected string or bytes-like object
Error: Process completed with exit code 1.

Verbose log:

[2021-03-25 18:17:33,223] nf_core.sync         [INFO   ]  Submitting a pull request via the GitHub API
[2021-03-25 18:17:33,577] nf_core.sync         [DEBUG  ]  GitHub API PR failed with 403 error:
{
    "message": "You have triggered an abuse detection mechanism and have been temporarily blocked from content creation. Please retry your request again later.",
    "documentation_url": "https://docs.github.com/overview/resources-in-the-rest-api#abuse-rate-limits"
}

{'Server': 'GitHub.com', 'Date': 'Thu, 25 Mar 2021 18:17:33 GMT', 'Content-Type': 'application/json; charset=utf-8', 'Transfer-Encoding': 'chunked', 'X-OAuth-Scopes': 'repo, workflow', 'X-Accepted-OAuth-Scopes': '', 'X-GitHub-Media-Type': 'github.v3; format=json', 'X-RateLimit-Limit': '5000', 'X-RateLimit-Remaining': '4513', 'X-RateLimit-Reset': '1616696995', 'X-RateLimit-Used': '487', 'Access-Control-Expose-Headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset', 'Access-Control-Allow-Origin': '*', 'Strict-Transport-Security': 'max-age=31536000; includeSubdomains; preload', 'X-Frame-Options': 'deny', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '0', 'Referrer-Policy': 'origin-when-cross-origin, strict-origin-when-cross-origin', 'Content-Security-Policy': "default-src 'none'", 'Vary': 'Accept-Encoding, Accept, X-Requested-With', 'Content-Encoding': 'gzip', 'X-GitHub-Request-Id': '0480:6787:124C0:36C3E:605CD3BD'}

So looks like I messed up the new regex code in the abuse mechanism loop. I probably should have written a pytest for it.. 🙄

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions