Skip to content

Github update status error is logged with empty URL as if there were misconfiguration #5585

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

Open
maximmasiutin opened this issue May 16, 2025 · 2 comments · May be fixed by #5586
Open

Github update status error is logged with empty URL as if there were misconfiguration #5585

maximmasiutin opened this issue May 16, 2025 · 2 comments · May be fixed by #5586
Labels
bug Something isn't working provider/github

Comments

@maximmasiutin
Copy link

maximmasiutin commented May 16, 2025

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Overview of the Issue

GitHub update status error is logged with empty URL as if there were misconfiguration, for example:

{"level":"debug","ts":"2025-05-16T11:41:29.109Z","caller":"vcs/github_client.go:871","msg":"Updating status on GitHub pull request 2421 for '1/1 projects policies checked successfully.' to 'success'","json":{"repo":"mycompany/myrepository","pull":"2421"}}
{"level":"debug","ts":"2025-05-16T11:41:29.186Z","caller":"vcs/github_client.go:881","msg":"POST /repos/mycompany/myrepository/statuses/afa7161234d5643db7e994b6583846b365517fca returned: 404","json":{"repo":"mycompany/myrepository","pull":"2421"}}
{"level":"error","ts":"2025-05-16T11:41:29.186Z","caller":"vcs/instrumented_client.go:221","msg":**"Unable to update status at url: , error: POST https://api.github.com/repos/mycompany/myrepository/statuses/afa7165350d5643db7e994b6583846b365517fca: 404 Not Found []"**,"json":{"repo":"mycompany/myrepository","pull":"2421"},"stacktrace":"github.com/runatlantis/atlantis/server/events/vcs.(*InstrumentedClient).UpdateStatus\n\tgithub.com/runatlantis/atlantis/server/events/vcs/instrumented_client.go:221\ngithub.com/runatlantis/atlantis/server/events/vcs.(*ClientProxy).UpdateStatus\n\tgithub.com/runatlantis/atlantis/server/events/vcs/proxy.go:89\ngithub.com/runatlantis/atlantis/server/events.(*DefaultCommitStatusUpdater).UpdateCombinedCount\n\tgithub.com/runatlantis/atlantis/server/events/commit_status_updater.go:82\ngithub.com/runatlantis/atlantis/server/events.(*ApprovePoliciesCommandRunner).updateCommitStatus\n\tgithub.com/runatlantis/atlantis/server/events/approve_policies_command_runner.go:104\ngithub.com/runatlantis/atlantis/server/events.(*ApprovePoliciesCommandRunner).Run\n\tgithub.com/runatlantis/atlantis/server/events/approve_policies_command_runner.go:89\ngithub.com/runatlantis/atlantis/server/events.(*DefaultCommandRunner).RunCommentCommand\n\tgithub.com/runatlantis/atlantis/server/events/command_runner.go:389"}

Reproduction Steps

Have a GitHub token or a GitHub app that does not have permission to update status on pull requests

Logs

See above the logs ("bold" emphasis mine).

Environment details

This does not depend on the environment, but happens with Github private repos.

Additional Context

Atlantis tries to log an URL, but the URL may be empty by design of the function calls, for example:

func (d *DefaultCommitStatusUpdater) UpdateCombined(logger logging.SimpleLogging, repo models.Repo, pull models.PullRequest, status models.CommitStatus, cmdName command.Name) error {
	src := fmt.Sprintf("%s/%s", d.StatusName, cmdName.String())
	var descripWords string
	switch status {
	case models.PendingCommitStatus:
		descripWords = genProjectStatusDescription(cmdName.String(), "in progress...")
	case models.FailedCommitStatus:
		descripWords = genProjectStatusDescription(cmdName.String(), "failed.")
	case models.SuccessCommitStatus:
		descripWords = genProjectStatusDescription(cmdName.String(), "succeeded.")
	}
	return d.Client.UpdateStatus(logger, repo, pull, status, src, descripWords, "")
}

Conclusion

This bug report details an issue where updating a GitHub pull request’s status in a private repos causing an error misleadingly shows an empty URL.

@maximmasiutin maximmasiutin added the bug Something isn't working label May 16, 2025
Copy link

dosubot bot commented May 16, 2025

Hello @maximmasiutin! I'm Dosu, a bot here to help you solve bugs, answer questions, and guide you on your journey to becoming a contributor. I'm ready to assist you while you wait for a human maintainer. How can I help you today?

The GitHub update status error with an empty URL occurs because the UpdateStatus function is called with an empty string for the URL parameter in the UpdateCombined method of the DefaultCommitStatusUpdater struct. This is evident in the code snippet:

return d.Client.UpdateStatus(logger, repo, pull, status, src, descripWords, "")

To resolve this issue, ensure that the GitHub token or app used by Atlantis has the necessary permissions to update commit statuses. Specifically, the token or app should have the repo:status permission. Without this permission, the update attempt will fail, resulting in the error being logged [1].

To continue talking to Dosu, mention @dosu.


Help Dosu learn! Give it feedback: Great Response | Irrelevant Answer | Incorrect Sources | Too Verbose | Hallucination | Bug Report | Other

@maximmasiutin
Copy link
Author

maximmasiutin commented May 16, 2025

Fixed by #5586

maximmasiutin added a commit to maximmasiutin/atlantis that referenced this issue May 16, 2025
maximmasiutin added a commit to maximmasiutin/atlantis that referenced this issue May 16, 2025
maximmasiutin added a commit to maximmasiutin/atlantis that referenced this issue May 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working provider/github
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant