Compare commits
	
		
			3 Commits
		
	
	
		
			16-watchli
			...
			5c73d55d91
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						5c73d55d91
	
				 | 
					
					
						|||
| 
						
						
							
						
						9e70fc25d4
	
				 | 
					
					
						|||
| 
						
						
							
						
						63ee619aef
	
				 | 
					
					
						
@@ -24,7 +24,8 @@ Options:
 | 
			
		||||
  --help                Show this message and exit.
 | 
			
		||||
 | 
			
		||||
Commands:
 | 
			
		||||
  pr     Get merge status of pull request.
 | 
			
		||||
  since  Return the count of commits that has happened between the two refs.
 | 
			
		||||
  pr         Get merge status of pull request.
 | 
			
		||||
  since      Return the count of commits that has happened between the...
 | 
			
		||||
  watchlist  Manage watchlist.
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -65,12 +65,14 @@ def since(
 | 
			
		||||
        return
 | 
			
		||||
    typer.echo(count)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@watchlist_app.command()
 | 
			
		||||
def list(watchlist: str|None = None, format: OutputFormat = OutputFormat.CONSOLE):
 | 
			
		||||
def list(watchlist: str | None = None, format: OutputFormat = OutputFormat.CONSOLE):
 | 
			
		||||
    """List PRs in watchlist."""
 | 
			
		||||
    wl = Watchlist.from_file()
 | 
			
		||||
    wl.print(format=format)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@watchlist_app.command()
 | 
			
		||||
def add(pr: int):
 | 
			
		||||
    """Add PR to watchlist."""
 | 
			
		||||
@@ -80,6 +82,7 @@ def add(pr: int):
 | 
			
		||||
    info = wl.pr(pr)
 | 
			
		||||
    print(f"Added #{info.pr}: {info.title} to watchlist.")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@watchlist_app.command()
 | 
			
		||||
def remove(pr: int):
 | 
			
		||||
    """Remove PR from watchlist."""
 | 
			
		||||
@@ -88,6 +91,7 @@ def remove(pr: int):
 | 
			
		||||
    wl.to_file()
 | 
			
		||||
    print(f"Removed #{pr} from watchlist.")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    app()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ from rich.console import Console
 | 
			
		||||
 | 
			
		||||
from nixprstatus.pr import get_pr
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class OutputFormat(str, Enum):
 | 
			
		||||
    CONSOLE = "console"
 | 
			
		||||
    JSON = "json"
 | 
			
		||||
@@ -50,7 +51,7 @@ class Watchlist(BaseModel):
 | 
			
		||||
 | 
			
		||||
        title = info["title"]
 | 
			
		||||
        self.prs.append(PRInfo(pr=pr, title=title))
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    def remove(self, pr: int):
 | 
			
		||||
        self.prs = [p for p in self.prs if p.pr != pr]
 | 
			
		||||
 | 
			
		||||
@@ -64,7 +65,7 @@ class Watchlist(BaseModel):
 | 
			
		||||
                print(self.model_dump_json())
 | 
			
		||||
            case _:
 | 
			
		||||
                raise ValueError(f"Unknown format: {format}")
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    def pr(self, pr: int) -> PRInfo | None:
 | 
			
		||||
        for p in self.prs:
 | 
			
		||||
            if p.pr == pr:
 | 
			
		||||
 
 | 
			
		||||
@@ -31,4 +31,4 @@ class TestWatchlist(unittest.TestCase):
 | 
			
		||||
    def test_get_pr(self):
 | 
			
		||||
        w = Watchlist(prs=[PRInfo(pr=1, title="PR 1")])
 | 
			
		||||
        self.assertEqual(w.pr(1), PRInfo(pr=1, title="PR 1"))
 | 
			
		||||
        self.assertEqual(w.pr(2), None)
 | 
			
		||||
        self.assertEqual(w.pr(2), None)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user