Repository: sunpy/sunpy

Issue:
XRS searches for wrong sat_number in overlapping urls
<!--
We know asking good questions takes effort, and we appreciate your time.
Thank you.

Please be aware that everyone has to follow our code of conduct:
https://github.com/sunpy/sunpy/blob/master/CODE_OF_CONDUCT.rst

Also that these comments are hidden when you submit this github issue.

Please have a search on our GitHub repository to see if a similar issue has already been posted.
If a similar issue is closed, have a quick look to see if you are satisfied by the resolution.
If not please go ahead and open an issue!
-->
### Description
<!-- Provide a general description of the bug. -->
When we request for `GOES` data from `XRSClient` and timerange overalps date `1999/1/15`, then the scraper uses incorrect pattern and possibly defaults every satellite number to `10`.
### Expected behavior
<!-- What did you expect to happen. -->
File urls with satno. `8` should be returned, if found else empty list.
### Actual behavior
<!--
What actually happened.
Was the output confusing or poorly described?
-->
`urls` with satno. `10` were returned

### Steps to Reproduce
<!--
Please include **code** that reproduces the issue whenever possible.
The best reproductions are self-contained scripts with minimal dependencies.
-->

```python
from sunpy.time import TimeRange
from sunpy.net.dataretriever.sources.goes import XRSClient as xrs
client = xrs()
timerange = TimeRange('1999/1/13','1999/1/16')
client._get_url_for_timerange(timerange, satellitenumber=8)
```
`['https://umbra.nascom.nasa.gov/goes/fits/1999/go10990113.fits', 'https://umbra.nascom.nasa.gov/goes/fits/1999/go10990114.fits', 'https://umbra.nascom.nasa.gov/goes/fits/1999/go1019990115.fits', 'https://umbra.nascom.nasa.gov/goes/fits/1999/go1019990116.fits']`

As we can see, urls with `go10` returned. 
Possibly something wrong with using `kwargs`.

### System Details
<!--
We at least need to know the sunpy version you are using.
We provide a short function (``sunpy.util.system_info()``) that will provide most of the below information.
This step is optional but strongly recommended.
-->
- SunPy Version: '2.0rc2'
- Astropy Version: '4.1.rc1'
- Python Version: '3.7.6'
- OS information: 'Linux Ubuntu 18.04 LTS'



Discussion:
Oh yes it looks like the timerange overlaps with this condition for when the year format changes from %Y to %y https://github.com/sunpy/sunpy/blob/master/sunpy/net/dataretriever/sources/goes.py#L127

which then calls  _get_overlap_urls which doesn't include a `satellitenumber` keyword .. strange! good catch 

Resolving patch:
diff --git a/sunpy/net/dataretriever/sources/goes.py b/sunpy/net/dataretriever/sources/goes.py
--- a/sunpy/net/dataretriever/sources/goes.py
+++ b/sunpy/net/dataretriever/sources/goes.py
@@ -125,7 +125,7 @@ def _get_url_for_timerange(self, timerange, **kwargs):
         if timerange.end < parse_time("1999/01/15"):
             goes_file = "%Y/go{satellitenumber:02d}%y%m%d.fits"
         elif timerange.start < parse_time("1999/01/15") and timerange.end >= parse_time("1999/01/15"):
-            return self._get_overlap_urls(timerange)
+            return self._get_overlap_urls(timerange, **kwargs)
         else:
             goes_file = "%Y/go{satellitenumber}%Y%m%d.fits"
 
@@ -135,7 +135,7 @@ def _get_url_for_timerange(self, timerange, **kwargs):
 
         return goes_files.filelist(timerange)
 
-    def _get_overlap_urls(self, timerange):
+    def _get_overlap_urls(self, timerange, **kwargs):
         """
         Return a list of URLs over timerange when the URL path changed format `%Y` to `%y`
         on the date 1999/01/15
@@ -151,8 +151,8 @@ def _get_overlap_urls(self, timerange):
         """
         tr_before = TimeRange(timerange.start, parse_time("1999/01/14"))
         tr_after = TimeRange(parse_time("1999/01/15"), timerange.end)
-        urls_before = self._get_url_for_timerange(tr_before)
-        urls_after = self._get_url_for_timerange(tr_after)
+        urls_before = self._get_url_for_timerange(tr_before, **kwargs)
+        urls_after = self._get_url_for_timerange(tr_after, **kwargs)
         return urls_before + urls_after
 
     def _makeimap(self):


Test patch:
diff --git a/sunpy/net/dataretriever/sources/tests/test_goes_ud.py b/sunpy/net/dataretriever/sources/tests/test_goes_ud.py
--- a/sunpy/net/dataretriever/sources/tests/test_goes_ud.py
+++ b/sunpy/net/dataretriever/sources/tests/test_goes_ud.py
@@ -79,6 +79,13 @@ def test_fixed_satellite(LCClient):
     for resp in ans1:
         assert "go13" in resp.url
 
+    ans1 = LCClient.search(a.Time("1999/1/13", "1999/1/16"),
+                           a.Instrument.xrs,
+                           a.goes.SatelliteNumber(8))
+
+    for resp in ans1:
+        assert "go08" in resp.url
+
 
 @pytest.mark.parametrize("time", [
     Time('2005/4/27', '2005/4/27'),