Repository: packit/packit-service
Issue: Wrong version of config used on retriggered `pull-from-upstream`

### What happened? What is the problem?

Config got updated in the `rawhide` branch, but the changes weren't reflected once `pull-from-upstream` got (re)triggered from the PR.

### What did you expect to happen?

Use the correct `upstream_tag_template`

### Example URL(s)

* dist-git PRs: https://src.fedoraproject.org/rpms/golang/pull-requests?author=packit&status=all
* Logs:
  * https://dashboard.packit.dev/results/pull-from-upstream/2916
  * https://dashboard.packit.dev/results/pull-from-upstream/2917
  * https://dashboard.packit.dev/results/pull-from-upstream/2918


### Steps to reproduce

```bash
1. Update config in `rawhide`
2. Trigger via `/packit pull-from-upstream`
3. Watch it fail
```


### What is the impacted category (job)?

Fedora release automation

### Workaround

- [ ] There is an existing workaround that can be used until this issue is fixed.

### Participation

- [X] I am willing to submit a pull request for this issue. (Packit team is happy to help!)

Changed files:
tests/integration/test_pr_comment.py, packit_service/worker/events/pagure.py

diff --git a/packit_service/worker/events/pagure.py b/packit_service/worker/events/pagure.py
index 02f1cc2e..ccdb1d08 100644
--- a/packit_service/worker/events/pagure.py
+++ b/packit_service/worker/events/pagure.py
@@ -6,6 +6,9 @@ from typing import Dict, Optional
 
 from ogr.abstract import Comment, GitProject
 from ogr.parsing import RepoUrl
+from packit.config import PackageConfig
+from packit_service.utils import get_packit_commands_from_comment
+from packit_service.config import PackageConfigGetter, ServiceConfig
 
 from packit_service.service.db_project_events import (
     AddBranchPushEventToDb,
@@ -106,6 +109,31 @@ class PullRequestCommentPagureEvent(AbstractPRCommentEvent, AbstractPagureEvent)
         logger.debug(f"Base project: {project} owned by {self.base_repo_owner}")
         return project
 
+    def get_packages_config(self) -> Optional[PackageConfig]:
+        comment = self.__dict__["comment"]
+        commands = get_packit_commands_from_comment(
+            comment, ServiceConfig.get_service_config().comment_command_prefix
+        )
+        if commands and commands[0] == "pull-from-upstream":
+            # when retriggering pull-from-upstream from PR comment
+            # take packages config from the downstream default branch
+            logger.debug(
+                f"Getting packages_config:\\n"
+                f"\\tproject: {self.project}\\n"
+                f"\\tbase_project: {self.base_project}\\n"
+                f"\\treference: {self.base_project.default_branch}\\n"
+            )
+            packages_config = PackageConfigGetter.get_package_config_from_repo(
+                base_project=self.base_project,
+                project=self.project,
+                reference=self.base_project.default_branch,
+                pr_id=None,
+                fail_when_missing=True,
+            )
+            return packages_config
+        else:
+            return super().get_packages_config()
+
     @property
     def repo_url(self) -> Optional[RepoUrl]:
         if not self._repo_url:
diff --git a/tests/integration/test_pr_comment.py b/tests/integration/test_pr_comment.py
index 9ef61f4f..6b730b06 100644
--- a/tests/integration/test_pr_comment.py
+++ b/tests/integration/test_pr_comment.py
@@ -59,6 +59,7 @@ from packit_service.worker.allowlist import Allowlist
 from packit_service.worker.mixin import PackitAPIWithDownstreamMixin
 from packit_service.worker.celery_task import CeleryTask
 from packit_service.worker.events.event import AbstractForgeIndependentEvent
+from packit_service.worker.events.pagure import PullRequestCommentPagureEvent
 from packit_service.worker.handlers.bodhi import (
     RetriggerBodhiUpdateHandler,
 )
@@ -2535,6 +2536,9 @@ def test_pull_from_upstream_retrigger_via_dist_git_pr_comment(pagure_pr_comment_
     flexmock(Signature).should_receive("apply_async").once()
     flexmock(Pushgateway).should_receive("push").times(2).and_return()
     flexmock(shutil).should_receive("rmtree").with_args("")
+    flexmock(PullRequestCommentPagureEvent).should_receive(
+        "get_base_project"
+    ).once().and_return(distgit_project)
 
     processing_results = SteveJobs().process_message(pagure_pr_comment_added)
     event_dict, job, job_config, package_config = get_parameters_from_results(