text:
Proxy Authentication with https - 407 - Proxy Credentials not being passed to HTTP CONNECT

Am trying to GET an https website (facebook in the example below), going via a proxy that requires authentication. I'm getting a 407 (authentication required) response code when making the call with rest assured.
Doing the same using firefox and analysing the packet capture in wireshark, I see the following call being made:

The proxy passes this through, and the page is successfully retrieved.
In Rest Assured (v2.9.0) I'm making the following call:
   given().proxy(host("pxy.int.ws.blah.net").withPort(3128).withAuth("user_blah@blah.com","Password1"))
                .log().everything()
                .when().get("https://facebook.com")
                .then().statusCode(200);

and the equivalent CONNECT message being sent is:

(note - no proxy authentication section, despite the withAuth in my call)
The response received is then 407 - "Proxy Authentication Required"
I've tried http calls, and these work fine. I've also tried adding .withScheme('https') to my proxy spec, but this then calls an https:// version of the proxy - which gives me a connection refused. The correct call should be a CONNECT to the http:// proxy, with credentials, to instantiate a tunnel through which secure traffic will then flow.
Is there any way to get this to work? I've tried providing headers etc in my calls, but these seem to be being ignored for the initial CONNECT call!

Thanks for a detailed repor,  looks like be a bug. To be honest we only have tests for with a http proxying and I've not tested https proxying. Are you familiar a free proxy I can use to verify this?

I'll try & get you access to an instance of our project's proxy today [and send via DM], but for future testing we're using squid (Which I believe is free?)
Was also trying to work around it by providing a custom httpclient with the proxy settings configured. When I do the following:
        given()
                .config(RestAssured.config().httpClient(HttpClientConfig.httpClientConfig().httpClientFactory(() -> {
                    DefaultHttpClient client = new DefaultHttpClient();
                    HttpHost proxy = new HttpHost("proxy.int.ws.blah.net", 3128);
                    ConnRouteParams.setDefaultProxy(client.getParams(), proxy);

                    UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("proxy_user_blah@blah.com","Password1");
                    AuthScope scope = new AuthScope("proxy.int.ws.blah.net", 3128);
                    client.getCredentialsProvider().setCredentials(scope, credentials);
                    return client;
                })))
              //.proxy(host("pxy.int.ws.blah.net").withPort(3128).withAuth("proxy_user_blah@blah.com","Password1"))
                .log().everything()
                .when().get("https://facebook.com")
                .then().statusCode(200);

