-
Notifications
You must be signed in to change notification settings - Fork 2
pipeline health POC #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
28320ba
to
bd199e9
Compare
@@ -0,0 +1,99 @@ | |||
- airrflow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As above - see https://nf-co.re/pipelines.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this resolved, how come we can't use the pipelines.json file? I don't like the idea of trying to keep these up to date.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By the way we also have https://nf-co.re/pipeline_names.json which is much lighter.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small iterations 😉
I'll add it to download, but I don't want to start "terraforming" the whole GitHub org because of the scope of this PR.
Looking very promising! The old website PHP code for this is here: https://github.com/nf-core/website/blob/old-site/public_html/pipeline_health.php That contains all of the logic for stuff like the repo website, the set of minimum keywords and the types of things to do (eg. stripping old bad GHA job names). See the functions called |
Also this is the new pipeline health page in Astro, if it helps: https://github.com/nf-core/website/blob/main/sites/pipelines/src/pages/pipeline_health.astro That reports on a lot of this stuff but doesn't set anything. |
Ah, sweet! |
@ewels Ignore the mypy errors will fix that in post. I think this is ready to review and 🚀 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some thoughts
pulumi/github/repos/Pulumi.dev.yaml
Outdated
@@ -0,0 +1,5 @@ | |||
config: | |||
github:owner: nf-core-tf | |||
# https://start.1password.com/open/i?a=O5GICFDKPNABLLVGMKBL5JWDWA&v=rdfcz6oy6qxxrc4clu467a7dmm&i=4ajrv44kc5lcbboa37fr5oydla&h=nf-core.1password.eu |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this throws an error for me. is that maybe for your personal account?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated the link, you also we're in the Dev
vault. Had to make a vault that was specifically accessible to the service accounts, and I didn't want to give them access to everything.
Need to check that we don't clobber certain fields, such as repository descriptions if already written. Similar for repo keywords: should have a minimal set but not clobber custom ones. This will vary across fields. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs some cleanup
pulumi/github/repos/core/modules.py
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need to handle core repos with pulumi
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think not with the "loop" of all of the pipelines. Just as their own individual settings.
I think it can't hurt to import the settings.
), | ||
), | ||
visibility="public", | ||
topics=TOPICS, # 'repo_keywords' => 'Minimum keywords set', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
topics=TOPICS, # 'repo_keywords' => 'Minimum keywords set', | |
topics= repo.topics ?? TOPICS, # 'repo_keywords' => 'Minimum keywords set', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could we add missing topics without deleting the existing ones?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep, that's probably the better approach. the problem is that repo.topics
is not just an array, but a pulumi Output object...
.github/workflows/repos.yml
Outdated
push: | ||
branches: | ||
- main | ||
paths: | ||
- "pulumi/github/repos/**/*" | ||
pull_request: | ||
branches: | ||
- main | ||
paths: | ||
- "pulumi/github/repos/**/*" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to understand. This will run on PRs to ops
, right? Is this action updating the pipeline health? And are these PRs on ops
related to pipeline health?
), | ||
), | ||
visibility="public", | ||
topics=TOPICS, # 'repo_keywords' => 'Minimum keywords set', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could we add missing topics without deleting the existing ones?
1. Importing them all by hand, some code duplication and effort, but probably the least likely to blow up 2. Looping through them all We can also start with 1, and then move to 2 once everything is captured in the Pulumi state with 1(which seems like the sane option)
pulumi import github:index/repositoryRuleset:RepositoryRuleset ruleset_branch_default_testpipeline testpipeline:1220601
pulumi import github:index/repositoryRuleset:RepositoryRuleset ruleset_branch_dev_testpipeline testpipeline:1220600
pulumi import github:index/repositoryRuleset:RepositoryRuleset ruleset_branch_TEMPLATE_testpipeline testpipeline:1220597
Co-authored-by: Matthias Hörtenhuber <[email protected]>
Co-authored-by: mashehu <[email protected]>
929d181
to
cc5fa7c
Compare
Co-authored-by: mashehu <[email protected]> Co-authored-by: mirpedrol <[email protected]>
- Added pulumi-onepassword dependency to manage GitHub tokens securely. - Updated Pulumi configuration to include 1Password account details. - Modified testpipeline.py to fetch GitHub token from 1Password and configure GitHub provider accordingly.
@nf-core-bot fix linting |
cc5fa7c
to
8ec8496
Compare
ClosesA start on #5I expect it to go through some iteration before actually using it to manage the pipelines, and even then a slow roll-out.
Just looking for anything that anyone absolutely hates, or settings that we can catch that are wrong.