(nb - have commented out the standard proxy spec but left it there for reference) the calls are not going via the proxy any more:
08:54:17.678 [main] INFO  - starting com.smc.tests.web.HttpsTest.instantiationTest_https
Request method:	GET
Request path:	https://facebook.com
Proxy:			<none>
Request params:	<none>
Query params:	<none>
Form params:	<none>
Path params:	<none>
Multiparts:		<none>
Headers:		Accept=*/*
Cookies:		<none>
Body:			<none>
08:54:21.784 [main] INFO  - PASS com.smc.tests.web.HttpsTest.instantiationTest_https

What am I doing wrong, and why isn't RA picking up my custom httpclient?

Out of interest, I've tried making the call directly with HttpClient, and it works as expected:
        DefaultHttpClient client = new DefaultHttpClient();
        HttpHost proxy = new HttpHost("pxy.int.ws.streamshield.net", 3128);
        ConnRouteParams.setDefaultProxy(client.getParams(), proxy);

        UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("user_384364539@wtqt.com", "Password1");
        AuthScope scope = new AuthScope("pxy.int.ws.streamshield.net", 3128);
        client.getCredentialsProvider().setCredentials(scope, credentials);

        HttpGet request = new HttpGet("https://facebook.com");

        HttpResponse response = client.execute(request);

Gives a 200 response, and I can see the correct calls being made in Wireshark:
CONNECT (without proxy-authorization header)
407 response from proxy
CONNECT (WITH proxy-authorization header)
....tunnel formed and http get works as expected.
Using RA, either with or without the .config( shown above I just get the initial CONNECT and the 407 response.

Thanks! The code examples are a great reference. I'll try to see what's going on, but it'll take a couple of days until I find the time to look into it probably.

Cheers Johan - that's great.
Am trying to work around it for now using the HttpClient approach above - is there any way to cast an HttpResponse back into a restassured Response object? A lot of my tests rely on this call returning a com.jayway.restassured.response.Response object!

👍

Ok I think I've managed to fix this now. Took me several hours to figure out why it didn't work. The trouble was that REST Assured implements a custom route selector in order to pick up proxy settings defined as JVM arguments. This resolved the host name to its IP which meant that http client auth didn't match the hostname defined in the ProxySpecification and thus http client didn't provide the authentication details. But I'm not 100% sure why it didn't work before since I didn't use the http client features to send the proxy authorization header. It does now though (which is probably for the better) so I think it should work.
I've now deployed a new snapshot that should address this issue. Please try version 2.9.1-SNAPSHOT after having added the following Maven repository:
<repositories>
        <repository>
            <id>sonatype</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <snapshots />
        </repository>
</repositories>

I'll close the issue for now. Tell me if it doesn't work.

Could you please clarify what should be the maven dependency to be added in the pom

regarding the 2.9.1-SNAPSHOT version that you make reference in your last comment? @johanhaleby
Many thanks

repo: rest-assured/rest-assured


text:
URI::InvalidURIError on endpoints with an underscore

I get the following error:
[1] pry> client = RestClient::Resource.new('http://unusual_host.example.com', headers: { accept: :json })
=> #<RestClient::Resource:0x0000000308d560 @block=nil, @options={:headers=>{:accept=>:json}}, @url="http://unusual_host.example.com">
[2] pry> client.get
URI::InvalidURIError: the scheme http does not accept registry part: unusual_host.example.com (or bad hostname?)
from /local/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/uri/generic.rb:214:in `initialize'

This endpoint is being served from nginx, AFAIK, is a valid domain name even if not a valid hostname?  I'm not clear on the RFC here.  Can someone explain?
Either way, it would be nice to override the default parse behavior.  Is there a way to do that with rest-client?  I tried Addressable, but that did not solve the problem... I'm not clear on how to create a RestClient::Resource using other means.
Thanks!

This is an existing open issue with Ruby core:
https://bugs.ruby-lang.org/issues/8241

Note: here is an unobtrusive workaround by creating a custom parser:
module URI
  DEFAULT_PARSER = Parser.new(:HOSTNAME => "(?:(?:[a-zA-Z\\d](?:[-\\_a-zA-Z\\d]*[a-zA-Z\\d])?)\\.)*(?:[a-zA-Z](?:[-\\_a-zA-Z\\d]*[a-zA-Z\\d])?)\\.?")
end

See my answer: http://stackoverflow.com/a/41048816/555187

source: gharchive/issue

repo: rest-client/rest-client

license: mit

license_type: permissive

license_source: bigquery


text:
restic backup hangs forever most of the times

Output of restic version
restic 0.9.6 (v0.9.6-249-g2c72924f) compiled with go1.14.3 on linux/amd64 but also happens with restic 0.9.6 compiled with go1.13.4 on linux/amd64
How did you run restic exactly?
$ restic --cacert /root/.restic/ca-bundle.pem --cache-dir /home/.cache/restic backup --exclude-caches --one-file-system --exclude /var/log/lastlog -v / /home /var/lib/mysql_binlog
open repository
lock repository
load index files
using parent snapshot a9f3206e
start scan on [/ /home /var/lib/mysql_binlog]
start backup on [/ /home /var/lib/mysql_binlog]

No further output. When invoking with -vv the scanned/backuped files are printed (/var being the last entry), but eventually no further output appears.
Environment:
RESTIC_REPOSITORY=s3:https://<redacted>:9000/<redacted>
RESTIC_PASSWORD=<redacted>
AWS_ACCESS_KEY_ID=<redacted>
AWS_SECRET_ACCESS_KEY=<redacted>

What backend/server/service did you use to store the repository?
S3/Minio in a Docker container: minio/minio:RELEASE.2020-07-13T18-09-56Z - was using an older version before and updated to the latest version.
Expected behavior
Perform a backup and exit with status code 0 after several hours.
Actual behavior
Backups are started once per day. With only a few exceptions the restic process runs "forever" and I killed it every time once it was running for several days. In the past, backups finished after a few hours.
The odd thing is, restic snapshots shows a snapshot was created, but the restic process creating this very snapshot still hasn't finished.
When the process seems to have stalled, strace shows the following (excerpt):

strace -e trace=file -f -p $(pidof restic)
$ strace -e trace=file -f -p $(pidof restic)
strace: Process 1820 attached with 19 threads
[pid  1829] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1826] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1832] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1828] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1991] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1830] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1992] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid 32217] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1826] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1830] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid 17224] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
[pid  1826] --- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=1820, si_uid=0} ---
...

strace -f -p $(pidof restic)
$ strace -f -p $(pidof restic)
strace: Process 1820 attached with 19 threads
[pid 32217] futex(0xc00048ebc8, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid 17224] futex(0xc000101d48, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  3202] futex(0xc000100f48, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1992] futex(0xc00048e148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1991] futex(0xc00006f648, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1990] futex(0xc0001012c8, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1835] epoll_pwait(3,  <unfinished ...>
[pid  1834] futex(0xc0001004c8, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1833] futex(0xc00048e848, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1832] futex(0xc000202148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1830] futex(0xc0001824c8, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1829] futex(0xc0000ee148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1828] futex(0xc000182148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1827] futex(0x1479978, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1826] futex(0xc000100148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1825] futex(0x1479a80, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1824] futex(0xc00006e4c8, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] restart_syscall(<... resuming interrupted restart_syscall ...> <unfinished ...>
[pid  1820] futex(0x144f628, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1835] <... epoll_pwait resumed>[], 128, 0, NULL, 660846458731897) = 0
[pid  1835] epoll_pwait(3,  <unfinished ...>
[pid  1823] <... restart_syscall resumed>) = -1 ETIMEDOUT (Connection timed out)
[pid  1823] futex(0xc000100148, FUTEX_WAKE_PRIVATE, 1) = 1
[pid  1826] <... futex resumed>)        = 0
[pid  1826] futex(0xc00006f648, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  1991] <... futex resumed>)        = 0
[pid  1826] <... futex resumed>)        = 1
[pid  1991] futex(0xc00006f648, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1826] futex(0xc000100148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000}, NULL) = 0
[pid  1823] futex(0x144eb78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=9, tv_nsec=998351272} <unfinished ...>
[pid  1835] <... epoll_pwait resumed>[], 128, 4400, NULL, 0) = 0
[pid  1835] epoll_pwait(3, [], 128, 0, NULL, 4217995752368244) = 0
[pid  1835] epoll_pwait(3,  <unfinished ...>
[pid  1823] <... futex resumed>)        = -1 ETIMEDOUT (Connection timed out)
[pid  1823] futex(0xc000100148, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  1826] <... futex resumed>)        = 0
[pid  1823] <... futex resumed>)        = 1
[pid  1826] futex(0xc00006f648, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  1991] <... futex resumed>)        = 0
[pid  1826] <... futex resumed>)        = 1
[pid  1991] futex(0xc00006f648, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1826] futex(0xc000100148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1823] futex(0x144eb78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=9, tv_nsec=999120646} <unfinished ...>
[pid  1835] <... epoll_pwait resumed>[], 128, 9976, NULL, 0) = 0
[pid  1835] epoll_pwait(3, [], 128, 0, NULL, 4193702090911558) = 0
[pid  1835] epoll_pwait(3,  <unfinished ...>
[pid  1823] <... futex resumed>)        = -1 ETIMEDOUT (Connection timed out)
[pid  1823] futex(0xc000100148, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  1826] <... futex resumed>)        = 0
[pid  1823] <... futex resumed>)        = 1
[pid  1826] futex(0xc00006f648, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1991] <... futex resumed>)        = 0
[pid  1826] <... futex resumed>)        = 1
[pid  1991] futex(0xc00006f648, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1826] futex(0xc000100148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1823] futex(0x144eb78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0, tv_nsec=815346751} <unfinished ...>
[pid  1835] <... epoll_pwait resumed>[], 128, 9979, NULL, 0) = 0
[pid  1835] epoll_pwait(3, [], 128, 0, NULL, 4429449491030384) = 0
[pid  1835] epoll_pwait(3,  <unfinished ...>
[pid  1823] <... futex resumed>)        = -1 ETIMEDOUT (Connection timed out)
[pid  1823] futex(0xc000100148, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  1826] <... futex resumed>)        = 0
[pid  1823] <... futex resumed>)        = 1
[pid  1826] futex(0xc00006f648, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1826] <... futex resumed>)        = 1
[pid  1991] <... futex resumed>)        = 0
[pid  1991] nanosleep({tv_sec=0, tv_nsec=3000},  <unfinished ...>
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1991] <... nanosleep resumed>NULL) = 0
[pid  1991] futex(0xc00048ebc8, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 32217] <... futex resumed>)        = 0
[pid 32217] futex(0xc00048ebc8, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1991] write(6, "\27\3\3\0\23\315\370\367w\211\302\"\265\25L%\32315\350\262\24\314\266", 24 <unfinished ...>
[pid  1826] futex(0xc000100148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1991] <... write resumed>)        = 24
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1991] futex(0xc000100148, FUTEX_WAKE_PRIVATE, 1) = 1
[pid  1826] <... futex resumed>)        = 0
[pid  1991] epoll_ctl(3, EPOLL_CTL_DEL, 6, 0xc0000a06ac <unfinished ...>
[pid  1826] futex(0xc000100148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1991] <... epoll_ctl resumed>)    = 0
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1991] close(6)                    = 0
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1835] <... epoll_pwait resumed>[], 128, 769, NULL, 0) = 0
[pid  1991] futex(0xc000100148, FUTEX_WAKE_PRIVATE, 1) = 1
[pid  1826] <... futex resumed>)        = 0
[pid  1826] nanosleep({tv_sec=0, tv_nsec=3000},  <unfinished ...>
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1991] futex(0xc00006f648, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1826] <... nanosleep resumed>NULL) = 0
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1823] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid  1826] futex(0xc000100148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  1823] <... nanosleep resumed>NULL) = 0
[pid  1823] futex(0x144eb78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=9, tv_nsec=179382066} <unfinished ...>
[pid  1835] epoll_pwait(3, [], 128, 0, NULL, 2516917869055365) = 0
[pid  1835] epoll_pwait(3,

Steps to reproduce the behavior
As far as I can tell the issue is not reliable reproducible. It appears with 0.9.6 and recent beta builds.
I've also run a debug build of restic (restic 0.9.6 compiled with go1.14 on linux/amd64) and while this build takes significantly longer to perform a backup and fills the DEBUG_LOG file, it worked every single time (or maybe I just haven't tried often enough?).
Do you have any idea what may have caused this?
No, but since we've deployed restic on hundreds of machines with basically identical configuration I suspect this single machine is the root cause. Unfortunately I have no clue what this might be and to the best of my knowledge the machine in question also does not differ significantly from others.
Do you have an idea how to solve the issue?
Well, no. What I've tried so far:

rebooted machine and fsck'ed all filesystems (ext4, xfs)
tried different restic builds and a debug build of version 0.9.6
backed up to a new repository

Did restic help you today? Did it make you happy in any way?
restic really has proven itself over time and I'm looking forward for future improvements. Thank you everyone who is contributing lately and keeps the project alive!

Thanks a lot for such a thorough report!

Is there any version where you could not reproduce the problem at all? Did you try 0.9.5?

When you say debug, did you do this and what did the last stuff in the debug log yield in that case? I'm hoping there's something in there that at least tells us the very last thing restic did before things stalled. It's interesting you say that it did create a snapshot.

Did you try another type of repository (e.g. a local disk)? I'm asking because it would be nice to rule out/in the backend being involved.

Thank you @rawtaz for your quick reply :+1:
I'm puzzled. I tried 0.9.5 and this version worked like a charm. So I spent the last couple of days with git bisect and created restic builds with commits between 0.9.5 and 0.9.6 to reproduce the error, but to no avail. At this point I tend even more to believe this not at all caused by restic itself.
I'm closing this for now since I'm running out of ideas. Maybe the problem re-occurs and I can do further troubleshooting.
Thank you again for your assistance!

It happened again after the update to 0.10.0. Updated the binary, started a backup and it goes forever / stalls.
I observed network traffic between the backing up machine and the MinIO server and restic scanned all files (seen with strace). After all files were scanned the process and its threads are basically stalled, the strace output is the same as provided in my initial report.
On normal backup runs restic would output several lines uploading intermediate index [..], but those are missing. No output after start backup on [/ /home /var/lib/mysql_binlog].
Could anybody familiar with the restic internals think of a constellation which might lead to such behaviour?
It basically looks like a deadlock to me, will try to reproduce with a debug build next.

uploading intermediate index [..]

The intermediate index uploading was rewritten and this message no longer exists. You could send restic a SIGABRT signal in which case Go aborts the program execution and prints a stack trace.

@MichaelEischer thank you for the hint about the removed message, that explains a lot :)
I sent kill -6 to the restic process and this is the output:

restic strack strace
SIGABRT: abort
PC=0x46ce81 m=0 sigcode=0

goroutine 0 [idle]:
runtime.futex(0x158c588, 0x80, 0x0, 0x0, 0x0, 0x46b001, 0xc0003b1080, 0xc03f633970, 0x7fffeafcc790, 0x40beff, ...)
        /usr/local/go/src/runtime/sys_linux_amd64.s:587 +0x21
runtime.futexsleep(0x158c588, 0x0, 0xffffffffffffffff)
        /usr/local/go/src/runtime/os_linux.go:45 +0x46
runtime.notesleep(0x158c588)
        /usr/local/go/src/runtime/lock_futex.go:159 +0x9f
runtime.stopm()
        /usr/local/go/src/runtime/proc.go:1910 +0xc5
runtime.exitsyscall0(0xc0003b1080)
        /usr/local/go/src/runtime/proc.go:3401 +0x11d
runtime.mcall(0x0)
        /usr/local/go/src/runtime/asm_amd64.s:318 +0x5b

goroutine 1 [chan receive, 6324 minutes]:
gopkg.in/tomb%2ev2.(*Tomb).Wait(0xc0001bc050, 0x0, 0x0)
        /home/build/go/pkg/mod/gopkg.in/tomb.v2@v2.0.0-20161208151619-d5d1b5820637/tomb.go:126 +0x4a
main.runBackup(0x0, 0x0, 0x0, 0xc0003a8960, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, ...)
        /restic/cmd/restic/cmd_backup.go:616 +0x1156
main.glob..func2(0x1579c60, 0xc0000980d0, 0x4, 0xd, 0x0, 0x0)
        /restic/cmd/restic/cmd_backup.go:70 +0x1ba
github.com/spf13/cobra.(*Command).execute(0x1579c60, 0xc0001adee0, 0xd, 0xd, 0x1579c60, 0xc0001adee0)
        /home/build/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:842 +0x47c
github.com/spf13/cobra.(*Command).ExecuteC(0x157ce40, 0xc0003a8870, 0x2, 0x8)
        /home/build/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:950 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
        /home/build/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:887
main.main()
        /restic/cmd/restic/main.go:86 +0x3f

goroutine 6 [chan receive, 6401 minutes]:
github.com/restic/restic/internal/restic.init.0.func1.1()
        /restic/internal/restic/lock.go:258 +0xb3
created by github.com/restic/restic/internal/restic.init.0.func1
        /restic/internal/restic/lock.go:255 +0x35

goroutine 17 [syscall, 6401 minutes]:
os/signal.signal_recv(0x0)
        /usr/local/go/src/runtime/sigqueue.go:147 +0x9d
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:23 +0x25
created by os/signal.Notify.func1.1
        /usr/local/go/src/os/signal/signal.go:150 +0x45

goroutine 18 [chan receive, 6401 minutes]:
github.com/restic/restic/internal/restic.init.2.func1(0xc00008c300)
        /restic/internal/restic/progress_unix.go:17 +0x65
created by github.com/restic/restic/internal/restic.init.2
        /restic/internal/restic/progress_unix.go:16 +0xab

goroutine 12 [select]:
go.opencensus.io/stats/view.(*worker).start(0xc0002b0080)
        /home/build/go/pkg/mod/go.opencensus.io@v0.22.4/stats/view/worker.go:276 +0x105
created by go.opencensus.io/stats/view.init.0
        /home/build/go/pkg/mod/go.opencensus.io@v0.22.4/stats/view/worker.go:34 +0x68

goroutine 13 [chan receive, 6401 minutes]:
main.CleanupHandler(0xc000114300)
        /restic/cmd/restic/cleanup.go:59 +0x4c
created by main.init.0
        /restic/cmd/restic/cleanup.go:21 +0x67

goroutine 23 [select, 6324 minutes]:
github.com/restic/restic/internal/ui/termstatus.(*Terminal).runWithoutStatus(0xc000194660, 0x103ef00, 0xc0001b6000)
        /restic/internal/ui/termstatus/status.go:181 +0x11b
github.com/restic/restic/internal/ui/termstatus.(*Terminal).Run(0xc000194660, 0x103ef00, 0xc0001b6000)
        /restic/internal/ui/termstatus/status.go:89 +0xac
main.glob..func2.1(0x438405, 0x1522dc0)
        /restic/cmd/restic/cmd_backup.go:68 +0x6d
gopkg.in/tomb%2ev2.(*Tomb).run(0xc0001bc000, 0xc00044c4a0)
        /home/build/go/pkg/mod/gopkg.in/tomb.v2@v2.0.0-20161208151619-d5d1b5820637/tomb.go:163 +0x38
created by gopkg.in/tomb%2ev2.(*Tomb).Go
        /home/build/go/pkg/mod/gopkg.in/tomb.v2@v2.0.0-20161208151619-d5d1b5820637/tomb.go:159 +0xbc

goroutine 16 [select]:
main.refreshLocks(0x158a8a0, 0xc000044840)
        /restic/cmd/restic/lock.go:70 +0x1c5
created by main.lockRepository
        /restic/cmd/restic/lock.go:47 +0x26c

goroutine 30 [select, 6324 minutes]:
github.com/restic/restic/internal/ui.(*Backup).ReportTotal(0xc000099ad0, 0xc045abbf10, 0x6c, 0x14a7a17, 0x31c49b, 0x17fc5, 0x420c76160ee)
        /restic/internal/ui/backup.go:343 +0xf7
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a7a17, 0x31c49b, 0x17fc5, 0x420c76160ee, 0xc045abbf10, 0x6c, 0x14a7a17, ...)
        /restic/internal/archiver/scanner.go:107 +0x1f0
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a7a17, 0x31c49a, 0x17fc5, 0x420c76160ee, 0xc045abbd50, 0x63, 0x14a7a14, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a7a14, 0x31c499, 0x17fc5, 0x420c7613322, 0xc07da9b080, 0x5f, 0x0, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a79d8, 0x31c493, 0x17fc5, 0x420c75b88c7, 0xc07dc1b980, 0x58, 0x0, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a79d8, 0x31c493, 0x17fc5, 0x420c75b88c7, 0xc068d05200, 0x52, 0x14a79d8, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a79d8, 0x31c493, 0x17fc5, 0x420c75b88c7, 0xc0641a7540, 0x4c, 0x0, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a78e5, 0x31c462, 0x17fc5, 0x420c74858f6, 0xc08ba61f40, 0x48, 0x14a78e5, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a78e5, 0x31c462, 0x17fc5, 0x420c74858f6, 0xc06655cb40, 0x42, 0x14a78cf, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a78cf, 0x31c45c, 0x17fc5, 0x420c7478406, 0xc05ff9f9c0, 0x3c, 0x14a72ff, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a72ff, 0x31c36c, 0x17fc5, 0x420c55e20ff, 0xc0474db2c0, 0x33, 0x14a6c73, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x14a6c73, 0x31c1ca, 0x17fc5, 0x420c39ae78a, 0xc069d46fc0, 0x26, 0x149b6a9, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x149b6a9, 0x31a7e0, 0x17fc5, 0x420117f4ad5, 0xc049ddef40, 0x19, 0x1482370, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x1482370, 0x31686b, 0x17fc4, 0x417b3041f2a, 0xc048a66870, 0xd, 0x148179e, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0x148179e, 0x3167e3, 0x17fb1, 0x417b266f452, 0x7fffeafccfb9, 0x5, 0x120ee26, ...)
        /restic/internal/archiver/scanner.go:97 +0x4a5
github.com/restic/restic/internal/archiver.(*Scanner).Scan(0xc000133d70, 0x103ef00, 0xc0002b4580, 0xc00009cfc0, 0x4, 0x4, 0xc00011fed0, 0x2)
        /restic/internal/archiver/scanner.go:50 +0x16f
main.runBackup.func5(0xf56790, 0x0)
        /restic/cmd/restic/cmd_backup.go:576 +0x9a
gopkg.in/tomb%2ev2.(*Tomb).run(0xc0001bc050, 0xc009b93800)
        /home/build/go/pkg/mod/gopkg.in/tomb.v2@v2.0.0-20161208151619-d5d1b5820637/tomb.go:163 +0x38
created by gopkg.in/tomb%2ev2.(*Tomb).Go
        /home/build/go/pkg/mod/gopkg.in/tomb.v2@v2.0.0-20161208151619-d5d1b5820637/tomb.go:159 +0xbc

goroutine 16387 [select]:
net/http.(*persistConn).writeLoop(0xc0000b9200)
        /usr/local/go/src/net/http/transport.go:2340 +0x11c
created by net/http.(*Transport).dialConn
        /usr/local/go/src/net/http/transport.go:1709 +0xcdc

goroutine 16386 [IO wait]:
internal/poll.runtime_pollWait(0x7f516825dc50, 0x72, 0x102af80)
        /usr/local/go/src/runtime/netpoll.go:220 +0x55
internal/poll.(*pollDesc).wait(0xc000196218, 0x72, 0xc0000c6900, 0x801, 0x801)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000196200, 0xc0000c6900, 0x801, 0x801, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:159 +0x1b1
net.(*netFD).Read(0xc000196200, 0xc0000c6900, 0x801, 0x801, 0x203000, 0x626abb, 0xc00019e160)
        /usr/local/go/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000126058, 0xc0000c6900, 0x801, 0x801, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc000310020, 0xc0000c6900, 0x801, 0x801, 0x118, 0x7fc, 0xc0003e6668)
        /usr/local/go/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc00019e280, 0x1027a80, 0xc000310020, 0x40b3e5, 0xde7240, 0xed28a0)
        /usr/local/go/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc00019e000, 0x1029720, 0xc000126058, 0x5, 0xc000126058, 0x107)
        /usr/local/go/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc00019e000, 0x0, 0x0, 0xc07d071e00)
        /usr/local/go/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /usr/local/go/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).Read(0xc00019e000, 0xc000321000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/crypto/tls/conn.go:1252 +0x15f
net/http.(*persistConn).Read(0xc0000b9200, 0xc000321000, 0x1000, 0x1000, 0xc0003e6eb0, 0x463d20, 0xc0003e6eb0)
        /usr/local/go/src/net/http/transport.go:1887 +0x77
bufio.(*Reader).fill(0xc06e4117a0)
        /usr/local/go/src/bufio/bufio.go:101 +0x105
bufio.(*Reader).Peek(0xc06e4117a0, 0x1, 0x2, 0x0, 0x0, 0x0, 0xc07d071ce0)
        /usr/local/go/src/bufio/bufio.go:139 +0x4f
net/http.(*persistConn).readLoop(0xc0000b9200)
        /usr/local/go/src/net/http/transport.go:2040 +0x1a8
created by net/http.(*Transport).dialConn
        /usr/local/go/src/net/http/transport.go:1708 +0xcb7

rax    0xca
rbx    0x158c440
rcx    0xffffffffffffffff
rdx    0x0
rdi    0x158c588
rsi    0x80
rbp    0x7fffeafcc758
rsp    0x7fffeafcc710
r8     0x0
r9     0x0
r10    0x0
r11    0x286
r12    0xaee9b5406eee500
r13    0x7222e02500d8785f
r14    0x3ffacbb82c28c98
r15    0x0
rip    0x46ce81
rflags 0x286
cs     0x33
fs     0x0
gs     0x0

@lorenzbausch The stacktrace looks like the backup was cancelled / finished(???) after 77 minutes, at which point the scanner goroutine got stuck while trying to update the backup progress. #2963 should fix the problem displayed in the stacktrace.

@MichaelEischer thank you for your time and bringing up a possible fix, I will test a build containing it :+1:
I have no idea what might cancel or finish restic, we didn't change anything about how we invoke restic for several releases.

authors: MichaelEischer lorenzbausch rawtaz

repo: restic/restic


text:
add zip support to the dump command

What is the purpose of this change? What does it change?
This adds zip compression to the dump command.
restic -r /tmp/a dump -a zip latest ~/music > ~/backups/music.zip
Was the change discussed in an issue or in the forum before?
Yes, this was discussed in https://forum.restic.net/t/restoring-files-directly-into-a-single-compressed-archive/968/13.
Checklist

[x] I have read the Contribution Guidelines
[ ] I have added tests for all changes in this PR
[ ] I have added documentation for the changes (in the manual)
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@604b18a). Click here to learn what that means.
The diff coverage is 1.72%.

@@            Coverage Diff            @@
##             master    #2433   +/-   ##
=========================================
  Coverage          ?   46.49%
=========================================
  Files             ?      174
  Lines             ?    14514
  Branches          ?        0
=========================================
  Hits              ?     6748
  Misses            ?     6766
  Partials          ?     1000

Impacted Files
Coverage Δ

cmd/restic/cmd_dump.go
3.68% <1.72%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 604b18a...b17c1c3. Read the comment docs.

Thanks for your contribution, I'm sorry for the long time you had to wait for feedback. Are you still interested in getting this merged? Can you please rebase on the master branch so we can review the code? Thanks!

Yes, would love to get it merged. I have re-based. Please review. Thanks!

Closing this in favor of #3081.

source: gharchive/pull-request

authors: MichaelEischer brentadamson codecov-io fd0


text:
Adding smokers setup + other lint fixes

Type of PR

[x] Documentation changes
[ ] Code changes
[ ] Test changes
[ ] CI-CD changes
[ ] GitHub Template changes

Purpose of PR

Adding steps to setup smokers
Fixing up MD linter issues and making other small edits

Validation

[ ] Unit tests updated and ran successfully
[x] Update documentation or issue referenced above

Issues Closed or Referenced

Closes #58

@sivamu do we also want to bring in the smoker cron jobs since those seemed pretty useful for testing HPA?

authors: joaquinrz sivamu

repo: retaildevcrews/ngsa

license: MIT

license_source: github-api


text:
Split code into modules

Currently lib.rs is a massive file which makes editing difficult, and can bring certain editors to a crawl.

[ ] Move code from each header into separate module
[x] Split libraries into separate crates
[ ] Get rid of ugly :: everywhere as soon as glob imports aren't broken.

A design plan has been figured out which doesn't depend on recursive imports. However once recursive imports work correctly the code can be cleaned up.

Glob imports will be working correctly in Rust 1.4, so hopefully next year I can begin the transition.

What are the next steps, now that we are well past 1.4?

First I stop procrastinating and land the various PRs that are hanging around in limbo. Then once I'm caught up I experiment with removing :: everywhere.

Actually I think I'd like to move things further into submodules based on the subfolder names so it would be winapi::um::d3d11 for example instead of just winapi::d3d11. This would break any code that refers to the submodules explicitly so I'll have to wait for winapi 0.3 for this change.

Replaced by https://github.com/retep998/winapi-rs/issues/316


text:
--permissions flag missing from cli readme

This tripped me up when running hz serve with a docker rethinkdb
I couldn't figure out how to disable the permissions system until I found this page https://github.com/rethinkdb/horizon#readme and learned of the --permissions flag
That page also mentions that --dev will set the permissions flag.  This is also omitted from the readme.
This PR fixes both documentation issues.

This change is

Thanks! Sorry for the confusion

authors: BrianRosamilia deontologician

repo: rethinkdb/horizon


text:
Better BibTeX startup failed: TypeError: Zotero.ItemPaneManager.registerInfoRow is not a function

Debug log ID
G928WY5Q-refs-euc/6.7.259-7
What happened?
Hello!
An error TypeError: Zotero.ItemPaneManager.registerInfoRow is not a function is raising up at every Zotero startup.
Zotero: 7.0.7 (64-bit)
BBT: 6.7.259

Hi, I opened the same ticket ;)
I checked the code, could it be that the function registerInfoRow was not declared?
Anyway, same ticket #3091

Not a typo.
I'm rolling out a new release that is downward compatible with missing functionality to prevent this problem, but the problem is solved by upgrading to Zotero 7.0.10.

Thank you. Where can we find the 7.0.10 version?

Help -> Check for upgrades

authors: erydit hcharp retorquere

repo: retorquere/zotero-better-bibtex


text:
Dependency mmtools not found

Hi, I've just heard your talk on youtube and I would like to try your game, but it gives me a compilation error about that dependency.
¿How could I do for launch the game?
Thanks in advantage

The game is available at https://more-mountains.itch.io/soccer-racing

authors: LordOkami reunono


text:
[WIP] Project Areas, Week of 2020-05-26

Background
As of Friday afternoon, 2020-05-24, we plan to run a dual track for our 1-week sprint efforts next week:

Track A: React Native Contact Tracing App

Prototype an Open Source Contact Tracing App in order to validate/invalidate the hypotheses  that such an app is impactful in the automation, securely and anonymously, the contact tracing process.
Even though we plan to leverage React Native, we'll limit our scope to iOS for this one-week effort.

Track B: Customer research and design sprint:

Connect with the populations being hit hardest (because they tend to not have feature-rich smartphones and do not tend to download apps even if they do).
Generate ideas based on the research.
Ideation may confirm/deny/re-mix early hunches re: non-app based interface (SMS, web-based chatbot, or other).
Outcome may be a design prototype for an agreed-upon next interface idea or maybe even some functional code to address this next interface.

Track A
Infrastructure
While @jwietelmann and @grossvogel are getting a headstart on our Moondog-powered Kubernetes cluster, we should anticipate additional work in support of the application.
Backend
We plan to build the backend with an Elixir/Phoenix powered API.
Native Mobile Frontend
We plan to limit our scope for the week to iOS and remove Android to keep things simple and focused. Even so, we'll leverage React Native so that we can more easily bring Android along for the ride in subsequent iterations.
Marketing / Web
We'll need some mechanism for a public-facing website to communicate the project's goals and educate potential users, with the ultimate goal of driving adoption of the mobile app.
User Research and Testing
Create plans for testing our mobile app and/or the public-facing website with representative end users. This may include drafting interview / testing scripts; recruitment of participants; and more.
Track B
Customer Research and Design Sprint / Design Studios
Connect with experts and with the populations being hit hardest (because they tend to not have feature-rich smartphones and do not tend to download apps even if they do) to help determine how we might create the most impactful solution, regardless of the technology involved.

This Issue has served its purpose (was primarily for planning and thought organization).
Closing.

repo: revelry-foundation/nightingale


text:
Fix misspellings

connects to #253

:tada: This PR is included in version 4.0.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: blazebarsamian revelry-integrations

repo: revelrylabs/harmonium


text:
Remove Label.js component

Hello ✌ first pull request, glad to be contributing
#100

[x] remove Label component

Thanks!

authors: konradgnat prehnRA

repo: revelrylabs/possum


text:
KBS2 - Update Key.rei to match my update on Key.re

I won't have to change carrot this time --'

Don't hesitate to add values you might need later on

repo: revery-ui/revery


text:
read creditcard

its possible read credit card whith iso7816emv?

Any updates?

Yes, it should work with any iso7816 compliant NFC cards.

@MaxWilliamJF @deividnn Did you end up getting credit card working with this library?

is there any way to get the credit card number?

Yes, it should work with any iso7816 compliant NFC cards.

How?

Any updates on this one?
I am a little lost...
I succesfully scan the tag of the card, but I cannot understand how to get i.e. cardnumber

@whitedogg13 how can I read credit card ?
I tried the example project but it's didn't work.
Can you give an example.

I am also interested in this feature :)

@gabrielmoncea it's awesome, please feel free to submit a PR! Since most of this feature relates to APDU passing using IsoDep NfcTech, maybe we can consider start this from an example.

I would love to help. Can I do this only through JavaScript?

@gabrielmoncea sure, I believe it's possible!

@whitedogg13 I would also love to help with this feature! A tutorial seems to be in demand, and I would love to implement this feature in an app I am designing.

Has there been any solution to this ?

@MaxWilliamJF @deividnn Did you end up getting credit card reading working with this library?

No =(

This seems to be a commonly requested implementation of this library. Has there been any solution to this?

Visa example
"node-emv": "^1.0.22"
"react-native-nfc-manager": "^3.14.2"
import NfcManager, { NfcTech } from 'react-native-nfc-manager'
import emv from 'node-emv'

readVisaCreditCard = async () => {
	try {
		NfcManager.cancelTechnologyRequest()
    } catch (error) { }

	try {
		const commands = [
			"00A404000E325041592E5359532E444446303100",
			"00A4040007A00000000310100E",
			"80A800002383212800000000000000000000000000000002500000000000097820052600E8DA935200"
		]

		await NfcManager.requestTechnology([NfcTech.IsoDep])

		const responses = []

		for (let i = 0; i < commands.length; i++) {
			const resp = await NfcManager.isoDepHandler.transceive(this.toByteArray(commands[i]))
			responses.push(resp)
		}

		if (responses && responses.length > 2) {
			const r = await this.getEmvInfo(this.toHexString(responses[2]))
			if (r) {
				const cardInfo = this.getCardInfoVisa(r)
				if (cardInfo) {
					return {
						card: cardInfo.card,
						exp: cardInfo.exp
					}
				} else {
					return null
				}
			} else {
				return null
			}
		} else {
			return null
		}
    } catch (error) {
		return null
    } finally {
		NfcManager.cancelTechnologyRequest()
	}
}

getEmvInfo = (info) => {
    return new Promise((resolve) => {
		emv.describe(info, (data) => {
			if (data) {
				resolve(data)
			} else {
				resolve(null)
			}
		})
    })
}

toByteArray = (text) => {
	return text.match(/.{1,2}/g).map(b => {
		return parseInt(b, 16)
	})
}

toHexString = (byteArr) => {
    return byteArr.reduce((acc, byte) => {
		return (
			acc + ('00' + byte.toString(16).toUpperCase()).slice(-2)
		)
    }, '')
}

getCardInfoVisa = (responses) => {
    let res
    let end = false
    for (let i = 0; i < responses.length; i++) {
		const r = responses[i]
		if (r.tag === "77" && r.value && r.value.length > 0) {
			for (let j = 0; j < r.value.length; j++) {
				const e = r.value[j]
				if (e.tag === "57" && e.value) {
					const parts = e.value.split("D")
					if (parts.length > 1) {
						res = {
							card: parts[0],
							exp: parts[1].substring(0, 4)
						}
						end = true
					}
				}

				if (end) {
					break
				}
			}

			if (end) {
				break
			}
		}
    }
    return res
}

Mastercard example
`
import NfcManager, { NfcTech } from 'react-native-nfc-manager'
import emv from 'node-emv'
readMasterCardCreditCard = async () => {
try {
NfcManager.cancelTechnologyRequest()
} catch (error) { }
try {
	const commands = [
		"00A4040007A00000000410100E",
		"80A8000002830000",
		"00B2011400",
		"00B2010C00",
		"00B2012400",
		"00B2022400"
	]

	await NfcManager.requestTechnology([NfcTech.IsoDep])

	const responses = []

	for (let i = 0; i < commands.length; i++) {
		const resp = await NfcManager.isoDepHandler.transceive(this.toByteArray(commands[i]))
		responses.push(resp)
	}

	if (responses && responses.length > 3) {
		const r = await this.getEmvInfo(this.toHexString(responses[3]))
		if (r) {
			const cardInfo = this.getCardInfoMasterCard(r)
			if (cardInfo) {
				return {
					card: cardInfo.card,
					exp: cardInfo.exp
				}
			} else {
				return null
			}
		} else {
			return null
		}
	} else {
		return null
	}
} catch (error) {
	return null
} finally {
	NfcManager.cancelTechnologyRequest()
}

}
getEmvInfo = (info) => {
return new Promise((resolve) => {
emv.describe(info, (data) => {
if (data) {
resolve(data)
} else {
resolve(null)
}
})
})
}
toByteArray = (text) => {
return text.match(/.{1,2}/g).map(b => {
return parseInt(b, 16)
})
}
toHexString = (byteArr) => {
return byteArr.reduce((acc, byte) => {
return (
acc + ('00' + byte.toString(16).toUpperCase()).slice(-2)
)
}, '')
}
getCardInfoMasterCard = (responses) => {
let res
let end = false
for (let i = 0; i < responses.length; i++) {
const r = responses[i]
if (r.tag === "70" && r.value && r.value.length > 0) {
for (let j = 0; j < r.value.length; j++) {
const e = r.value[j]
if (e.tag === "5A" && e.value) {
if (!res) {
res = {
card: e.value
}
} else {
res.card = e.value
}
				if (res.card && res.exp) {
					end = true
				}
			}

			if (e.tag === "5F24" && e.value) {
				if (!res) {
					res = {
						exp: e.value
					}
				} else {
					res.exp = e.value
				}

				if (res.card && res.exp) {
					end = true
				}
			}

			if (end) {
				break
			}
		}

		if (end) {
			break
		}
	}
}
return res

}
`

@lmatamoros
can you help me to get  debit card  details for both visa and master I am getting responses like this for debit card
lenHex: 85 lenBin: 10000001 ---> len is more than 1 byte
LOG  length (decimals): 0 offset: 14 - this is for the substring of emv_data
LOG  [{"length": "85", "tag": "69", "value": []}] lllll
LOG  [{"length": "85", "tag": "69", "value": []}] r
LOG  [{"length": "85", "tag": "69", "value": []}]

@lmatamoros please share some ideas
thank you

@lmatamoros  can you help me to get debit card  details for both visa and master i am getting response like this for debit card
lenHex: 82 lenBin: 10000010 ---> len is more than 1 byte
LOG length (decimals): 0 offset: 14 - this is for the substring of emv_data
LOG [{"length": "82", "tag": "6A", "value": []}] r

This is very helpful, thanks for sharing. Just redirecting users from this issue to here - https://github.com/revtel/react-native-nfc-manager/issues/632
Is the techniques here similar to what Stripe does? Stripe makes it sound like Android and iOS can scany any (not just visa or mastercard) - https://stripe.com/en-au/terminal/tap-to-pay (screenshot below)

@lmatamoros can you help me to get debit card details for both visa and master i am getting response like this for debit card lenHex: 82 lenBin: 10000010 ---> len is more than 1 byte LOG length (decimals): 0 offset: 14 - this is for the substring of emv_data LOG [{"length": "82", "tag": "6A", "value": []}] r

did you resolved this?

@lmatamoros can you help me to get debit card details for both visa and master i am getting response like this for debit card lenHex: 82 lenBin: 10000010 ---> len is more than 1 byte LOG length (decimals): 0 offset: 14 - this is for the substring of emv_data LOG [{"length": "82", "tag": "6A", "value": []}] r

I managed to read my VISA debit card following @lmatamoros implementation but updating the commands varialble to the following:
const commands = [         '00A404000E325041592E5359532E444446303100',         '00A4040007A000000003101000',         '80A80000238321F620C00000000000000100000000000007240000000000097823112300194E172C00',         '80A800002383212800000000000000000000000000000002500000000000097820052600E8DA935200',         '80CA9F1700',         '80CA9F3600',       ];

Hi, @lmatamoros and @Laulhus, where did guys find the commands necessary for each card type? I've been searching online and can't find anything. It would be super helpful if you could share a bit more.
Also, is it possible to verify the PIN using this library? I'm still trying to understand all that's involved with accepting contactless payment with an Android Phone. From what I understood until now, if I can verify the PIN than this is enough to build something like a SoftPOS to receive payments.

Hi, @lmatamoros and @Laulhus, where did guys find the commands necessary for each card type? I've been searching online and can't find anything. It would be super helpful if you could share a bit more.
Also, is it possible to verify the PIN using this library? I'm still trying to understand all that's involved with accepting contactless payment with an Android Phone. From what I understood until now, if I can verify the PIN then this is enough to build something like a SoftPOS to receive payments.

You can't get the CVV or the cardholder's name using NFC.

Hi, @lmatamoros and @Laulhus, where did guys find the commands necessary for each card type? I've been searching online and can't find anything. It would be super helpful if you could share a bit more.
Also, is it possible to verify the PIN using this library? I'm still trying to understand all that's involved with accepting contactless payment with an Android Phone. From what I understood until now, if I can verify the PIN then this is enough to build something like a SoftPOS to receive payments.

Hi @reggiegutter ! In my case I used another app that reads credit cards with NFC and lets you check the logs where you can find these commands.
https://play.google.com/store/apps/details?id=com.github.devnied.emvnfccard
That's the app although there must be a way to get those commands online depending on the card presented, don't know much more about it

Anyone interested in where the magic values are:
https://github.com/devnied/EMV-NFC-Paycard-Enrollment/blob/master/library/src/main/java/com/github/devnied/emvnfccard/enums/EmvCardScheme.java#L32

toHexString

I am getting same issues too, any one with solution to this.

@Beejay-bot
Mastercard example
import NfcManager, { NfcTech } from 'react-native-nfc-manager'
import emv from 'node-emv'

readMasterCardCreditCard = async () => {
	try {
		NfcManager.cancelTechnologyRequest()
    } catch (error) { }

	try {
		const commands = [
			"00A4040007A00000000410100E",
			"80A8000002830000",
			"00B2011400",
			"00B2010C00",
			"00B2012400",
			"00B2022400"
		]

		await NfcManager.requestTechnology([NfcTech.IsoDep])

		const responses = []

		for (let i = 0; i < commands.length; i++) {
			const resp = await NfcManager.isoDepHandler.transceive(this.toByteArray(commands[i]))
			responses.push(resp)
		}

		if (responses && responses.length > 3) {
			const r = await this.getEmvInfo(this.toHexString(responses[3]))
			if (r) {
				const cardInfo = this.getCardInfoMasterCard(r)
				if (cardInfo) {
					return {
						card: cardInfo.card,
						exp: cardInfo.exp
					}
				} else {
					return null
				}
			} else {
				return null
			}
		} else {
			return null
		}
    } catch (error) {
		return null
    } finally {
		NfcManager.cancelTechnologyRequest()
	}
}

getEmvInfo = (info) => {
    return new Promise((resolve) => {
		emv.describe(info, (data) => {
			if (data) {
				resolve(data)
			} else {
				resolve(null)
			}
		})
    })
}

toByteArray = (text) => {
	return text.match(/.{1,2}/g).map(b => {
		return parseInt(b, 16)
	})
}

toHexString = (byteArr) => {
    return byteArr.reduce((acc, byte) => {
		return (
			acc + ('00' + byte.toString(16).toUpperCase()).slice(-2)
		)
    }, '')
}

getCardInfoMasterCard = (responses) => {
    let res
    let end = false
    for (let i = 0; i < responses.length; i++) {
		const r = responses[i]
		if (r.tag === "70" && r.value && r.value.length > 0) {
			for (let j = 0; j < r.value.length; j++) {
				const e = r.value[j]
				if (e.tag === "5A" && e.value) {
					if (!res) {
						res = {
							card: e.value
						}
					} else {
						res.card = e.value
					}

					if (res.card && res.exp) {
						end = true
					}
				}

				if (e.tag === "5F24" && e.value) {
					if (!res) {
						res = {
							exp: e.value
						}
					} else {
						res.exp = e.value
					}

					if (res.card && res.exp) {
						end = true
					}
				}

				if (end) {
					break
				}
			}

			if (end) {
				break
			}
		}
    }
    return res
}

Hi, already try this but not working.
Log shown
lenHex: 82 lenBin: 10000010 ---> len is more than 1 byte
length (decimals): 0 offset: 8 - this is for the substring of emv_data

Is this because of card or the env.|
Thanks

Hi @lmatamoros
Do you have any idea for amex cards? The emv result in empty.
This is the commands that I used.
const commands = [
        "00A404000E325041592E5359532E444446303100", // Select PPSE
        "00A4040007A0000000250101", // Select Amex application
        "A000000025", // American Express
        "A0000000250000", // American Express
        "A00000002501", // American Express
        "A000000025010104", // American Express
        "A000000025010402", // American Express
        "A000000025010701", // American Express
        "A000000025010801", // American Express
      ];

Thanks

@Beejay-bot
Mastercard example
import NfcManager, { NfcTech } from 'react-native-nfc-manager'
import emv from 'node-emv'

readMasterCardCreditCard = async () => {
	try {
		NfcManager.cancelTechnologyRequest()
    } catch (error) { }

	try {
		const commands = [
			"00A4040007A00000000410100E",
			"80A8000002830000",
			"00B2011400",
			"00B2010C00",
			"00B2012400",
			"00B2022400"
		]

		await NfcManager.requestTechnology([NfcTech.IsoDep])

		const responses = []

		for (let i = 0; i < commands.length; i++) {
			const resp = await NfcManager.isoDepHandler.transceive(this.toByteArray(commands[i]))
			responses.push(resp)
		}

		if (responses && responses.length > 3) {
			const r = await this.getEmvInfo(this.toHexString(responses[3]))
			if (r) {
				const cardInfo = this.getCardInfoMasterCard(r)
				if (cardInfo) {
					return {
						card: cardInfo.card,
						exp: cardInfo.exp
					}
				} else {
					return null
				}
			} else {
				return null
			}
		} else {
			return null
		}
    } catch (error) {
		return null
    } finally {
		NfcManager.cancelTechnologyRequest()
	}
}

getEmvInfo = (info) => {
    return new Promise((resolve) => {
		emv.describe(info, (data) => {
			if (data) {
				resolve(data)
			} else {
				resolve(null)
			}
		})
    })
}

toByteArray = (text) => {
	return text.match(/.{1,2}/g).map(b => {
		return parseInt(b, 16)
	})
}

toHexString = (byteArr) => {
    return byteArr.reduce((acc, byte) => {
		return (
			acc + ('00' + byte.toString(16).toUpperCase()).slice(-2)
		)
    }, '')
}

getCardInfoMasterCard = (responses) => {
    let res
    let end = false
    for (let i = 0; i < responses.length; i++) {
		const r = responses[i]
		if (r.tag === "70" && r.value && r.value.length > 0) {
			for (let j = 0; j < r.value.length; j++) {
				const e = r.value[j]
				if (e.tag === "5A" && e.value) {
					if (!res) {
						res = {
							card: e.value
						}
					} else {
						res.card = e.value
					}

					if (res.card && res.exp) {
						end = true
					}
				}

				if (e.tag === "5F24" && e.value) {
					if (!res) {
						res = {
							exp: e.value
						}
					} else {
						res.exp = e.value
					}

					if (res.card && res.exp) {
						end = true
					}
				}

				if (end) {
					break
				}
			}

			if (end) {
				break
			}
		}
    }
    return res
}

Please i really need Mastercard Reading, there is no way to get the Mastercard values? I can read Visa , but no Mastercard.

authors: Ali12275 Bad-Listener Laulhus MaxWilliamJF Noitidart Siti-Shaufi altaga deanpretorius deividnn gabrielmoncea joviksdev lmatamoros reggiegutter ronaldocala selcukitmis stultusstudio tamilmani12 tgreco toxipat whitedogg13 ws7one

repo: revtel/react-native-nfc-manager


text:
[Category] Category by conference / years

Now is category by years only.
Add a ui to category by conference and spread out videos.

years ui : column timeline?


text:
Fix "it's"

Sorry, couldn't resist.

Oops, you're right 😅Thanks for the pull request!

authors: bjdupuis svenjacobs

repo: rewe-digital/katana


text:
Update GHA versions to use Node.js 16

checkout v3
create-pull-request v4

Tested the new version of create-pull-request with a simple action using the same options here: https://github.com/rewindio/stark-actions-testing/actions/runs/3759968699/jobs/6390152056

repo: rewindio/action-brakeman


text:
Docs - invalid link

Not sure if this is the right place to drop this issue, but I came across a dead link in the docs.
Page: https://rexray.readthedocs.io/en/stable/
Link text: Volume Driver Plugin
Link target: https://rexray.readthedocs.io/en/stable/user-guide/schedulers/dockermd (404)
Probably correct target(?): https://rexray.readthedocs.io/en/stable/user-guide/schedulers/docker

bump still wrong

The stable RTFD links will be wrong until we push a GA release. Check the  https://rexray.readthedocs.io/en/latest/ for the HEAD build of the docs.

I just checked, the link at  https://rexray.readthedocs.io/en/latest/` appears correctly.

Hi @Getty,
For now I've redirected https://rexray.rtfd.io to http://rexray.readthedocs.io/en/latest/ until we have a planned GA in sight.

authors: Getty akutz plainlystated

repo: rexray/rexray


text:
Nieuwe HTML voor nieuw ontwerp

Hoi Reyhan,
Je gebruikt goed de vierkanten voor html elementen, alleen niet overal. Bijv de header heeft niet een vierkant blok eromheen, probeer het consistent door te voeren. Ik ben ook benieuwd of twee sections eigenlijk nodig zijn hier. Zijn het niet gewoon twee paragrafen? Je hebt drie kleine bolletjes die a zijn. Is dat misschien een lijst van linkjes?
Goed dat je al CSS toevoegt aan je breakdown, dat helpt al echt met het nadenken hoe je het in elkaar kan stylen. Ik zou dat nog meer doen in je breakdown, bijvoorbeeld hoe je elementen naaste elkaar gaat krijgen.

authors: DorienD reyrey-https

repo: reyrey-https/your-tribe-profile-card


text:
Fix timestamps of Biosoundscape project

Fix timestamps from UTC to local time
Project https://arbimon.org/p/biosoundscape/overview
Fix the sites listed in this sheet https://drive.google.com/file/d/1vLke6YwRsOWTpkX2u8GdhhRkuvHjUPRm/view?usp=sharing

@koonchaya is it a partner project?

@rassokhina-e I added the sheet for tracking here https://docs.google.com/spreadsheets/d/1O5IN_B9nlwJulCy4hoU1271q8BK9svyCqA8m3rYBP2k/edit?usp=sharing.

authors: koonchaya rassokhina-e

repo: rfcx/arbimon


text:
unable to check signature after installing youtube-dl. 'public key not found' error

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.07.03.1. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2016.07.03.1

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[x] Question
[ ] Other

Description of your issue, suggested solution and other information
After successfully installing youtube-dl, I am unable to check the signature on my Ubuntu machine. I followed the instructions on https://rg3.github.io/youtube-dl/download.html
I installed using curl:

sudo curl -L https://yt-dl.org/downloads/2016.07.03.1/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

I tried to check the signature:

sudo wget https://yt-dl.org/downloads/2016.07.03.1/youtube-dl.sig -O youtube-dl.sig
gpg --verify youtube-dl.sig /usr/local/bin/youtube-dl
rm youtube-dl.sig

I get the following output:

gpg: Signature made Sun 03 Jul 2016 07:30:08 AM PDT using RSA key ID 18A9236D
gpg: Can't check signature: public key not found

How can I check the signature?

See #9647

i have the same problem.
i saw #9647 and he gives a download for a .asc file.
what should i do with that?

authors: YuvalZilber kimbaudi yan12125

license: Unlicense


text:
youtube-dl Crunchyroll ERROR: No video formats found!;

youtube-dl Crunchyroll ERROR: No video formats found!;
ERROR: No video formats found!; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
ALL VIDEOS
THANKS

Carefully read new issue template and provide all requested information.

authors: alexfernandojs dstftw


text:
Any plans to add SPOTIFY to youtube-dl? It would be great!

Just a question...

There are technical difficulties. See #10344

Any update on this? Spotify support would be great

Nope. Any further updates will be posted to #10344.


text:
ERROR: fixed output name but more than one file to download

Hello,
I'm using this with soundcloud and downloading a single mp3.  I have --max-downloads set to 1 and -o /path/to/download/%(title)s.%(ext)s'.  I keep getting the fixed output error, but it's only one file.  If I remove the -o all together, then it downloads the single file, but in the wrong directory.  Am i missing something?
Thanks!

I am facing the same problem in using Youtube-dl for downloading videos
i am sending youtube video key to the end point and then concatinate it on endpoint In following request jBItiUvGSyI is the video id but its showing ERROR: fixed output name but more than one file to download
data sending From jBItiUvGSyI
Video downloading Request from  'http://www.youtube.com/watch?v=jBItiUvGSyI'
ERROR: fixed output name but more than one file to download

I fixed this problem by removing the spaces in the folder name:
youtube-dl --skip-download --write-sub --sub-lang en https://www.youtube.com/watch?v=mwn8xhgNpFY -o C:/Users/flyji/Desktop/JF/scrape youtube videos/srts/%(title)s-%(id)s.%(ext)s
to
youtube-dl --skip-download --write-sub --sub-lang en https://www.youtube.com/watch?v=mwn8xhgNpFY -o C:/Users/flyji/Desktop/JF/scrape-youtube-videos/srts/%(title)s-%(id)s.%(ext)s

I fixed this problem by removing the spaces in the folder name:
Before:
youtube-dl --skip-download --write-sub --sub-lang en https://www.youtube.com/watch?v=mwn8xhgNpFY -o C:/Users/flyji/Desktop/JF/scrape youtube videos/srts/%(title)s-%(id)s.%(ext)s
After:
youtube-dl --skip-download --write-sub --sub-lang en https://www.youtube.com/watch?v=mwn8xhgNpFY -o C:/Users/flyji/Desktop/JF/scrape-youtube-videos/srts/%(title)s-%(id)s.%(ext)s

Just use double quotes and all of that will be fixed ... You should be, anyway.

authors: FlyJim Muzaffar-Munir btmdave rautamiekka


text:
Please, add support for afreeca.com

Example: http://afbbs.afreeca.com:8080/app/read_ucc_bbs.cgi?szBjId=sogoodtt&nStationNo=55614&nBbsNo=124&nTitleNo=3448726&szSkin=
Afreeca is a Korean video streaming service. The best StarCraft: Brood War players stream there.

Thanks @pmrowla (#9395), afreeca will be supported in the next version.

Thank you


text:
Error with a very simple Youtube video

So... simply this:
root@ingwie.me ~ $ youtube-dl --verbose "https://www.youtube.com/watch?v=IiryTUCtLNA"
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--verbose', u'https://www.youtube.com/watch?v=IiryTUCtLNA']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.04.09
[debug] Python version 2.7.3 - Linux-3.2.0-4-amd64-x86_64-with-Debian-7
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] IiryTUCtLNA: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 314, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1673, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python2.7/urllib2.py", line 407, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 520, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 445, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 528, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

I am a PHP and C++ dude, but not Python :) Anyone can tell me how this is fix-able or...can fix it?

Please read our FAQ entry for the issue, you have probably downloaded too much content and Youtube is blocking your IP.

You shouldn't run youtube-dl as the root user, it's only needed for updating.

@Jaime: Sorry, I was just lazy there. :) Wanted to quickly grab a video while I was on 3G so i could scp it down to my localhost later in the day. But oh well, didn’t work.

authors: IngwiePhoenix dstftw jaimeMF


text:
[ComedyCentral] MTV mgid extractor fails

just tried watching a show from cc.com with the latest build.
$ ./youtube-dl http://www.cc.com/full-episodes/f7pabz/the-nightly-show-with-larry-wilmore-september-21--2015---bernie-sanders-interview-season-1-ep-01109 --verbose
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'http://www.cc.com/full-episodes/f7pabz/the-nightly-show-with-larry-wilmore-september-21--2015---bernie-sanders-interview-season-1-ep-01109', u'--verbose']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.09.22
[debug] Python version 2.7.10 - Linux-4.0.0-trunk-amd64-x86_64-with-Ubuntu-12.04-precise
[debug] exe versions: rtmpdump 2.4
[debug] Proxy map: {}
[ComedyCentral] the-nightly-show-with-larry-wilmore-september-21--2015---bernie-sanders-interview-season-1-ep-01109: Downloading webpage
ERROR: Unable to extract mgid; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "./youtube-dl/youtube_dl/extractor/mtv.py", line 193, in _real_extract
    og_url = self._og_search_video_url(webpage)
  File "./youtube-dl/youtube_dl/extractor/common.py", line 680, in _og_search_video_url
    return self._html_search_regex(regexes, html, name, **kargs)
  File "./youtube-dl/youtube_dl/extractor/common.py", line 590, in _html_search_regex
    res = self._search_regex(pattern, string, name, default, fatal, flags, group)
  File "./youtube-dl/youtube_dl/extractor/common.py", line 581, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract video url; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 660, in extract_info
    ie_result = ie.extract(url)
  File "./youtube-dl/youtube_dl/extractor/common.py", line 287, in extract
    return self._real_extract(url)
  File "./youtube-dl/youtube_dl/extractor/mtv.py", line 203, in _real_extract
    webpage, 'mgid')
  File "./youtube-dl/youtube_dl/extractor/common.py", line 581, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract mgid; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

I'm getting the same error :(
This same issue came up a few months ago regarding The Nightly Show and this mgid value.

#5374 should make it work again.

authors: GravisZro malept priestc


text:
[MTV] add support for German site mtv.de

This patch adds support for the German MTV site.

Instead of patching the bunch of classes why not inherit from MTVIE and override anything you need?

Yes, this is better (done).

authors: bastik dstftw


text:
Move "Expected similarity" from "Results:" line to backticks marker

We currently place the "expected similarity" setting for tests in the "Results:" header line. This means that this text appears in the markdown. A better place would likely be in the backticks marker identifying the results block. In this location they would not appear in the document content.
Need to verify that this doesn't break rendering using popular markdown parsers.

The GitHub parser works fine with it in this location. Lets proceed, but only deprecate the current location s(in the "Results:" line.

repo: rgardler/simdem


text:
Statistics gathering

Add gathering of channel statistics. I can send you the current database whenever you want, also you can use my plot.ly token and stuff for graphing.

Ok, so as we talked on the server, this won't be merged anytime soon, so I'm closing this PR 👍

authors: rgoliveira superstabby

repo: rgoliveira/AwesomeBot


text:
"Unexpected token" error with SQS proxy

I'm using the SQS proxy and getting an "unexpected token" error invoking anything.  It appears as though nothing is getting through the proxy (both running on the same server in PM2 process manager).
The lambda function itself tests out okay with the presets test file:

{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "OK"
},
"shouldEndSession": true
},
"sessionAttributes": {}
}

but I get an error in the log output:

START RequestId: 43ec0834-499b-11e7-9821-6fdd89621437 Version: $LATEST
2017-06-05T03:01:26.668Z	43ec0834-499b-11e7-9821-6fdd89621437	session applicationId: MYAPPID
2017-06-05T03:01:26.668Z	43ec0834-499b-11e7-9821-6fdd89621437	dispatch intent = PlayPresetIntent
2017-06-05T03:01:26.668Z	43ec0834-499b-11e7-9821-6fdd89621437	PlayPresetIntent received
2017-06-05T03:01:26.668Z	43ec0834-499b-11e7-9821-6fdd89621437	Sending SQS '/preset/test'
2017-06-05T03:01:26.828Z	43ec0834-499b-11e7-9821-6fdd89621437	SQS purged queue
2017-06-05T03:01:26.953Z	43ec0834-499b-11e7-9821-6fdd89621437	SQS successfully sent message /preset/test
2017-06-05T03:01:47.027Z	43ec0834-499b-11e7-9821-6fdd89621437	SQS successfully received response
2017-06-05T03:01:47.028Z	43ec0834-499b-11e7-9821-6fdd89621437	SQS '/preset/test' failed
2017-06-05T03:01:47.028Z	43ec0834-499b-11e7-9821-6fdd89621437	[TypeError: Cannot read property '0' of undefined]
END RequestId: 43ec0834-499b-11e7-9821-6fdd89621437
REPORT RequestId: 43ec0834-499b-11e7-9821-6fdd89621437	Duration: 20373.74 ms	Billed Duration: 20400 ms 	Memory Size: 128 MB	Max Memory Used: 43 MB

and if I test any utterance from the Alexa skills dashboard, I get the following:

"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "The Lambda service encountered an error: Unexpected token T"
},
"shouldEndSession": true
},
"sessionAttributes": {}

I've tried using both root account keys and a separate user and neither seem to work.  My user account credentials aren't even getting hit -- when I look at IAM for the security credentials of my user (the keys of which are in settings.json) I see that the last use is "N/A".  I'm also using the default options.js with environment variable declarations in lambda vs. updating options.js directly.

Update: not any utterance.  I tested the play and pause intents, and those work fine.  Seems to be just on music searches (my default service is library).

Found my issue -- my echo-sqs-proxy was erroring out because it didn't have async installed.  Didn't realize it at first because I was running the script in PM2, which I eventually noticed had a high number of restarts.  Ran it on the command line with npm start and saw the error right away.  As soon as I installed async, all of my SQS messages from my tests came pouring through.
I submitted pull request #178 which adds async as a dependency for echo-sqs-proxy.

repo: rgraciano/echo-sonos


text:
Gateway should be able to read configuration file from the /etc directory

Java properties format would be great for the beginning.

Done.

repo: rhiot/rhiot


text:
Document the database schema

Add a make target for generating the schema from the migrations and
including it in the database documentation.
This is useful for having a holistic view of the database, instead of
sifting through migrations to understand the relationships between all
tables. The included .sql file is only for documentation purposes.
Fixes #84

I like it!
/lgtm

repo: rhmdnd/compserv


text:
Use zeitgeist to keep track of dependencies across files

The zeitgeist utility is being used by many Kubernetes projects to
verify external dependencies from a single dependencies.yaml file. We
now add an additional make verify-dependencies step to our CI to check
the versions via regular expressions within various locations within
this repository.

On Fri, Jul 01, 2022 at 11:26:18AM -0700, Lance Bragstad wrote:

@rhmdnd commented on this pull request.

version: 1.46.2

refPaths:

path: Makefile

 match: GOLANGCI_LINT_VERSION

name: kubectl

version: 1.24.1
refPaths:

path: Makefile

 match: KUBECTL_VERSION

name: migrate

version: v4.15.2
refPaths:

path: Makefile

 match: MIGRATE_VERSION

So are you saying we should expand these to contain versions that we could pin with dependencies.yaml?
btw this is a good use-case for zeitgeist (keeping docs and scripts in sync) but I'm not sure what exactly are you asking me to do..

I was curious if we could use something to track our dependency on Terraform.
Thoughts on Renovate versus zeitgeist? I don't have extensive experience with either of them, so I'm curious to hear both of your opinions.

Honestly I picked zeitgeist and dependabot because we use them in SPO
(and dependabot because it's github's inhouse dependency updated).
If @JAORMX has some links where I could read up on renovate, I'd be
happy to learn more. I'm really not married to either zeitgeist or
dependabot, so I'm fine with changing to whatever it's better.
In the short term, I wanted to keep the dependencies current so that we
don't end up in a similar situation like with CO.


text:
fix(deps): update github.com/openshift/addon-operator/apis digest to dd01f2f

This PR contains the following updates:

Package
Type
Update
Change

github.com/openshift/addon-operator/apis
require
digest
820afed -> dd01f2f

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

ℹ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

1 additional dependency was updated

Details:

Package
Change

github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring
v0.61.1-rhobs1 -> v0.66.0-rhobs1

repo: rhoai-rhtap/rhods-operator